/* M2M custom styles placeholder */
.m2m-header,.m2m-footer{padding:16px}
.m2m-main{padding:24px}

/* Tracked changes styling */
.m2m-feedback .m2m-add{ text-decoration: underline; }
.m2m-feedback .m2m-del{ text-decoration: line-through; opacity:0.6; }
.m2m-feedback .m2m-note{ border-left:4px solid; padding-left:8px; }


/* === Imported from HTML mockups === */
/* From m2m-feedback-interface.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --midnight-deep: #0a0e27;
            --midnight-blue: #141936;
            --charcoal: #1a1a2e;
            --neon-cyan: #00ffff;
            --electric-magenta: #ff00ff;
            --sunrise-gold: #ffd700;
            --soft-white: #f0f0f0;
            --success-green: #10b981;
            --suggestion-purple: #8b5cf6;
            --highlight-yellow: #fbbf24;
            --sticky-pink: #f472b6;
            --feedback-blue: #3b82f6;
        }

        body {
            font-family: 'Segoe UI', system-ui, sans-serif;
            background: linear-gradient(135deg, var(--midnight-deep) 0%, var(--charcoal) 50%, var(--midnight-blue) 100%);
            color: var(--soft-white);
            min-height: 100vh;
            padding: 2rem;
        }

        /* Header Section */
        .feedback-header {
            max-width: 1400px;
            margin: 0 auto 3rem;
            text-align: center;
            animation: fadeInDown 0.8s ease;
        }

        @keyframes fadeInDown {
            from {
                opacity: 0;
                transform: translateY(-20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .feedback-title {
            font-size: 2.5rem;
            margin-bottom: 1rem;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta), var(--sunrise-gold));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .feedback-subtitle {
            color: var(--soft-white);
            opacity: 0.9;
            font-size: 1.1rem;
            margin-bottom: 2rem;
        }

        /* Progress Indicator */
        .revision-progress {
            max-width: 800px;
            margin: 0 auto 3rem;
            display: flex;
            justify-content: space-between;
            position: relative;
        }

        .progress-line {
            position: absolute;
            top: 20px;
            left: 0;
            right: 0;
            height: 2px;
            background: rgba(255, 255, 255, 0.2);
            z-index: 1;
        }

        .progress-line-fill {
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta));
            width: 33%;
            transition: width 0.5s ease;
        }

        .progress-step {
            position: relative;
            z-index: 2;
            text-align: center;
        }

        .step-circle {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--charcoal);
            border: 2px solid rgba(255, 255, 255, 0.3);
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 0.5rem;
            transition: all 0.3s;
        }

        .step-circle.completed {
            background: var(--success-green);
            border-color: var(--success-green);
            animation: checkmark 0.5s ease;
        }

        .step-circle.active {
            background: var(--electric-magenta);
            border-color: var(--electric-magenta);
            box-shadow: 0 0 20px rgba(255, 0, 255, 0.5);
            animation: pulse 1.5s infinite;
        }

        @keyframes pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }

        .step-label {
            font-size: 0.875rem;
            opacity: 0.7;
        }

        /* Scene Container */
        .scenes-container {
            max-width: 1400px;
            margin: 0 auto;
        }

        .scene-wrapper {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border-radius: 1rem;
            margin-bottom: 2rem;
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.1);
            transition: all 0.3s;
            animation: fadeInUp 0.8s ease;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .scene-wrapper:hover {
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
        }

        .scene-header {
            background: rgba(74, 158, 255, 0.1);
            padding: 1rem 1.5rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        }

        .scene-number {
            font-size: 1.1rem;
            font-weight: 600;
            color: var(--neon-cyan);
        }

        .scene-status {
            display: flex;
            gap: 0.5rem;
        }

        .status-badge {
            padding: 0.25rem 0.75rem;
            border-radius: 999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .status-badge.has-feedback {
            background: rgba(139, 92, 246, 0.2);
            color: var(--suggestion-purple);
        }

        .status-badge.revised {
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        .status-badge.pending {
            background: rgba(251, 191, 36, 0.2);
            color: var(--highlight-yellow);
        }

        /* Content Grid */
        .scene-content {
            display: grid;
            grid-template-columns: 1fr 400px;
            gap: 1.5rem;
            padding: 1.5rem;
        }

        /* Student's Original Text */
        .original-text {
            position: relative;
        }

        .text-label {
            font-size: 0.875rem;
            color: var(--neon-cyan);
            margin-bottom: 0.5rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .text-area-wrapper {
            position: relative;
        }

        .student-text {
            width: 100%;
            min-height: 200px;
            background: rgba(10, 14, 39, 0.8);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            padding: 1rem;
            color: var(--soft-white);
            font-family: inherit;
            font-size: 0.95rem;
            line-height: 1.6;
            resize: vertical;
            transition: all 0.3s;
        }

        .student-text:focus {
            outline: none;
            border-color: var(--neon-cyan);
            box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
        }

        /* Highlighted Text with Annotations */
        .highlighted-text {
            position: relative;
            padding: 1rem;
            background: rgba(10, 14, 39, 0.8);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            min-height: 200px;
            line-height: 1.8;
        }

        .highlight {
            position: relative;
            cursor: help;
            transition: all 0.3s;
        }

        .highlight.suggestion {
            background: rgba(139, 92, 246, 0.3);
            border-bottom: 2px solid var(--suggestion-purple);
        }

        .highlight.praise {
            background: rgba(16, 185, 129, 0.3);
            border-bottom: 2px solid var(--success-green);
        }

        .highlight.question {
            background: rgba(251, 191, 36, 0.3);
            border-bottom: 2px solid var(--highlight-yellow);
        }

        .highlight:hover {
            background: rgba(139, 92, 246, 0.5);
        }

        /* Inline Annotation Popup */
        .annotation-popup {
            position: absolute;
            bottom: calc(100% + 10px);
            left: 50%;
            transform: translateX(-50%);
            background: var(--midnight-blue);
            border: 2px solid var(--suggestion-purple);
            border-radius: 0.5rem;
            padding: 0.75rem;
            min-width: 250px;
            max-width: 350px;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s;
            z-index: 100;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
        }

        .highlight:hover .annotation-popup {
            opacity: 1;
            visibility: visible;
        }

        .annotation-popup::after {
            content: '';
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            border: 8px solid transparent;
            border-top-color: var(--suggestion-purple);
        }

        .annotation-author {
            font-size: 0.75rem;
            color: var(--suggestion-purple);
            margin-bottom: 0.25rem;
            font-weight: 600;
        }

        .annotation-text {
            font-size: 0.875rem;
            line-height: 1.4;
        }

        /* Feedback Sidebar */
        .feedback-sidebar {
            position: sticky;
            top: 2rem;
            height: fit-content;
        }

        .sidebar-card {
            background: rgba(107, 70, 193, 0.1);
            border: 1px solid rgba(107, 70, 193, 0.3);
            border-radius: 0.75rem;
            padding: 1.5rem;
            margin-bottom: 1rem;
        }

        .card-title {
            font-size: 1rem;
            color: var(--sunrise-gold);
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        /* Sticky Notes */
        .sticky-note {
            background: linear-gradient(135deg, var(--sticky-pink) 0%, var(--electric-magenta) 100%);
            padding: 1rem;
            border-radius: 0.5rem;
            margin-bottom: 0.75rem;
            position: relative;
            transform: rotate(-1deg);
            transition: all 0.3s;
            cursor: pointer;
            box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.3);
        }

        .sticky-note:nth-child(even) {
            transform: rotate(1deg);
            background: linear-gradient(135deg, var(--highlight-yellow) 0%, var(--sunrise-gold) 100%);
        }

        .sticky-note:hover {
            transform: rotate(0deg) scale(1.05);
            box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.4);
            z-index: 10;
        }

        .sticky-note-header {
            font-size: 0.75rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
            color: var(--midnight-deep);
            opacity: 0.8;
        }

        .sticky-note-content {
            font-size: 0.875rem;
            color: var(--midnight-deep);
            line-height: 1.4;
        }

        /* Quick Actions */
        .quick-actions {
            display: flex;
            gap: 0.5rem;
            margin-top: 1rem;
        }

        .action-btn {
            flex: 1;
            padding: 0.5rem;
            background: rgba(74, 158, 255, 0.1);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            color: var(--soft-white);
            font-size: 0.75rem;
            cursor: pointer;
            transition: all 0.3s;
            text-align: center;
        }

        .action-btn:hover {
            background: rgba(74, 158, 255, 0.2);
            transform: translateY(-2px);
        }

        .action-btn.accept {
            background: rgba(16, 185, 129, 0.2);
            border-color: var(--success-green);
        }

        .action-btn.reject {
            background: rgba(239, 68, 68, 0.2);
            border-color: #ef4444;
        }

        /* Overall Feedback Section */
        .overall-feedback {
            grid-column: 1 / -1;
            background: rgba(139, 92, 246, 0.05);
            border: 1px solid rgba(139, 92, 246, 0.2);
            border-radius: 0.5rem;
            padding: 1.5rem;
            margin-top: 1rem;
        }

        .feedback-content {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr;
            gap: 1.5rem;
            margin-top: 1rem;
        }

        .feedback-category {
            background: rgba(26, 26, 46, 0.5);
            padding: 1rem;
            border-radius: 0.5rem;
        }

        .category-title {
            font-size: 0.875rem;
            color: var(--neon-cyan);
            margin-bottom: 0.5rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .category-content {
            font-size: 0.875rem;
            line-height: 1.5;
            opacity: 0.9;
        }

        /* Bottom Action Bar */
        .action-bar {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: rgba(26, 26, 46, 0.98);
            backdrop-filter: blur(10px);
            padding: 1.5rem;
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            z-index: 100;
        }

        .action-bar-content {
            max-width: 1400px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .revision-stats {
            display: flex;
            gap: 2rem;
        }

        .stat-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .stat-label {
            font-size: 0.875rem;
            opacity: 0.7;
        }

        .stat-value {
            font-size: 1.125rem;
            font-weight: 600;
            color: var(--neon-cyan);
        }

        .action-buttons {
            display: flex;
            gap: 1rem;
        }

        .btn {
            padding: 0.75rem 1.5rem;
            border: none;
            border-radius: 0.5rem;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
        }

        .btn-save {
            background: rgba(74, 158, 255, 0.2);
            color: var(--soft-white);
            border: 1px solid rgba(74, 158, 255, 0.5);
        }

        .btn-save:hover {
            background: rgba(74, 158, 255, 0.3);
            transform: translateY(-2px);
        }

        .btn-submit-final {
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
        }

        .btn-submit-final:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(255, 0, 255, 0.4);
        }

        /* Fun Animation for Accepted Changes */
        @keyframes celebrate {
            0% { transform: scale(1) rotate(0deg); }
            50% { transform: scale(1.2) rotate(5deg); }
            100% { transform: scale(1) rotate(0deg); }
        }

        .accepted {
            animation: celebrate 0.5s ease;
            border-color: var(--success-green) !important;
        }

        /* Confetti Animation for Final Submit */
        .confetti {
            position: fixed;
            width: 10px;
            height: 10px;
            background: var(--neon-cyan);
            position: absolute;
            animation: confetti-fall 3s linear;
        }

        @keyframes confetti-fall {
            0% {
                transform: translateY(-100vh) rotate(0deg);
                opacity: 1;
            }
            100% {
                transform: translateY(100vh) rotate(720deg);
                opacity: 0;
            }
        }

        /* Responsive Design */
        @media (max-width: 1024px) {
            .scene-content {
                grid-template-columns: 1fr;
            }
            
            .feedback-sidebar {
                position: relative;
                top: 0;
            }
            
            .feedback-content {
                grid-template-columns: 1fr;
            }
        }


/* From m2m-student-portal.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --midnight-deep: #0a0e27;
            --midnight-blue: #141936;
            --charcoal: #1a1a2e;
            --neon-cyan: #00ffff;
            --electric-magenta: #ff00ff;
            --sunrise-gold: #ffd700;
            --soft-white: #f0f0f0;
            --shadow-purple: #6b46c1;
            --glow-blue: #4a9eff;
            --success-green: #10b981;
            --warning-amber: #f59e0b;
            --danger-red: #ef4444;
        }

        body {
            font-family: 'Segoe UI', system-ui, sans-serif;
            background: linear-gradient(135deg, var(--midnight-deep) 0%, var(--charcoal) 50%, var(--midnight-blue) 100%);
            color: var(--soft-white);
            min-height: 100vh;
        }

        /* Student Navigation Bar */
        .student-nav {
            background: rgba(26, 26, 46, 0.95);
            backdrop-filter: blur(10px);
            padding: 1rem 2rem;
            position: sticky;
            top: 0;
            z-index: 100;
            border-bottom: 1px solid rgba(0, 255, 255, 0.2);
        }

        .nav-container {
            max-width: 1400px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .student-info {
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .student-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--neon-cyan), var(--electric-magenta));
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            color: var(--midnight-deep);
        }

        .student-name {
            font-size: 0.9rem;
        }

        .student-level {
            font-size: 0.75rem;
            color: var(--neon-cyan);
            margin-top: 0.25rem;
        }

        .progress-indicator {
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: 0.5rem 1rem;
            background: rgba(74, 158, 255, 0.1);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 999px;
        }

        .progress-ring {
            width: 30px;
            height: 30px;
            position: relative;
        }

        .progress-ring svg {
            transform: rotate(-90deg);
        }

        .progress-ring circle {
            fill: none;
            stroke-width: 3;
        }

        .progress-bg {
            stroke: rgba(255, 255, 255, 0.1);
        }

        .progress-fill {
            stroke: var(--neon-cyan);
            stroke-dasharray: 88;
            stroke-dashoffset: 22;
            transition: stroke-dashoffset 0.5s;
            stroke-linecap: round;
        }

        /* Camp Journey Container */
        .camp-container {
            max-width: 1400px;
            margin: 2rem auto;
            padding: 0 2rem;
        }

        .journey-header {
            text-align: center;
            margin-bottom: 3rem;
            animation: fadeInUp 0.8s ease;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .journey-title {
            font-size: 2.5rem;
            margin-bottom: 1rem;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta), var(--sunrise-gold));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: gradient-shift 3s ease infinite;
        }

        @keyframes gradient-shift {
            0%, 100% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
        }

        .journey-subtitle {
            color: var(--soft-white);
            opacity: 0.8;
            font-size: 1.1rem;
        }

        /* Journey Timeline */
        .journey-timeline {
            position: relative;
            padding: 2rem 0;
            margin-bottom: 3rem;
        }

        .timeline-line {
            position: absolute;
            left: 50%;
            top: 0;
            bottom: 0;
            width: 2px;
            background: linear-gradient(180deg, var(--neon-cyan) 0%, var(--electric-magenta) 50%, var(--sunrise-gold) 100%);
            transform: translateX(-50%);
            opacity: 0.3;
        }

        .timeline-nodes {
            display: flex;
            justify-content: space-between;
            position: relative;
            max-width: 900px;
            margin: 0 auto;
        }

        .timeline-node {
            flex: 1;
            text-align: center;
            position: relative;
        }

        .node-circle {
            width: 60px;
            height: 60px;
            margin: 0 auto 1rem;
            border-radius: 50%;
            background: var(--charcoal);
            border: 3px solid rgba(255, 255, 255, 0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
        }

        .node-circle.completed {
            background: linear-gradient(135deg, var(--success-green), var(--neon-cyan));
            border-color: var(--success-green);
            animation: pulse-glow 2s infinite;
        }

        .node-circle.current {
            border-color: var(--electric-magenta);
            box-shadow: 0 0 30px rgba(255, 0, 255, 0.5);
            animation: current-pulse 1.5s infinite;
        }

        @keyframes current-pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }

        @keyframes pulse-glow {
            0%, 100% { box-shadow: 0 0 20px rgba(16, 185, 129, 0.5); }
            50% { box-shadow: 0 0 40px rgba(16, 185, 129, 0.8); }
        }

        .node-label {
            font-size: 0.875rem;
            color: var(--soft-white);
            opacity: 0.7;
        }

        .node-circle.completed + .node-label,
        .node-circle.current + .node-label {
            opacity: 1;
            font-weight: 600;
        }

        /* Module Sections */
        .module-section {
            background: rgba(26, 26, 46, 0.5);
            backdrop-filter: blur(10px);
            border-radius: 1rem;
            padding: 2rem;
            margin-bottom: 2rem;
            border: 1px solid rgba(255, 255, 255, 0.1);
            animation: fadeInUp 0.8s ease;
        }

        .module-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 2rem;
        }

        .module-title {
            font-size: 1.5rem;
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .module-icon {
            width: 40px;
            height: 40px;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            border-radius: 0.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
        }

        .module-status {
            padding: 0.5rem 1rem;
            border-radius: 999px;
            font-size: 0.875rem;
            font-weight: 600;
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        /* Video Player Section */
        .video-section {
            margin-bottom: 2rem;
        }

        .video-container {
            position: relative;
            padding-bottom: 56.25%;
            height: 0;
            overflow: hidden;
            border-radius: 1rem;
            background: var(--midnight-deep);
            margin-bottom: 1rem;
        }

        .video-container iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: none;
            border-radius: 1rem;
        }

        .video-controls {
            display: flex;
            gap: 1rem;
            justify-content: center;
            flex-wrap: wrap;
        }

        .control-btn {
            padding: 0.75rem 1.5rem;
            background: rgba(74, 158, 255, 0.1);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            color: var(--soft-white);
            cursor: pointer;
            transition: all 0.3s;
            font-size: 0.875rem;
        }

        .control-btn:hover {
            background: rgba(74, 158, 255, 0.2);
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(74, 158, 255, 0.3);
        }

        /* Interactive Exercise Cards */
        .exercise-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .exercise-card {
            background: rgba(74, 158, 255, 0.05);
            border: 1px solid rgba(74, 158, 255, 0.2);
            border-radius: 0.75rem;
            padding: 1.5rem;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }

        .exercise-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.2), transparent);
            transition: left 0.5s;
        }

        .exercise-card:hover::before {
            left: 100%;
        }

        .exercise-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 30px rgba(0, 255, 255, 0.3);
            border-color: var(--neon-cyan);
        }

        .exercise-number {
            display: inline-block;
            width: 30px;
            height: 30px;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            border-radius: 50%;
            text-align: center;
            line-height: 30px;
            font-weight: bold;
            margin-bottom: 1rem;
            color: var(--midnight-deep);
        }

        .exercise-title {
            font-size: 1.1rem;
            margin-bottom: 0.5rem;
            color: var(--neon-cyan);
        }

        .exercise-description {
            font-size: 0.875rem;
            color: var(--soft-white);
            opacity: 0.8;
            line-height: 1.5;
            margin-bottom: 1rem;
        }

        .exercise-status {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.875rem;
        }

        .status-icon {
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: var(--success-green);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 0.75rem;
        }

        /* Submission Form Section */
        .submission-section {
            background: rgba(107, 70, 193, 0.1);
            border: 2px solid rgba(107, 70, 193, 0.3);
            border-radius: 1rem;
            padding: 2rem;
            margin-top: 3rem;
        }

        .submission-header {
            text-align: center;
            margin-bottom: 2rem;
        }

        .submission-title {
            font-size: 1.8rem;
            margin-bottom: 0.5rem;
            color: var(--sunrise-gold);
        }

        .submission-subtitle {
            color: var(--soft-white);
            opacity: 0.8;
        }

        .submission-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .submission-box {
            background: rgba(26, 26, 46, 0.8);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 0.75rem;
            padding: 1.5rem;
            position: relative;
        }

        .submission-box-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .clip-number {
            font-size: 0.875rem;
            color: var(--electric-magenta);
            font-weight: 600;
        }

        .char-counter {
            font-size: 0.75rem;
            color: var(--soft-white);
            opacity: 0.6;
        }

        .char-counter.warning {
            color: var(--warning-amber);
        }

        .char-counter.danger {
            color: var(--danger-red);
        }

        .submission-textarea {
            width: 100%;
            min-height: 150px;
            background: rgba(10, 14, 39, 0.8);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            padding: 1rem;
            color: var(--soft-white);
            font-family: inherit;
            font-size: 0.875rem;
            resize: vertical;
            transition: all 0.3s;
        }

        .submission-textarea:focus {
            outline: none;
            border-color: var(--neon-cyan);
            box-shadow: 0 0 20px rgba(0, 255, 255, 0.2);
        }

        .submission-textarea::placeholder {
            color: rgba(255, 255, 255, 0.3);
        }

        .ai-prompt-helper {
            margin-top: 0.5rem;
            padding: 0.5rem;
            background: rgba(255, 215, 0, 0.05);
            border-left: 3px solid var(--sunrise-gold);
            border-radius: 0.25rem;
            font-size: 0.75rem;
            color: var(--sunrise-gold);
            opacity: 0.8;
        }

        /* Submission Actions */
        .submission-actions {
            display: flex;
            gap: 1rem;
            justify-content: center;
            margin-top: 2rem;
        }

        .btn {
            padding: 1rem 2rem;
            border: none;
            border-radius: 0.5rem;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
            position: relative;
            overflow: hidden;
        }

        .btn-save {
            background: rgba(74, 158, 255, 0.2);
            color: var(--glow-blue);
            border: 1px solid var(--glow-blue);
        }

        .btn-save:hover {
            background: rgba(74, 158, 255, 0.3);
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(74, 158, 255, 0.4);
        }

        .btn-submit {
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
        }

        .btn-submit:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(255, 0, 255, 0.4);
        }

        .btn-submit:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

        /* Feedback Display Section */
        .feedback-section {
            background: rgba(16, 185, 129, 0.05);
            border: 1px solid rgba(16, 185, 129, 0.3);
            border-radius: 1rem;
            padding: 2rem;
            margin-top: 2rem;
        }

        .feedback-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1.5rem;
        }

        .feedback-title {
            font-size: 1.3rem;
            color: var(--success-green);
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .feedback-timestamp {
            font-size: 0.875rem;
            color: var(--soft-white);
            opacity: 0.6;
        }

        .feedback-content {
            background: rgba(26, 26, 46, 0.5);
            border-radius: 0.5rem;
            padding: 1.5rem;
            line-height: 1.6;
        }

        .feedback-from {
            font-weight: 600;
            color: var(--neon-cyan);
            margin-bottom: 1rem;
        }

        .feedback-message {
            color: var(--soft-white);
            opacity: 0.9;
        }

        /* Final Video Display */
        .final-video-section {
            background: linear-gradient(135deg, rgba(255, 215, 0, 0.05), rgba(255, 0, 255, 0.05));
            border: 2px solid var(--sunrise-gold);
            border-radius: 1rem;
            padding: 2rem;
            margin-top: 2rem;
            text-align: center;
        }

        .final-video-title {
            font-size: 1.8rem;
            margin-bottom: 1rem;
            background: linear-gradient(90deg, var(--sunrise-gold), var(--electric-magenta));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .celebration-text {
            font-size: 1.1rem;
            margin-bottom: 2rem;
            color: var(--soft-white);
            opacity: 0.9;
        }

        .certificate-badge {
            display: inline-block;
            padding: 1rem 2rem;
            background: linear-gradient(135deg, var(--sunrise-gold), var(--electric-magenta));
            border-radius: 999px;
            color: var(--midnight-deep);
            font-weight: bold;
            margin-top: 1rem;
            animation: float 3s ease-in-out infinite;
        }

        @keyframes float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }

        /* Responsive Design */
        @media (max-width: 768px) {
            .journey-title {
                font-size: 1.8rem;
            }

            .timeline-nodes {
                flex-direction: column;
                gap: 2rem;
            }

            .timeline-line {
                left: 2rem;
            }

            .exercise-grid,
            .submission-grid {
                grid-template-columns: 1fr;
            }

            .submission-actions {
                flex-direction: column;
            }

            .btn {
                width: 100%;
            }
        }

        /* Loading States */
        .skeleton-loader {
            background: linear-gradient(90deg, rgba(255, 255, 255, 0.1) 25%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.1) 75%);
            background-size: 200% 100%;
            animation: skeleton-loading 1.5s infinite;
        }

        @keyframes skeleton-loading {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }

        /* Notification Toast */
        .notification-toast {
            position: fixed;
            bottom: 2rem;
            right: 2rem;
            padding: 1rem 1.5rem;
            background: rgba(16, 185, 129, 0.9);
            color: white;
            border-radius: 0.5rem;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
            transform: translateX(400px);
            transition: transform 0.3s;
            z-index: 1000;
        }

        .notification-toast.show {
            transform: translateX(0);
        }


/* From m2m-wordpress-theme.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --midnight-deep: #0a0e27;
            --midnight-blue: #141936;
            --charcoal: #1a1a2e;
            --neon-cyan: #00ffff;
            --electric-magenta: #ff00ff;
            --sunrise-gold: #ffd700;
            --soft-white: #f0f0f0;
            --shadow-purple: #6b46c1;
            --glow-blue: #4a9eff;
        }

        body {
            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
            background: linear-gradient(135deg, var(--midnight-deep) 0%, var(--charcoal) 50%, var(--midnight-blue) 100%);
            color: var(--soft-white);
            min-height: 100vh;
            overflow-x: hidden;
            position: relative;
        }

        /* Animated Background Particles */
        .particle-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
        }

        .sparkle {
            position: absolute;
            width: 4px;
            height: 4px;
            background: white;
            border-radius: 50%;
            box-shadow: 0 0 10px var(--neon-cyan), 0 0 20px var(--neon-cyan);
            animation: sparkle-float 15s infinite;
            opacity: 0;
        }

        @keyframes sparkle-float {
            0%, 100% { 
                opacity: 0;
                transform: translateY(100vh) scale(0);
            }
            10% {
                opacity: 1;
                transform: translateY(90vh) scale(1);
            }
            90% {
                opacity: 1;
                transform: translateY(10vh) scale(1);
            }
        }

        /* Hero Scene */
        .hero-scene {
            position: relative;
            height: 100vh;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            z-index: 10;
        }

        .hero-sparkle {
            position: absolute;
            width: 10px;
            height: 10px;
            background: radial-gradient(circle, var(--sunrise-gold) 0%, transparent 70%);
            border-radius: 50%;
            animation: hero-sparkle-expand 3s ease-out forwards;
            box-shadow: 0 0 50px var(--sunrise-gold), 0 0 100px var(--electric-magenta);
        }

        @keyframes hero-sparkle-expand {
            0% {
                transform: scale(0) rotate(0deg);
                opacity: 0;
            }
            50% {
                transform: scale(20) rotate(180deg);
                opacity: 1;
            }
            100% {
                transform: scale(40) rotate(360deg);
                opacity: 0;
            }
        }

        .studio-title {
            font-size: clamp(2rem, 5vw, 4rem);
            font-weight: 100;
            letter-spacing: 0.3em;
            text-transform: uppercase;
            text-align: center;
            opacity: 0;
            animation: title-reveal 2s ease-out 1.5s forwards;
            text-shadow: 0 0 30px rgba(0, 255, 255, 0.5);
            background: linear-gradient(45deg, var(--neon-cyan), var(--electric-magenta), var(--sunrise-gold));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .studio-tagline {
            font-size: clamp(1rem, 2.5vw, 1.8rem);
            font-weight: 300;
            margin-top: 1rem;
            opacity: 0;
            animation: title-reveal 2s ease-out 2s forwards;
            color: var(--soft-white);
            text-shadow: 0 0 20px rgba(255, 215, 0, 0.3);
        }

        @keyframes title-reveal {
            to {
                opacity: 1;
                transform: translateY(0);
            }
            from {
                opacity: 0;
                transform: translateY(20px);
            }
        }

        /* Navigation Console */
        .nav-console {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            padding: 2rem;
            background: linear-gradient(180deg, rgba(10, 14, 39, 0.95) 0%, transparent 100%);
            backdrop-filter: blur(10px);
            z-index: 100;
            opacity: 0;
            animation: nav-reveal 1s ease-out 3s forwards;
        }

        @keyframes nav-reveal {
            to {
                opacity: 1;
            }
        }

        .nav-container {
            max-width: 1400px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 2rem;
        }

        .logo {
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--sunrise-gold);
            text-decoration: none;
            position: relative;
            transition: all 0.3s ease;
        }

        .logo::before {
            content: '';
            position: absolute;
            top: -10px;
            left: -10px;
            right: -10px;
            bottom: -10px;
            background: radial-gradient(circle, transparent 30%, var(--sunrise-gold) 100%);
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none;
        }

        .logo:hover::before {
            opacity: 0.3;
            animation: pulse-glow 1s infinite;
        }

        @keyframes pulse-glow {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }

        /* Dream Portal Navigation */
        .dream-portal {
            display: flex;
            gap: 1rem;
            align-items: center;
        }

        .portal-tab {
            position: relative;
            padding: 0.8rem 1.5rem;
            background: linear-gradient(135deg, rgba(107, 70, 193, 0.2) 0%, rgba(74, 158, 255, 0.2) 100%);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 30px;
            color: var(--soft-white);
            text-decoration: none;
            font-size: 0.9rem;
            font-weight: 500;
            letter-spacing: 0.05em;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            cursor: pointer;
            overflow: hidden;
        }

        .portal-tab::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle, var(--neon-cyan) 0%, transparent 70%);
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none;
        }

        .portal-tab:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(0, 255, 255, 0.3), 0 0 50px rgba(255, 0, 255, 0.2);
            border-color: var(--neon-cyan);
        }

        .portal-tab:hover::before {
            opacity: 0.2;
            animation: spotlight-sweep 1s ease-out;
        }

        @keyframes spotlight-sweep {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }

        /* Dropdown Menu */
        .dropdown {
            position: relative;
        }

        .dropdown-content {
            position: absolute;
            top: 100%;
            left: 0;
            min-width: 250px;
            background: rgba(26, 26, 46, 0.98);
            backdrop-filter: blur(20px);
            border: 1px solid rgba(0, 255, 255, 0.3);
            border-radius: 15px;
            padding: 1rem;
            margin-top: 0.5rem;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-10px);
            transition: all 0.3s ease;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5), 0 0 100px rgba(0, 255, 255, 0.1);
        }

        .dropdown:hover .dropdown-content {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .dropdown-item {
            display: block;
            padding: 0.7rem 1rem;
            color: var(--soft-white);
            text-decoration: none;
            border-radius: 8px;
            transition: all 0.3s ease;
            margin: 0.2rem 0;
            position: relative;
            overflow: hidden;
        }

        .dropdown-item::after {
            content: '';
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            width: 3px;
            height: 0;
            background: linear-gradient(180deg, var(--electric-magenta) 0%, var(--neon-cyan) 100%);
            transition: height 0.3s ease;
        }

        .dropdown-item:hover {
            background: rgba(74, 158, 255, 0.1);
            padding-left: 1.5rem;
        }

        .dropdown-item:hover::after {
            height: 60%;
        }

        /* Featured Content Strip */
        .content-strip {
            position: relative;
            margin: 4rem 0;
            padding: 2rem;
            overflow: hidden;
            z-index: 10;
        }

        .strip-container {
            max-width: 1400px;
            margin: 0 auto;
        }

        .strip-title {
            font-size: 2rem;
            margin-bottom: 2rem;
            text-align: center;
            background: linear-gradient(90deg, var(--electric-magenta) 0%, var(--neon-cyan) 50%, var(--sunrise-gold) 100%);
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: gradient-shift 3s ease infinite;
        }

        @keyframes gradient-shift {
            0%, 100% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
        }

        .content-carousel {
            display: flex;
            gap: 2rem;
            overflow-x: auto;
            padding: 1rem 0;
            scroll-snap-type: x mandatory;
        }

        .content-card {
            flex: 0 0 300px;
            height: 200px;
            background: linear-gradient(135deg, rgba(107, 70, 193, 0.3) 0%, rgba(74, 158, 255, 0.3) 100%);
            border-radius: 20px;
            padding: 1.5rem;
            border: 1px solid rgba(255, 255, 255, 0.1);
            scroll-snap-align: start;
            transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }

        .content-card::before {
            content: '';
            position: absolute;
            top: -100%;
            left: -100%;
            width: 300%;
            height: 300%;
            background: radial-gradient(circle, rgba(255, 215, 0, 0.3) 0%, transparent 50%);
            opacity: 0;
            transition: all 0.5s ease;
            pointer-events: none;
        }

        .content-card:hover {
            transform: translateY(-10px) scale(1.05);
            box-shadow: 0 20px 40px rgba(0, 255, 255, 0.3), 0 0 80px rgba(255, 0, 255, 0.2);
            border-color: var(--neon-cyan);
        }

        .content-card:hover::before {
            opacity: 1;
            top: -50%;
            left: -50%;
            animation: card-spotlight 2s ease infinite;
        }

        @keyframes card-spotlight {
            0%, 100% { transform: rotate(0deg); }
            50% { transform: rotate(180deg); }
        }

        .card-title {
            font-size: 1.2rem;
            margin-bottom: 0.5rem;
            color: var(--sunrise-gold);
        }

        .card-description {
            color: rgba(255, 255, 255, 0.8);
            font-size: 0.9rem;
            line-height: 1.5;
        }

        /* Portal Login Modal */
        .portal-login {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: rgba(26, 26, 46, 0.98);
            backdrop-filter: blur(20px);
            border: 2px solid rgba(0, 255, 255, 0.3);
            border-radius: 30px;
            padding: 3rem;
            min-width: 400px;
            box-shadow: 0 0 100px rgba(0, 255, 255, 0.3), 0 0 200px rgba(255, 0, 255, 0.1);
            display: none;
            z-index: 1000;
        }

        .portal-login.active {
            display: block;
            animation: modal-appear 0.5s ease;
        }

        @keyframes modal-appear {
            from {
                opacity: 0;
                transform: translate(-50%, -50%) scale(0.8);
            }
            to {
                opacity: 1;
                transform: translate(-50%, -50%) scale(1);
            }
        }

        .login-title {
            font-size: 1.8rem;
            margin-bottom: 2rem;
            text-align: center;
            background: linear-gradient(45deg, var(--neon-cyan), var(--electric-magenta));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .input-group {
            margin-bottom: 1.5rem;
        }

        .input-group label {
            display: block;
            margin-bottom: 0.5rem;
            color: var(--neon-cyan);
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
        }

        .input-group input {
            width: 100%;
            padding: 1rem;
            background: rgba(74, 158, 255, 0.1);
            border: 1px solid rgba(0, 255, 255, 0.3);
            border-radius: 10px;
            color: var(--soft-white);
            font-size: 1rem;
            transition: all 0.3s ease;
        }

        .input-group input:focus {
            outline: none;
            border-color: var(--neon-cyan);
            box-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
            background: rgba(74, 158, 255, 0.2);
        }

        .btn-primary {
            width: 100%;
            padding: 1rem 2rem;
            background: linear-gradient(135deg, var(--electric-magenta) 0%, var(--neon-cyan) 100%);
            border: none;
            border-radius: 25px;
            color: var(--midnight-deep);
            font-size: 1rem;
            font-weight: bold;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .btn-primary::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 0;
            height: 0;
            background: radial-gradient(circle, var(--sunrise-gold) 0%, transparent 70%);
            transition: all 0.5s ease;
        }

        .btn-primary:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(255, 0, 255, 0.4), 0 0 50px rgba(0, 255, 255, 0.3);
        }

        .btn-primary:hover::before {
            width: 300%;
            height: 300%;
        }

        /* Policy Section */
        .policy-section {
            max-width: 1200px;
            margin: 4rem auto;
            padding: 2rem;
            z-index: 10;
            position: relative;
        }

        .policy-accordion {
            background: rgba(26, 26, 46, 0.5);
            backdrop-filter: blur(10px);
            border-radius: 20px;
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        .policy-item {
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        }

        .policy-item:last-child {
            border-bottom: none;
        }

        .policy-header {
            padding: 1.5rem 2rem;
            cursor: pointer;
            background: rgba(74, 158, 255, 0.05);
            transition: all 0.3s ease;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .policy-header:hover {
            background: rgba(74, 158, 255, 0.1);
            padding-left: 2.5rem;
        }

        .policy-title {
            color: var(--neon-cyan);
            font-size: 1.1rem;
            font-weight: 600;
        }

        .policy-icon {
            transition: transform 0.3s ease;
        }

        .policy-item.active .policy-icon {
            transform: rotate(180deg);
        }

        .policy-content {
            padding: 0 2rem;
            max-height: 0;
            overflow: hidden;
            transition: all 0.5s ease;
            color: rgba(255, 255, 255, 0.8);
            line-height: 1.6;
        }

        .policy-item.active .policy-content {
            max-height: 500px;
            padding: 1.5rem 2rem;
        }

        /* Footer */
        footer {
            margin-top: 6rem;
            padding: 3rem 2rem;
            background: rgba(10, 14, 39, 0.9);
            text-align: center;
            position: relative;
            z-index: 10;
        }

        .footer-sparkle {
            position: absolute;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 100%;
            height: 2px;
            background: linear-gradient(90deg, transparent 0%, var(--neon-cyan) 25%, var(--electric-magenta) 50%, var(--sunrise-gold) 75%, transparent 100%);
            animation: footer-sparkle-move 10s linear infinite;
        }

        @keyframes footer-sparkle-move {
            0% { background-position: -100% 0; }
            100% { background-position: 100% 0; }
        }

        /* Responsive Design */
        @media (max-width: 768px) {
            .nav-container {
                flex-direction: column;
                gap: 1rem;
            }

            .dream-portal {
                flex-wrap: wrap;
                justify-content: center;
            }

            .portal-tab {
                font-size: 0.8rem;
                padding: 0.6rem 1rem;
            }

            .content-card {
                flex: 0 0 250px;
            }

            .portal-login {
                min-width: 90%;
                padding: 2rem;
            }
        }

        /* Accessibility Focus States */
        *:focus-visible {
            outline: 2px solid var(--neon-cyan);
            outline-offset: 2px;
        }

        /* Sound Toggle Button */
        .sound-toggle {
            position: fixed;
            bottom: 2rem;
            right: 2rem;
            width: 50px;
            height: 50px;
            border-radius: 50%;
            background: rgba(26, 26, 46, 0.9);
            border: 2px solid rgba(0, 255, 255, 0.3);
            color: var(--neon-cyan);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.3s ease;
            z-index: 100;
        }

        .sound-toggle:hover {
            transform: scale(1.1);
            box-shadow: 0 0 30px rgba(0, 255, 255, 0.5);
        }

        /* Loading Screen */
        .loading-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: var(--midnight-deep);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
            animation: fade-out 1s ease 2s forwards;
        }

        @keyframes fade-out {
            to {
                opacity: 0;
                visibility: hidden;
            }
        }

        .loading-sparkle {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            background: radial-gradient(circle, var(--sunrise-gold) 0%, transparent 70%);
            animation: loading-pulse 1s ease infinite;
        }

        @keyframes loading-pulse {
            0%, 100% {
                transform: scale(1);
                opacity: 0.5;
            }
            50% {
                transform: scale(1.5);
                opacity: 1;
            }
        }


/* From m2m-camp-configuration.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --admin-dark: #0f1419;
            --admin-sidebar: #1a1f2e;
            --admin-card: #232937;
            --admin-hover: #2d3548;
            --success-green: #10b981;
            --warning-yellow: #f59e0b;
            --danger-red: #ef4444;
            --info-blue: #3b82f6;
            --purple-accent: #8b5cf6;
            --text-primary: #f3f4f6;
            --text-secondary: #9ca3af;
            --border-color: #374151;
            --neon-cyan: #00ffff;
            --electric-magenta: #ff00ff;
            --sunrise-gold: #ffd700;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background: var(--admin-dark);
            color: var(--text-primary);
            min-height: 100vh;
            display: flex;
        }

        /* Admin Layout */
        .admin-container {
            display: flex;
            width: 100%;
        }

        .admin-sidebar {
            width: 280px;
            background: var(--admin-sidebar);
            padding: 2rem 0;
            border-right: 1px solid var(--border-color);
            position: fixed;
            height: 100vh;
            overflow-y: auto;
        }

        .main-content {
            flex: 1;
            margin-left: 280px;
            padding: 2rem;
            max-width: 1600px;
        }

        /* Header */
        .page-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 2rem;
            padding-bottom: 2rem;
            border-bottom: 1px solid var(--border-color);
        }

        .page-title {
            font-size: 2rem;
            font-weight: 600;
        }

        .header-actions {
            display: flex;
            gap: 1rem;
        }

        .btn {
            padding: 0.75rem 1.5rem;
            border: none;
            border-radius: 0.5rem;
            font-size: 0.875rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
        }

        .btn-primary {
            background: var(--purple-accent);
            color: white;
        }

        .btn-primary:hover {
            background: #7c3aed;
            transform: translateY(-1px);
        }

        .btn-secondary {
            background: var(--admin-card);
            color: var(--text-primary);
            border: 1px solid var(--border-color);
        }

        /* Camp Configuration Tabs */
        .config-tabs {
            display: flex;
            gap: 0.5rem;
            margin-bottom: 2rem;
            border-bottom: 1px solid var(--border-color);
            overflow-x: auto;
        }

        .config-tab {
            padding: 1rem 1.5rem;
            background: none;
            border: none;
            color: var(--text-secondary);
            cursor: pointer;
            transition: all 0.2s;
            white-space: nowrap;
            position: relative;
            font-size: 0.95rem;
            font-weight: 500;
        }

        .config-tab:hover {
            color: var(--text-primary);
        }

        .config-tab.active {
            color: var(--purple-accent);
        }

        .config-tab.active::after {
            content: '';
            position: absolute;
            bottom: -1px;
            left: 0;
            right: 0;
            height: 3px;
            background: var(--purple-accent);
        }

        /* Configuration Panels */
        .config-panel {
            display: none;
        }

        .config-panel.active {
            display: block;
            animation: fadeIn 0.3s ease;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        /* Basic Info Section */
        .config-section {
            background: var(--admin-card);
            border-radius: 0.75rem;
            padding: 2rem;
            margin-bottom: 2rem;
            border: 1px solid var(--border-color);
        }

        .section-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1.5rem;
        }

        .section-title {
            font-size: 1.25rem;
            font-weight: 600;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .form-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 1.5rem;
        }

        .form-group {
            display: flex;
            flex-direction: column;
        }

        .form-label {
            margin-bottom: 0.5rem;
            font-size: 0.875rem;
            font-weight: 500;
            color: var(--text-primary);
        }

        .form-input,
        .form-select,
        .form-textarea {
            padding: 0.75rem;
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            color: var(--text-primary);
            font-size: 0.875rem;
            transition: all 0.2s;
        }

        .form-input:focus,
        .form-select:focus,
        .form-textarea:focus {
            outline: none;
            border-color: var(--purple-accent);
            box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
        }

        .form-textarea {
            min-height: 100px;
            resize: vertical;
        }

        .form-helper {
            margin-top: 0.25rem;
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        /* Toggle Switch */
        .toggle-group {
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .toggle-switch {
            position: relative;
            display: inline-block;
            width: 48px;
            height: 24px;
        }

        .toggle-switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .toggle-slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: var(--border-color);
            transition: 0.3s;
            border-radius: 999px;
        }

        .toggle-slider:before {
            position: absolute;
            content: "";
            height: 18px;
            width: 18px;
            left: 3px;
            bottom: 3px;
            background: white;
            transition: 0.3s;
            border-radius: 50%;
        }

        input:checked + .toggle-slider {
            background: var(--success-green);
        }

        input:checked + .toggle-slider:before {
            transform: translateX(24px);
        }

        /* Schedule Builder */
        .schedule-builder {
            background: var(--admin-dark);
            border-radius: 0.5rem;
            padding: 1.5rem;
            border: 1px solid var(--border-color);
        }

        .day-section {
            margin-bottom: 2rem;
        }

        .day-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 1rem;
            background: var(--admin-hover);
            border-radius: 0.5rem;
            margin-bottom: 1rem;
        }

        .day-title {
            font-size: 1.1rem;
            font-weight: 600;
            color: var(--neon-cyan);
        }

        .session-list {
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }

        .session-item {
            background: var(--admin-card);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            padding: 1rem;
            display: flex;
            align-items: center;
            gap: 1rem;
            transition: all 0.3s;
            cursor: move;
        }

        .session-item:hover {
            transform: translateX(5px);
            border-color: var(--purple-accent);
        }

        .session-item.dragging {
            opacity: 0.5;
        }

        .drag-handle {
            color: var(--text-secondary);
            cursor: move;
        }

        .session-info {
            flex: 1;
        }

        .session-title {
            font-weight: 600;
            margin-bottom: 0.25rem;
        }

        .session-duration {
            font-size: 0.875rem;
            color: var(--text-secondary);
        }

        .session-actions {
            display: flex;
            gap: 0.5rem;
        }

        .icon-btn {
            padding: 0.5rem;
            background: var(--admin-hover);
            border: 1px solid var(--border-color);
            border-radius: 0.25rem;
            color: var(--text-primary);
            cursor: pointer;
            transition: all 0.2s;
        }

        .icon-btn:hover {
            background: var(--purple-accent);
            border-color: var(--purple-accent);
        }

        /* Activity Library */
        .activity-library {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 1rem;
        }

        .activity-card {
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            padding: 1rem;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
        }

        .activity-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            border-color: var(--purple-accent);
        }

        .activity-card.selected {
            border-color: var(--success-green);
            background: rgba(16, 185, 129, 0.1);
        }

        .activity-type {
            display: inline-block;
            padding: 0.25rem 0.5rem;
            background: var(--admin-hover);
            border-radius: 0.25rem;
            font-size: 0.75rem;
            margin-bottom: 0.5rem;
        }

        .activity-type.brainstorm {
            background: rgba(139, 92, 246, 0.2);
            color: var(--purple-accent);
        }

        .activity-type.exercise {
            background: rgba(59, 130, 246, 0.2);
            color: var(--info-blue);
        }

        .activity-type.demo {
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        .activity-title {
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .activity-description {
            font-size: 0.875rem;
            color: var(--text-secondary);
            margin-bottom: 0.5rem;
        }

        .activity-meta {
            display: flex;
            gap: 1rem;
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        /* Prompt Templates */
        .prompt-template {
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            padding: 1.5rem;
            margin-bottom: 1rem;
            position: relative;
        }

        .template-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .template-category {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--admin-dark);
            border-radius: 999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .template-content {
            background: var(--admin-card);
            padding: 1rem;
            border-radius: 0.25rem;
            font-family: 'Courier New', monospace;
            font-size: 0.875rem;
            line-height: 1.5;
            color: var(--neon-cyan);
        }

        .template-variables {
            margin-top: 1rem;
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }

        .variable-tag {
            padding: 0.25rem 0.5rem;
            background: rgba(255, 215, 0, 0.2);
            color: var(--sunrise-gold);
            border-radius: 0.25rem;
            font-size: 0.75rem;
            font-family: monospace;
        }

        /* Resource Manager */
        .resource-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 1rem;
        }

        .resource-item {
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            padding: 1rem;
            text-align: center;
            transition: all 0.3s;
        }

        .resource-item:hover {
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        }

        .resource-icon {
            font-size: 2rem;
            margin-bottom: 0.5rem;
        }

        .resource-name {
            font-weight: 600;
            margin-bottom: 0.25rem;
        }

        .resource-type {
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        /* Settings Panel */
        .settings-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
            gap: 2rem;
        }

        .setting-card {
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            padding: 1.5rem;
        }

        .setting-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid var(--border-color);
        }

        .setting-title {
            font-weight: 600;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .setting-status {
            padding: 0.25rem 0.5rem;
            border-radius: 999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .setting-status.enabled {
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        .setting-status.disabled {
            background: rgba(156, 163, 175, 0.2);
            color: var(--text-secondary);
        }

        .setting-options {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
        }

        .option-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .option-label {
            font-size: 0.875rem;
        }

        /* Save Bar */
        .save-bar {
            position: fixed;
            bottom: 0;
            left: 280px;
            right: 0;
            background: var(--admin-sidebar);
            border-top: 1px solid var(--border-color);
            padding: 1rem 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            z-index: 100;
            transform: translateY(100%);
            transition: transform 0.3s;
        }

        .save-bar.visible {
            transform: translateY(0);
        }

        .save-status {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            color: var(--text-secondary);
        }

        .save-actions {
            display: flex;
            gap: 1rem;
        }

        /* Responsive */
        @media (max-width: 1024px) {
            .admin-sidebar {
                transform: translateX(-100%);
            }

            .main-content {
                margin-left: 0;
            }

            .save-bar {
                left: 0;
            }

            .form-grid {
                grid-template-columns: 1fr;
            }
        }


/* From m2m-camp-configuration.html */
body {
                            font-family: Arial, sans-serif;
                            background: linear-gradient(135deg, #0a0e27 0%, #1a1a2e 50%, #141936 100%);
                            color: #f3f4f6;
                            padding: 2rem;
                        }
                        h1 { color: #00ffff; }
                        h2 { color: #ff00ff; }
                        .preview-badge {
                            position: fixed;
                            top: 1rem;
                            right: 1rem;
                            background: #f59e0b;
                            color: #0a0e27;
                            padding: 0.5rem 1rem;
                            border-radius: 999px;
                            font-weight: bold;
                        }


/* From m2m-analytics-dashboard.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --midnight-deep: #0a0e27;
            --midnight-blue: #141936;
            --charcoal: #1a1a2e;
            --neon-cyan: #00ffff;
            --electric-magenta: #ff00ff;
            --sunrise-gold: #ffd700;
            --soft-white: #f0f0f0;
            --success-green: #10b981;
            --warning-amber: #f59e0b;
            --danger-red: #ef4444;
            --info-blue: #3b82f6;
            --purple-accent: #8b5cf6;
            --text-primary: #f3f4f6;
            --text-secondary: #9ca3af;
            --border-color: #374151;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background: linear-gradient(135deg, var(--midnight-deep) 0%, var(--charcoal) 50%, var(--midnight-blue) 100%);
            color: var(--text-primary);
            min-height: 100vh;
            position: relative;
            overflow-x: hidden;
        }

        /* Magic Particles Background */
        .particles-bg {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0;
        }

        .particle {
            position: absolute;
            width: 3px;
            height: 3px;
            background: var(--purple-accent);
            border-radius: 50%;
            opacity: 0.3;
            animation: float-particle 20s infinite;
        }

        @keyframes float-particle {
            0%, 100% {
                transform: translateY(100vh) translateX(0);
                opacity: 0;
            }
            10%, 90% {
                opacity: 0.3;
            }
            50% {
                transform: translateY(-100vh) translateX(100px);
            }
        }

        /* Dashboard Layout */
        .dashboard-container {
            position: relative;
            z-index: 1;
            max-width: 1600px;
            margin: 0 auto;
            padding: 2rem;
        }

        /* Header */
        .dashboard-header {
            text-align: center;
            margin-bottom: 3rem;
            animation: fadeInDown 1s ease;
        }

        @keyframes fadeInDown {
            from {
                opacity: 0;
                transform: translateY(-30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .dashboard-title {
            font-size: 3rem;
            margin-bottom: 1rem;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta), var(--sunrise-gold));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: gradient-shift 3s ease infinite;
        }

        @keyframes gradient-shift {
            0%, 100% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
        }

        .dashboard-subtitle {
            color: var(--soft-white);
            opacity: 0.9;
            font-size: 1.2rem;
        }

        /* Time Range Selector */
        .time-range-selector {
            display: flex;
            justify-content: center;
            gap: 1rem;
            margin-bottom: 2rem;
        }

        .range-btn {
            padding: 0.75rem 1.5rem;
            background: rgba(139, 92, 246, 0.1);
            border: 1px solid rgba(139, 92, 246, 0.3);
            border-radius: 999px;
            color: var(--soft-white);
            cursor: pointer;
            transition: all 0.3s;
            font-size: 0.875rem;
        }

        .range-btn:hover {
            background: rgba(139, 92, 246, 0.2);
            transform: translateY(-2px);
        }

        .range-btn.active {
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
            font-weight: 600;
        }

        /* Stats Cards Grid */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
            gap: 1.5rem;
            margin-bottom: 3rem;
        }

        .stat-card {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 1rem;
            padding: 1.5rem;
            position: relative;
            overflow: hidden;
            transition: all 0.3s;
            animation: fadeInUp 0.8s ease;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .stat-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 40px rgba(139, 92, 246, 0.3);
            border-color: var(--purple-accent);
        }

        .stat-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta), var(--sunrise-gold));
            animation: shimmer 2s infinite;
        }

        @keyframes shimmer {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }

        .stat-icon {
            width: 50px;
            height: 50px;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            border-radius: 0.75rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            margin-bottom: 1rem;
        }

        .stat-value {
            font-size: 2.5rem;
            font-weight: bold;
            margin-bottom: 0.5rem;
            background: linear-gradient(45deg, var(--neon-cyan), var(--electric-magenta));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .stat-label {
            color: var(--text-secondary);
            font-size: 0.875rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
        }

        .stat-trend {
            position: absolute;
            top: 1rem;
            right: 1rem;
            padding: 0.25rem 0.75rem;
            border-radius: 999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .trend-up {
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        .trend-down {
            background: rgba(239, 68, 68, 0.2);
            color: var(--danger-red);
        }

        /* Chart Containers */
        .charts-row {
            display: grid;
            grid-template-columns: 2fr 1fr;
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .chart-container {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 1rem;
            padding: 1.5rem;
            animation: fadeIn 1s ease;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        .chart-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1.5rem;
        }

        .chart-title {
            font-size: 1.25rem;
            font-weight: 600;
            color: var(--neon-cyan);
        }

        /* Progress Rings */
        .progress-rings {
            display: flex;
            justify-content: space-around;
            align-items: center;
            padding: 2rem 0;
        }

        .progress-ring-container {
            text-align: center;
        }

        .progress-ring {
            width: 120px;
            height: 120px;
            position: relative;
            margin: 0 auto 1rem;
        }

        .progress-ring svg {
            transform: rotate(-90deg);
        }

        .progress-ring circle {
            fill: none;
            stroke-width: 8;
        }

        .progress-bg {
            stroke: rgba(255, 255, 255, 0.1);
        }

        .progress-fill {
            stroke: var(--neon-cyan);
            stroke-dasharray: 339;
            stroke-dashoffset: 100;
            transition: stroke-dashoffset 1s ease;
            stroke-linecap: round;
        }

        .progress-value {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 1.5rem;
            font-weight: bold;
            color: var(--neon-cyan);
        }

        .progress-label {
            font-size: 0.875rem;
            color: var(--text-secondary);
        }

        /* Camp Performance Table */
        .performance-table {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 1rem;
            padding: 1.5rem;
            margin-bottom: 2rem;
            overflow-x: auto;
        }

        .table-title {
            font-size: 1.25rem;
            font-weight: 600;
            color: var(--sunrise-gold);
            margin-bottom: 1.5rem;
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        thead {
            background: rgba(139, 92, 246, 0.1);
        }

        th {
            padding: 1rem;
            text-align: left;
            font-weight: 600;
            color: var(--purple-accent);
            font-size: 0.875rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        td {
            padding: 1rem;
            border-top: 1px solid rgba(255, 255, 255, 0.05);
            font-size: 0.875rem;
        }

        tbody tr {
            transition: all 0.3s;
        }

        tbody tr:hover {
            background: rgba(139, 92, 246, 0.05);
            transform: translateX(5px);
        }

        .camp-badge {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
            border-radius: 999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .performance-bar {
            width: 100px;
            height: 8px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 999px;
            overflow: hidden;
        }

        .performance-fill {
            height: 100%;
            background: linear-gradient(90deg, var(--success-green), var(--neon-cyan));
            border-radius: 999px;
            transition: width 1s ease;
        }

        /* Activity Heatmap */
        .heatmap-container {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 1rem;
            padding: 1.5rem;
            margin-bottom: 2rem;
        }

        .heatmap-grid {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 0.5rem;
            margin-top: 1rem;
        }

        .heatmap-cell {
            aspect-ratio: 1;
            background: rgba(139, 92, 246, 0.1);
            border-radius: 0.25rem;
            transition: all 0.3s;
            cursor: pointer;
            position: relative;
        }

        .heatmap-cell:hover {
            transform: scale(1.2);
            z-index: 10;
            box-shadow: 0 5px 15px rgba(139, 92, 246, 0.5);
        }

        .heatmap-cell.low {
            background: rgba(139, 92, 246, 0.2);
        }

        .heatmap-cell.medium {
            background: rgba(139, 92, 246, 0.5);
        }

        .heatmap-cell.high {
            background: var(--purple-accent);
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.7; }
        }

        /* Leaderboard */
        .leaderboard {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 1rem;
            padding: 1.5rem;
        }

        .leaderboard-item {
            display: flex;
            align-items: center;
            gap: 1rem;
            padding: 1rem;
            margin-bottom: 0.5rem;
            background: rgba(139, 92, 246, 0.05);
            border-radius: 0.5rem;
            transition: all 0.3s;
        }

        .leaderboard-item:hover {
            background: rgba(139, 92, 246, 0.1);
            transform: translateX(10px);
        }

        .rank-badge {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
        }

        .rank-1 {
            background: linear-gradient(135deg, var(--sunrise-gold), #ffed4e);
            color: var(--midnight-deep);
        }

        .rank-2 {
            background: linear-gradient(135deg, #c0c0c0, #e8e8e8);
            color: var(--midnight-deep);
        }

        .rank-3 {
            background: linear-gradient(135deg, #cd7f32, #f4a460);
            color: var(--midnight-deep);
        }

        .student-info {
            flex: 1;
        }

        .student-name {
            font-weight: 600;
            margin-bottom: 0.25rem;
        }

        .student-camp {
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        .student-score {
            font-size: 1.25rem;
            font-weight: bold;
            color: var(--neon-cyan);
        }

        /* Live Activity Feed */
        .activity-feed {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 1rem;
            padding: 1.5rem;
            max-height: 400px;
            overflow-y: auto;
        }

        .activity-item {
            display: flex;
            gap: 1rem;
            padding: 0.75rem;
            margin-bottom: 0.5rem;
            background: rgba(74, 158, 255, 0.05);
            border-radius: 0.5rem;
            border-left: 3px solid var(--neon-cyan);
            animation: slideIn 0.5s ease;
        }

        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateX(-20px);
            }
            to {
                opacity: 1;
                transform: translateX(0);
            }
        }

        .activity-icon {
            width: 32px;
            height: 32px;
            background: rgba(0, 255, 255, 0.2);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .activity-content {
            flex: 1;
        }

        .activity-text {
            font-size: 0.875rem;
            margin-bottom: 0.25rem;
        }

        .activity-time {
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        /* Export Button */
        .export-btn {
            position: fixed;
            bottom: 2rem;
            right: 2rem;
            padding: 1rem 2rem;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
            border: none;
            border-radius: 999px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
            box-shadow: 0 10px 30px rgba(139, 92, 246, 0.4);
            z-index: 100;
        }

        .export-btn:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 40px rgba(139, 92, 246, 0.6);
        }

        /* Responsive */
        @media (max-width: 1024px) {
            .charts-row {
                grid-template-columns: 1fr;
            }

            .stats-grid {
                grid-template-columns: 1fr;
            }
        }


/* From m2m-backend-lms.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --admin-dark: #0f1419;
            --admin-sidebar: #1a1f2e;
            --admin-card: #232937;
            --admin-hover: #2d3548;
            --success-green: #10b981;
            --warning-yellow: #f59e0b;
            --danger-red: #ef4444;
            --info-blue: #3b82f6;
            --purple-accent: #8b5cf6;
            --text-primary: #f3f4f6;
            --text-secondary: #9ca3af;
            --border-color: #374151;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background: var(--admin-dark);
            color: var(--text-primary);
            min-height: 100vh;
            display: flex;
        }

        /* Admin Sidebar */
        .admin-sidebar {
            width: 280px;
            background: var(--admin-sidebar);
            padding: 2rem 0;
            border-right: 1px solid var(--border-color);
            position: fixed;
            height: 100vh;
            overflow-y: auto;
        }

        .logo-admin {
            padding: 0 2rem 2rem;
            border-bottom: 1px solid var(--border-color);
            margin-bottom: 2rem;
        }

        .logo-admin h2 {
            color: var(--purple-accent);
            font-size: 1.5rem;
            margin-bottom: 0.5rem;
        }

        .logo-admin p {
            color: var(--text-secondary);
            font-size: 0.875rem;
        }

        .nav-section {
            margin-bottom: 2rem;
        }

        .nav-section-title {
            padding: 0 2rem;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--text-secondary);
            margin-bottom: 0.5rem;
        }

        .nav-item {
            display: flex;
            align-items: center;
            padding: 0.75rem 2rem;
            color: var(--text-primary);
            text-decoration: none;
            transition: all 0.2s;
            position: relative;
        }

        .nav-item:hover {
            background: var(--admin-hover);
        }

        .nav-item.active {
            background: var(--admin-hover);
            border-left: 3px solid var(--purple-accent);
        }

        .nav-item .icon {
            width: 20px;
            height: 20px;
            margin-right: 1rem;
            opacity: 0.7;
        }

        .nav-item .badge {
            margin-left: auto;
            background: var(--danger-red);
            color: white;
            font-size: 0.75rem;
            padding: 0.125rem 0.5rem;
            border-radius: 999px;
        }

        /* Main Content Area */
        .main-content {
            flex: 1;
            margin-left: 280px;
            padding: 2rem;
            max-width: 1600px;
        }

        /* Dashboard Header */
        .dashboard-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 2rem;
            padding-bottom: 2rem;
            border-bottom: 1px solid var(--border-color);
        }

        .header-title h1 {
            font-size: 2rem;
            margin-bottom: 0.5rem;
        }

        .header-title p {
            color: var(--text-secondary);
        }

        .header-actions {
            display: flex;
            gap: 1rem;
        }

        .btn {
            padding: 0.75rem 1.5rem;
            border: none;
            border-radius: 0.5rem;
            font-size: 0.875rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
        }

        .btn-primary {
            background: var(--purple-accent);
            color: white;
        }

        .btn-primary:hover {
            background: #7c3aed;
            transform: translateY(-1px);
        }

        .btn-secondary {
            background: var(--admin-card);
            color: var(--text-primary);
            border: 1px solid var(--border-color);
        }

        .btn-secondary:hover {
            background: var(--admin-hover);
        }

        /* Stats Grid */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 1.5rem;
            margin-bottom: 2rem;
        }

        .stat-card {
            background: var(--admin-card);
            padding: 1.5rem;
            border-radius: 0.75rem;
            border: 1px solid var(--border-color);
            transition: all 0.3s;
        }

        .stat-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
        }

        .stat-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .stat-icon {
            width: 40px;
            height: 40px;
            border-radius: 0.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
        }

        .stat-icon.success { background: rgba(16, 185, 129, 0.2); color: var(--success-green); }
        .stat-icon.warning { background: rgba(245, 158, 11, 0.2); color: var(--warning-yellow); }
        .stat-icon.info { background: rgba(59, 130, 246, 0.2); color: var(--info-blue); }
        .stat-icon.danger { background: rgba(239, 68, 68, 0.2); color: var(--danger-red); }

        .stat-value {
            font-size: 2rem;
            font-weight: bold;
            margin-bottom: 0.25rem;
        }

        .stat-label {
            color: var(--text-secondary);
            font-size: 0.875rem;
        }

        .stat-trend {
            display: inline-block;
            padding: 0.25rem 0.5rem;
            border-radius: 0.25rem;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .trend-up {
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        .trend-down {
            background: rgba(239, 68, 68, 0.2);
            color: var(--danger-red);
        }

        /* Settings Panel */
        .settings-panel {
            background: var(--admin-card);
            border-radius: 0.75rem;
            border: 1px solid var(--border-color);
            overflow: hidden;
        }

        .settings-tabs {
            display: flex;
            background: var(--admin-sidebar);
            border-bottom: 1px solid var(--border-color);
        }

        .settings-tab {
            padding: 1rem 2rem;
            background: none;
            border: none;
            color: var(--text-secondary);
            cursor: pointer;
            transition: all 0.2s;
            position: relative;
        }

        .settings-tab:hover {
            color: var(--text-primary);
        }

        .settings-tab.active {
            color: var(--purple-accent);
        }

        .settings-tab.active::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: var(--purple-accent);
        }

        .settings-content {
            padding: 2rem;
        }

        .form-group {
            margin-bottom: 1.5rem;
        }

        .form-group label {
            display: block;
            margin-bottom: 0.5rem;
            font-weight: 500;
            color: var(--text-primary);
        }

        .form-group input,
        .form-group select,
        .form-group textarea {
            width: 100%;
            padding: 0.75rem;
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            color: var(--text-primary);
            font-size: 0.875rem;
            transition: all 0.2s;
        }

        .form-group input:focus,
        .form-group select:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: var(--purple-accent);
            box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1);
        }

        .form-helper {
            margin-top: 0.25rem;
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        /* Toggle Switch */
        .toggle-switch {
            position: relative;
            display: inline-block;
            width: 48px;
            height: 24px;
        }

        .toggle-switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .toggle-slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: var(--border-color);
            transition: 0.3s;
            border-radius: 999px;
        }

        .toggle-slider:before {
            position: absolute;
            content: "";
            height: 18px;
            width: 18px;
            left: 3px;
            bottom: 3px;
            background: white;
            transition: 0.3s;
            border-radius: 50%;
        }

        input:checked + .toggle-slider {
            background: var(--purple-accent);
        }

        input:checked + .toggle-slider:before {
            transform: translateX(24px);
        }

        /* Security Settings */
        .security-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 2rem;
        }

        .security-item {
            padding: 1.5rem;
            background: var(--admin-dark);
            border-radius: 0.5rem;
            border: 1px solid var(--border-color);
        }

        .security-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .security-status {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.875rem;
        }

        .status-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
        }

        .status-dot.active {
            background: var(--success-green);
            animation: pulse 2s infinite;
        }

        .status-dot.inactive {
            background: var(--text-secondary);
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }

        /* LMS Camp Module */
        .camp-module {
            background: var(--admin-card);
            border-radius: 0.75rem;
            border: 1px solid var(--border-color);
            padding: 2rem;
            margin-top: 2rem;
        }

        .module-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 2rem;
            padding-bottom: 1rem;
            border-bottom: 1px solid var(--border-color);
        }

        .module-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 1.5rem;
        }

        .module-card {
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            padding: 1.5rem;
            transition: all 0.3s;
            cursor: pointer;
        }

        .module-card:hover {
            transform: translateY(-2px);
            border-color: var(--purple-accent);
            box-shadow: 0 10px 30px rgba(139, 92, 246, 0.2);
        }

        .module-icon {
            width: 48px;
            height: 48px;
            background: linear-gradient(135deg, var(--purple-accent), var(--info-blue));
            border-radius: 0.5rem;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            margin-bottom: 1rem;
        }

        .module-title {
            font-size: 1.125rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .module-description {
            color: var(--text-secondary);
            font-size: 0.875rem;
            margin-bottom: 1rem;
        }

        .module-stats {
            display: flex;
            gap: 1rem;
            font-size: 0.875rem;
            color: var(--text-secondary);
        }

        .module-stat {
            display: flex;
            align-items: center;
            gap: 0.25rem;
        }

        /* Student Progress Table */
        .data-table {
            width: 100%;
            background: var(--admin-card);
            border-radius: 0.75rem;
            overflow: hidden;
            border: 1px solid var(--border-color);
        }

        .table-header {
            padding: 1.5rem;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .search-box {
            position: relative;
            width: 300px;
        }

        .search-box input {
            width: 100%;
            padding: 0.5rem 1rem 0.5rem 2.5rem;
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.5rem;
            color: var(--text-primary);
            font-size: 0.875rem;
        }

        .search-icon {
            position: absolute;
            left: 0.75rem;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-secondary);
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        thead {
            background: var(--admin-sidebar);
        }

        th {
            padding: 1rem;
            text-align: left;
            font-weight: 600;
            color: var(--text-secondary);
            font-size: 0.875rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        td {
            padding: 1rem;
            border-top: 1px solid var(--border-color);
            font-size: 0.875rem;
        }

        tbody tr:hover {
            background: var(--admin-hover);
        }

        .user-cell {
            display: flex;
            align-items: center;
            gap: 1rem;
        }

        .user-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--purple-accent), var(--info-blue));
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
        }

        .progress-bar {
            width: 100px;
            height: 8px;
            background: var(--border-color);
            border-radius: 999px;
            overflow: hidden;
        }

        .progress-fill {
            height: 100%;
            background: linear-gradient(90deg, var(--purple-accent), var(--info-blue));
            border-radius: 999px;
            transition: width 0.3s;
        }

        .status-badge {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            border-radius: 999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

        .status-badge.active {
            background: rgba(16, 185, 129, 0.2);
            color: var(--success-green);
        }

        .status-badge.pending {
            background: rgba(245, 158, 11, 0.2);
            color: var(--warning-yellow);
        }

        .status-badge.inactive {
            background: rgba(156, 163, 175, 0.2);
            color: var(--text-secondary);
        }

        /* Video Submission Manager */
        .submission-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
            gap: 1.5rem;
            margin-top: 2rem;
        }

        .submission-card {
            background: var(--admin-dark);
            border: 1px solid var(--border-color);
            border-radius: 0.75rem;
            overflow: hidden;
            transition: all 0.3s;
        }

        .submission-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
        }

        .submission-preview {
            aspect-ratio: 16/9;
            background: linear-gradient(135deg, var(--admin-sidebar), var(--admin-hover));
            position: relative;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .play-button {
            width: 60px;
            height: 60px;
            background: rgba(139, 92, 246, 0.9);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 1.5rem;
            cursor: pointer;
            transition: all 0.3s;
        }

        .play-button:hover {
            transform: scale(1.1);
            background: var(--purple-accent);
        }

        .submission-info {
            padding: 1.5rem;
        }

        .submission-title {
            font-size: 1.125rem;
            font-weight: 600;
            margin-bottom: 0.5rem;
        }

        .submission-meta {
            display: flex;
            gap: 1rem;
            margin-bottom: 1rem;
            font-size: 0.875rem;
            color: var(--text-secondary);
        }

        .submission-actions {
            display: flex;
            gap: 0.5rem;
        }

        .btn-small {
            padding: 0.5rem 1rem;
            font-size: 0.75rem;
        }

        /* Responsive */
        @media (max-width: 1024px) {
            .admin-sidebar {
                transform: translateX(-100%);
                transition: transform 0.3s;
            }

            .admin-sidebar.mobile-open {
                transform: translateX(0);
            }

            .main-content {
                margin-left: 0;
            }

            .stats-grid {
                grid-template-columns: 1fr;
            }
        }

        /* Loading State */
        .skeleton {
            background: linear-gradient(90deg, var(--admin-card) 25%, var(--admin-hover) 50%, var(--admin-card) 75%);
            background-size: 200% 100%;
            animation: loading 1.5s infinite;
        }

        @keyframes loading {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }


/* From m2m-student-feedback-view.html */
* {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --midnight-deep: #0a0e27;
            --midnight-blue: #141936;
            --charcoal: #1a1a2e;
            --neon-cyan: #00ffff;
            --electric-magenta: #ff00ff;
            --sunrise-gold: #ffd700;
            --soft-white: #f0f0f0;
            --success-green: #10b981;
            --suggestion-purple: #8b5cf6;
            --highlight-yellow: #fbbf24;
            --sticky-pink: #f472b6;
            --feedback-blue: #3b82f6;
            --magic-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        }

        body {
            font-family: 'Segoe UI', system-ui, sans-serif;
            background: linear-gradient(135deg, var(--midnight-deep) 0%, var(--charcoal) 50%, var(--midnight-blue) 100%);
            color: var(--soft-white);
            min-height: 100vh;
            position: relative;
            overflow-x: hidden;
        }

        /* Magic Particles Background */
        .magic-particles {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
        }

        .magic-particle {
            position: absolute;
            width: 4px;
            height: 4px;
            background: var(--suggestion-purple);
            border-radius: 50%;
            animation: float-up 15s infinite;
            opacity: 0.6;
        }

        @keyframes float-up {
            0% {
                transform: translateY(100vh) translateX(0);
                opacity: 0;
            }
            10% {
                opacity: 0.6;
            }
            90% {
                opacity: 0.6;
            }
            100% {
                transform: translateY(-100vh) translateX(100px);
                opacity: 0;
            }
        }

        /* Welcome Hero Section */
        .hero-section {
            position: relative;
            z-index: 10;
            text-align: center;
            padding: 3rem 2rem;
            animation: fadeInDown 1s ease;
        }

        @keyframes fadeInDown {
            from {
                opacity: 0;
                transform: translateY(-30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .hero-title {
            font-size: 3rem;
            margin-bottom: 1rem;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta), var(--sunrise-gold));
            -webkit-background-clip: text;
            background-clip: text;
            -webkit-text-fill-color: transparent;
            animation: gradient-flow 3s ease infinite;
        }

        @keyframes gradient-flow {
            0%, 100% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
        }

        .hero-subtitle {
            font-size: 1.3rem;
            opacity: 0.9;
            margin-bottom: 2rem;
        }

        /* Merlin's Welcome Message */
        .merlin-welcome {
            max-width: 800px;
            margin: 0 auto 3rem;
            background: rgba(139, 92, 246, 0.1);
            border: 2px solid rgba(139, 92, 246, 0.3);
            border-radius: 1rem;
            padding: 2rem;
            position: relative;
            animation: fadeInUp 1s ease 0.5s both;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .merlin-avatar {
            position: absolute;
            top: -30px;
            left: 50%;
            transform: translateX(-50%);
            width: 60px;
            height: 60px;
            background: var(--magic-gradient);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 2rem;
            box-shadow: 0 0 30px rgba(139, 92, 246, 0.5);
        }

        .merlin-message {
            margin-top: 1rem;
            font-size: 1.1rem;
            line-height: 1.6;
            text-align: center;
        }

        /* Journey Progress Bar */
        .journey-progress {
            max-width: 1200px;
            margin: 0 auto 4rem;
            padding: 0 2rem;
            position: relative;
            z-index: 10;
        }

        .progress-bar-container {
            background: rgba(26, 26, 46, 0.6);
            border-radius: 2rem;
            padding: 0.5rem;
            position: relative;
            overflow: hidden;
        }

        .progress-bar-fill {
            height: 40px;
            background: linear-gradient(90deg, var(--neon-cyan), var(--electric-magenta));
            border-radius: 1.5rem;
            width: 60%;
            transition: width 1s ease;
            position: relative;
            overflow: hidden;
        }

        .progress-bar-fill::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            animation: shimmer 2s infinite;
        }

        @keyframes shimmer {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }

        .progress-label {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-weight: 600;
            font-size: 1.1rem;
            color: var(--midnight-deep);
            z-index: 2;
        }

        /* Main Content Container */
        .feedback-container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 2rem 6rem;
            position: relative;
            z-index: 10;
        }

        /* Scene Navigation Tabs */
        .scene-tabs {
            display: flex;
            gap: 0.5rem;
            margin-bottom: 2rem;
            overflow-x: auto;
            padding: 0.5rem;
            background: rgba(26, 26, 46, 0.4);
            border-radius: 1rem;
            backdrop-filter: blur(10px);
        }

        .scene-tab {
            padding: 0.75rem 1.5rem;
            background: rgba(74, 158, 255, 0.1);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            color: var(--soft-white);
            cursor: pointer;
            transition: all 0.3s;
            white-space: nowrap;
            position: relative;
        }

        .scene-tab:hover {
            background: rgba(74, 158, 255, 0.2);
            transform: translateY(-2px);
        }

        .scene-tab.active {
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
            font-weight: 600;
        }

        .scene-tab.has-feedback::after {
            content: '✨';
            position: absolute;
            top: -5px;
            right: -5px;
            background: var(--suggestion-purple);
            width: 20px;
            height: 20px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.75rem;
        }

        .scene-tab.completed::after {
            content: '✓';
            background: var(--success-green);
        }

        /* Scene Content Area */
        .scene-content {
            display: grid;
            grid-template-columns: 1fr 350px;
            gap: 2rem;
            animation: fadeIn 0.5s ease;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        /* Text Editor with Suggestions */
        .editor-section {
            background: rgba(26, 26, 46, 0.6);
            backdrop-filter: blur(10px);
            border-radius: 1rem;
            padding: 1.5rem;
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        .editor-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1rem;
        }

        .editor-title {
            font-size: 1.2rem;
            color: var(--neon-cyan);
        }

        .suggestion-counter {
            background: rgba(139, 92, 246, 0.2);
            padding: 0.25rem 0.75rem;
            border-radius: 999px;
            font-size: 0.875rem;
            color: var(--suggestion-purple);
        }

        /* Text Area with Overlay Suggestions */
        .text-editor-wrapper {
            position: relative;
            background: rgba(10, 14, 39, 0.8);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.5rem;
            padding: 1rem;
            min-height: 300px;
        }

        .text-display {
            line-height: 1.8;
            font-size: 1rem;
            position: relative;
        }

        /* Highlighted Suggestions */
        .suggestion-highlight {
            position: relative;
            display: inline;
            cursor: pointer;
            transition: all 0.3s;
        }

        .suggestion-highlight.type-improve {
            background: linear-gradient(to bottom, transparent 60%, rgba(139, 92, 246, 0.3) 60%);
            border-bottom: 2px dotted var(--suggestion-purple);
        }

        .suggestion-highlight.type-praise {
            background: linear-gradient(to bottom, transparent 60%, rgba(16, 185, 129, 0.2) 60%);
            border-bottom: 2px solid var(--success-green);
        }

        .suggestion-highlight.type-question {
            background: linear-gradient(to bottom, transparent 60%, rgba(251, 191, 36, 0.2) 60%);
            border-bottom: 2px wavy var(--highlight-yellow);
        }

        .suggestion-highlight:hover {
            background: rgba(139, 92, 246, 0.3);
            border-radius: 4px;
            padding: 2px 4px;
            margin: -2px -4px;
        }

        /* Suggestion Popup */
        .suggestion-popup {
            position: absolute;
            bottom: calc(100% + 10px);
            left: 50%;
            transform: translateX(-50%);
            background: var(--midnight-blue);
            border: 2px solid var(--suggestion-purple);
            border-radius: 0.75rem;
            padding: 1rem;
            min-width: 300px;
            max-width: 400px;
            opacity: 0;
            visibility: hidden;
            transition: all 0.3s;
            z-index: 100;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
        }

        .suggestion-highlight:hover .suggestion-popup {
            opacity: 1;
            visibility: visible;
        }

        .suggestion-popup::after {
            content: '';
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            border: 10px solid transparent;
            border-top-color: var(--suggestion-purple);
        }

        .popup-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0.75rem;
        }

        .popup-author {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.875rem;
            color: var(--suggestion-purple);
            font-weight: 600;
        }

        .popup-type {
            padding: 0.125rem 0.5rem;
            background: rgba(139, 92, 246, 0.2);
            border-radius: 999px;
            font-size: 0.75rem;
        }

        .popup-content {
            margin-bottom: 1rem;
        }

        .suggestion-text {
            font-size: 0.95rem;
            line-height: 1.5;
            margin-bottom: 0.5rem;
        }

        .suggested-replacement {
            background: rgba(0, 255, 255, 0.1);
            border-left: 3px solid var(--neon-cyan);
            padding: 0.5rem;
            border-radius: 0.25rem;
            font-style: italic;
            margin: 0.5rem 0;
        }

        .popup-actions {
            display: flex;
            gap: 0.5rem;
        }

        .popup-btn {
            flex: 1;
            padding: 0.5rem;
            border: none;
            border-radius: 0.25rem;
            font-size: 0.875rem;
            cursor: pointer;
            transition: all 0.3s;
            font-weight: 600;
        }

        .popup-btn.accept {
            background: var(--success-green);
            color: white;
        }

        .popup-btn.accept:hover {
            background: #0d9668;
            transform: translateY(-1px);
        }

        .popup-btn.modify {
            background: var(--suggestion-purple);
            color: white;
        }

        .popup-btn.reject {
            background: rgba(239, 68, 68, 0.2);
            color: #ef4444;
            border: 1px solid #ef4444;
        }

        /* Magic Assistant Sidebar */
        .magic-sidebar {
            position: sticky;
            top: 2rem;
            height: fit-content;
        }

        .magic-card {
            background: rgba(107, 70, 193, 0.1);
            border: 2px solid rgba(107, 70, 193, 0.3);
            border-radius: 1rem;
            padding: 1.5rem;
            margin-bottom: 1rem;
            animation: float 3s ease-in-out infinite;
        }

        @keyframes float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
        }

        .magic-card-title {
            font-size: 1.1rem;
            color: var(--sunrise-gold);
            margin-bottom: 1rem;
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        /* Sticky Notes from Merlin */
        .merlin-note {
            background: linear-gradient(135deg, var(--sticky-pink), var(--electric-magenta));
            padding: 1rem;
            border-radius: 0.5rem;
            margin-bottom: 1rem;
            transform: rotate(-2deg);
            transition: all 0.3s;
            cursor: default;
            position: relative;
            color: var(--midnight-deep);
            box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.3);
        }

        .merlin-note:nth-child(even) {
            transform: rotate(2deg);
            background: linear-gradient(135deg, var(--highlight-yellow), var(--sunrise-gold));
        }

        .merlin-note:hover {
            transform: rotate(0) scale(1.05);
            z-index: 10;
            box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.4);
        }

        .note-header {
            font-size: 0.875rem;
            font-weight: 700;
            margin-bottom: 0.5rem;
            opacity: 0.9;
        }

        .note-content {
            font-size: 0.875rem;
            line-height: 1.4;
        }

        /* Quick Stats */
        .quick-stats {
            background: rgba(74, 158, 255, 0.1);
            border: 1px solid rgba(74, 158, 255, 0.3);
            border-radius: 0.75rem;
            padding: 1rem;
            margin-bottom: 1rem;
        }

        .stat-row {
            display: flex;
            justify-content: space-between;
            margin-bottom: 0.5rem;
        }

        .stat-label {
            font-size: 0.875rem;
            opacity: 0.7;
        }

        .stat-value {
            font-weight: 600;
            color: var(--neon-cyan);
        }

        /* Magic Actions */
        .magic-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.5rem;
        }

        .magic-btn {
            padding: 0.75rem;
            background: rgba(139, 92, 246, 0.1);
            border: 1px solid rgba(139, 92, 246, 0.3);
            border-radius: 0.5rem;
            color: var(--soft-white);
            cursor: pointer;
            transition: all 0.3s;
            font-size: 0.875rem;
            text-align: center;
        }

        .magic-btn:hover {
            background: rgba(139, 92, 246, 0.2);
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(139, 92, 246, 0.3);
        }

        .magic-btn.primary {
            grid-column: 1 / -1;
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
            font-weight: 600;
        }

        /* Bottom Navigation */
        .bottom-nav {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: rgba(26, 26, 46, 0.98);
            backdrop-filter: blur(20px);
            padding: 1.5rem;
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            z-index: 100;
        }

        .nav-content {
            max-width: 1400px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .nav-info {
            display: flex;
            gap: 2rem;
        }

        .info-item {
            display: flex;
            align-items: center;
            gap: 0.5rem;
        }

        .info-label {
            font-size: 0.875rem;
            opacity: 0.7;
        }

        .info-value {
            font-size: 1.125rem;
            font-weight: 600;
            color: var(--neon-cyan);
        }

        .nav-actions {
            display: flex;
            gap: 1rem;
        }

        .nav-btn {
            padding: 0.75rem 1.5rem;
            border: none;
            border-radius: 0.5rem;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
        }

        .nav-btn.save {
            background: rgba(74, 158, 255, 0.2);
            color: var(--soft-white);
            border: 1px solid rgba(74, 158, 255, 0.5);
        }

        .nav-btn.save:hover {
            background: rgba(74, 158, 255, 0.3);
            transform: translateY(-2px);
        }

        .nav-btn.submit {
            background: linear-gradient(135deg, var(--electric-magenta), var(--neon-cyan));
            color: var(--midnight-deep);
            position: relative;
            overflow: hidden;
        }

        .nav-btn.submit::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.5s;
        }

        .nav-btn.submit:hover::before {
            left: 100%;
        }

        .nav-btn.submit:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 30px rgba(255, 0, 255, 0.4);
        }

        /* Celebration Modal */
        .celebration-modal {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(10, 14, 39, 0.95);
            display: none;
            align-items: center;
            justify-content: center;
            z-index: 1000;
        }

        .celebration-modal.show {
            display: flex;
            animation: fadeIn 0.5s ease;
        }

        .celebration-content {
            background: var(--magic-gradient);
            padding: 3rem;
            border-radius: 2rem;
            text-align: center;
            max-width: 500px;
            position: relative;
        }

        .celebration-emoji {
            font-size: 4rem;
            margin-bottom: 1rem;
            animation: bounce 1s infinite;
        }

        @keyframes bounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-20px); }
        }

        .celebration-title {
            font-size: 2rem;
            color: white;
            margin-bottom: 1rem;
        }

        .celebration-message {
            color: white;
            opacity: 0.9;
            margin-bottom: 2rem;
        }

        .celebration-btn {
            padding: 1rem 2rem;
            background: white;
            color: var(--midnight-deep);
            border: none;
            border-radius: 0.5rem;
            font-size: 1rem;
            font-weight: 600;
            cursor: pointer;
        }

        /* Responsive Design */
        @media (max-width: 1024px) {
            .scene-content {
                grid-template-columns: 1fr;
            }

            .magic-sidebar {
                position: relative;
                top: 0;
            }

            .hero-title {
                font-size: 2rem;
            }
        }

        /* Custom Scrollbar */
        ::-webkit-scrollbar {
            width: 10px;
        }

        ::-webkit-scrollbar-track {
            background: rgba(26, 26, 46, 0.3);
        }

        ::-webkit-scrollbar-thumb {
            background: var(--suggestion-purple);
            border-radius: 5px;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: var(--electric-magenta);
        }


/* === M2M Glass Polish Layer === */

/* === M2M Design Tokens === */
:root{
  --m2m-bg: #0b0f1a;
  --m2m-surface: #111827;
  --m2m-accent: #7dd3fc;
  --m2m-accent-2: #a78bfa;
  --m2m-text: #e5e7eb;
  --m2m-muted: #94a3b8;
  --m2m-card: rgba(255,255,255,0.06);
  --m2m-border: rgba(255,255,255,0.12);
  --m2m-glow: 0 8px 30px rgba(125, 211, 252, 0.25);
}

body{
  background: radial-gradient(1200px 800px at 10% 10%, rgba(125, 211, 252, 0.12), transparent 40%),
              radial-gradient(1000px 700px at 90% 20%, rgba(167, 139, 250, 0.10), transparent 40%),
              var(--m2m-bg);
  color: var(--m2m-text);
}

.m2m-header, .m2m-footer{
  background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
  border-bottom: 1px solid var(--m2m-border);
}

.m2m-main{ max-width: 1200px; margin: 0 auto; }

/* === Glass Cards === */
.m2m-card{
  background: var(--m2m-card);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--m2m-border);
  border-radius: 16px;
  padding: 20px;
  box-shadow: var(--m2m-glow);
}

/* Buttons */
button, .button, input[type="submit"]{
  border: 1px solid var(--m2m-border);
  background: linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.02));
  color: var(--m2m-text);
  padding: 10px 14px;
  border-radius: 12px;
  cursor: pointer;
  transition: transform .06s ease, box-shadow .2s ease;
}
button:hover, .button:hover, input[type="submit"]:hover{
  box-shadow: 0 6px 18px rgba(167,139,250,0.25);
}
button:active, .button:active{ transform: translateY(1px); }

/* Inputs */
input[type="text"], input[type="email"], input[type="number"], textarea{
  width: 100%;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--m2m-border);
  color: var(--m2m-text);
  padding: 10px 12px;
  border-radius: 12px;
}

/* Tabs / Nav */
.m2m-nav a{
  color: var(--m2m-text);
  padding: 8px 10px;
  display: inline-block;
}
.m2m-nav a:hover{ color: var(--m2m-accent); }

/* Feedback tags */
.m2m-feedback .m2m-add{ text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 2px; }
.m2m-feedback .m2m-del{ text-decoration: line-through; opacity: 0.6; }
.m2m-feedback .m2m-note{ border-left: 4px solid var(--m2m-accent-2); padding-left: 10px; background: rgba(167,139,250,0.08); border-radius: 6px; }

/* Tables */
table.widefat.striped { background: rgba(255,255,255,0.03); color: var(--m2m-text); }
table.widefat.striped th, table.widefat.striped td { border-color: var(--m2m-border); }


/* === THEME MODES === */
:root { color-scheme: light dark; }

body.theme-dark{
  --m2m-bg: #0b0f1a;
  --m2m-surface: #111827;
  --m2m-accent: #7dd3fc;
  --m2m-accent-2: #a78bfa;
  --m2m-text: #e5e7eb;
  --m2m-muted: #94a3b8;
  --m2m-card: rgba(255,255,255,0.06);
  --m2m-border: rgba(255,255,255,0.12);
  --m2m-glow: 0 8px 30px rgba(125,211,252,0.25);
}

body.theme-light{
  --m2m-bg: #f7f9fc;
  --m2m-surface: #ffffff;
  --m2m-accent: #2563eb;
  --m2m-accent-2: #8b5cf6;
  --m2m-text: #0f172a;
  --m2m-muted: #475569;
  --m2m-card: rgba(255,255,255,0.85);
  --m2m-border: rgba(2,6,23,0.10);
  --m2m-glow: 0 8px 30px rgba(37,99,235,0.18);
}

body{
  background: radial-gradient(1200px 800px at 10% 10%, color-mix(in srgb, var(--m2m-accent) 12%, transparent), transparent 40%),
              radial-gradient(1000px 700px at 90% 20%, color-mix(in srgb, var(--m2m-accent-2) 10%, transparent), transparent 40%),
              var(--m2m-bg);
  color: var(--m2m-text);
  transition: background .3s ease, color .2s ease;
}

.m2m-header, .m2m-footer{
  background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));
  border-bottom: 1px solid var(--m2m-border);
}

a { color: var(--m2m-accent); }

/* Toggle button */
.m2m-theme-toggle{
  display:inline-flex; align-items:center; gap:6px;
  padding: 6px 10px; border-radius: 999px; border: 1px solid var(--m2m-border);
  background: linear-gradient(180deg, rgba(255,255,255,0.10), rgba(255,255,255,0.03));
  cursor: pointer; user-select: none; font-size: 14px;
}
.m2m-theme-toggle .sun{ display:none; }
body.theme-light .m2m-theme-toggle .sun{ display:inline; }
body.theme-light .m2m-theme-toggle .moon{ display:none; }


/* === Brand Font Pairing === */
body{
  font-family: 'Inter', system-ui, sans-serif;
}
h1, h2, h3, h4, h5, h6, .site-title, .m2m-nav a{
  font-family: 'Poppins', system-ui, sans-serif;
}


/* === Sparkle Gradient Hover === */
@keyframes m2m-gradient-move {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

button, .button, input[type="submit"], .m2m-nav a {
  background-image: linear-gradient(270deg, var(--m2m-accent), var(--m2m-accent-2), var(--m2m-accent));
  background-size: 200% 200%;
  transition: background 0.3s ease, color 0.3s ease, transform 0.06s ease;
}

button:hover, .button:hover, input[type="submit"]:hover, .m2m-nav a:hover {
  animation: m2m-gradient-move 4s ease infinite;
  color: white;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(167,139,250,0.35);
}



/* === Animated Hover Gradients & Sparkle === */
@keyframes m2m-sheen {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
@keyframes m2m-underline {
  0% { transform: scaleX(0); opacity: .6; }
  100% { transform: scaleX(1); opacity: 1; }
}

/* Buttons: animated gradient on hover */
button, .button, input[type="submit"]{
  position: relative;
  background-image: linear-gradient(90deg, color-mix(in srgb, var(--m2m-accent) 60%, transparent), color-mix(in srgb, var(--m2m-accent-2) 50%, transparent), color-mix(in srgb, var(--m2m-accent) 60%, transparent));
  background-size: 200% 100%;
}
button:hover, .button:hover, input[type="submit"]:hover{
  animation: m2m-sheen 1.6s linear infinite;
}

/* Nav links: subtle animated underline */
.m2m-nav a{
  position: relative;
  text-decoration: none;
}
.m2m-nav a::after{
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  height: 2px;
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  background: linear-gradient(90deg, var(--m2m-accent), var(--m2m-accent-2));
  transition: transform .25s ease;
}
.m2m-nav a:hover::after{
  transform: scaleX(1);
  animation: m2m-underline .25s ease forwards;
}

/* Glass card hover glow */
.m2m-card{
  transition: box-shadow .25s ease, transform .12s ease;
}
.m2m-card:hover{
  box-shadow: 0 12px 36px color-mix(in srgb, var(--m2m-accent) 28%, transparent);
  transform: translateY(-1px);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  * { animation: none !important; transition: none !important; }
}

/* FAQ styling */
.m2m-faq details summary{cursor:pointer}


/* === Responsive Layout Enhancements === */
.m2m-main{max-width:1200px;margin:0 auto;padding:16px}
.m2m-header{position:sticky;top:0;z-index:100;background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00));backdrop-filter:blur(6px)}
.m2m-nav{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.m2m-brand img{max-height:40px;height:auto}

#m2m-nav-toggle{display:none;border:1px solid var(--m2m-border);background:transparent;border-radius:10px;padding:6px 10px}
@media (max-width: 860px){
  .m2m-nav{display:none;flex-direction:column;align-items:flex-start;padding:12px 0}
  .m2m-nav.open{display:flex}
  #m2m-nav-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
  .m2m-theme-toggle{margin-top:8px}
}
/* Cards & grids */
@media (max-width: 720px){
  .m2m-card{padding:16px}
  .m2m-card .grid{display:grid;grid-template-columns:1fr;gap:12px}
}


/* === Mobile Reflow for Student/Mentor === */
.m2m-tabs { display:flex; gap:8px; border-bottom:1px solid var(--m2m-border); margin-bottom:12px; flex-wrap:wrap; }
.m2m-tab { padding:8px 12px; border:1px solid var(--m2m-border); border-bottom:none; border-top-left-radius:10px; border-top-right-radius:10px; cursor:pointer; }
.m2m-tab.active { background: rgba(255,255,255,0.07); }
.m2m-panel { display:none; }
.m2m-panel.active { display:block; }

@media (max-width: 860px){
  .m2m-portal, .m2m-mentor, .m2m-feedback {
    display:block;
  }
  .m2m-portal .grid, .m2m-mentor .grid, .m2m-feedback .grid {
    display:block !important;
  }
  .m2m-step { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--m2m-border); border-radius:12px; margin-bottom:10px; }
  .m2m-step .badge { min-width:28px; height:28px; display:inline-grid; place-items:center; border-radius:999px; border:1px solid var(--m2m-border); }
}


/* === Mobile UX Overhaul v2 === */
:root{
  --m2m-font-s: clamp(14px, 1.6vw, 16px);
  --m2m-font-m: clamp(16px, 2.2vw, 18px);
  --m2m-font-l: clamp(18px, 3.2vw, 22px);
  --m2m-gap:  clamp(10px, 2.5vw, 16px);
  --m2m-pad:  clamp(12px, 3vw, 20px);
}
body{ font-size: var(--m2m-font-m); }
h1{ font-size: clamp(24px, 5.5vw, 40px); line-height:1.2 }
h2{ font-size: clamp(20px, 4.5vw, 32px); line-height:1.25 }
h3{ font-size: clamp(18px, 3.8vw, 26px); line-height:1.3 }
p,li{ font-size: var(--m2m-font-m); }

/* Tap targets */
a.button, button, .button,
input[type="submit"], .nav-link {
  min-height:44px; min-width:44px;
  padding: 12px 16px; border-radius:14px;
}

/* Drawer navigation for small screens */
@media (max-width: 860px){
  .m2m-header{ backdrop-filter:saturate(120%) blur(8px); }
  #m2m-nav{ position: fixed; top: 60px; right: 0; bottom: 0; width: min(88vw, 360px);
            background: rgba(10,14,25,0.96); border-left:1px solid var(--m2m-border);
            transform: translateX(100%); transition: transform .25s ease; padding:16px; overflow:auto; }
  #m2m-nav.open{ transform: translateX(0); }
  #m2m-nav-toggle{ position: relative; z-index: 200; }
  body.nav-open{ overflow:hidden; }
}

/* Forms */
input[type="text"], input[type="email"], input[type="number"], input[type="tel"], textarea, select{
  font-size: var(--m2m-font-m); padding: 12px 14px; border-radius: 12px;
}
label{ display:block; margin-bottom:6px; font-size: var(--m2m-font-s); opacity:.9 }

/* Tables → cards on mobile */
@media (max-width: 720px){
  table.m2m-table{ display:block; width:100%; }
  table.m2m-table thead{ display:none; }
  table.m2m-table tbody{ display:block; }
  table.m2m-table tr{ display:block; border:1px solid var(--m2m-border); border-radius:12px; margin-bottom:12px; padding:10px }
  table.m2m-table td{ display:flex; justify-content:space-between; gap:10px; padding:6px 0; }
  table.m2m-table td::before{ content: attr(data-label); font-weight:600; }
}

/* Cards/grids */
.m2m-card{ padding: var(--m2m-pad); border-radius: 20px; }
.grid{ gap: var(--m2m-gap); }

/* Bottom bar safe area (iOS notch) */
.m2m-mobile-bar{ padding-bottom: calc(8px + env(safe-area-inset-bottom, 0)); }

/* Reduce motion for touch devices or prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; }
}
.is-touch *{ transition: transform .06s ease, box-shadow .2s ease !important; }
