:root {
            /* Renk Paleti */
            --krem: #FDFBF7;
            --acik-gri: #F0F2F5;
            --gri-mavi: #A8B5CC;
            --mor: #B2A4C2;
            --koyu-mor: #857399;
            --turuncu: #F2BA90;
            --lacivert: #2C3E50;
            --beyaz: #FFFFFF;
            
            /* Geri Bildirim Renkleri */
            --dogru-yesil: #E8F5E9;
            --dogru-yesil-border: #4CAF50;
            --yanlis-kirmizi: #FFEBEE;
            --yanlis-kirmizi-border: #F44336;

            --golge: rgba(0, 0, 0, 0.08);
            --koyu-golge: rgba(0, 0, 0, 0.15);
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            -webkit-tap-highlight-color: transparent;
        }

        body {
            font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            background-color: var(--krem);
            color: var(--lacivert);
            line-height: 1.6;
            touch-action: manipulation; 
        }

        /* 
         * OYUN EKRANI İÇİN ÖZEL KAYDIRMASIZ YAPI (NO SCROLL) 
         */
        body.game-active {
            overflow: hidden;
            height: 100dvh; /* Modern tarayıcılar için Dinamik Viewport */
            display: flex;
            flex-direction: column;
        }

        @supports not (height: 100dvh) {
            body.game-active {
                height: 100vh; /* Güvenli Fallback */
            }
        }

        body.game-active .container {
            flex: 1;
            min-height: 0;
            display: flex;
            flex-direction: column;
            width: 100%;
            padding-bottom: 10px; /* Alttan fazla boşluğu al */
        }

        /* Erişilebilirlik - Focus Stilleri */
        a:focus-visible, button:focus-visible {
            outline: 4px dashed var(--turuncu);
            outline-offset: 4px;
        }

        @media (prefers-reduced-motion: reduce) {
            * {
                transition: none !important;
                animation: none !important;
            }
        }

        @keyframes shake {
            0%, 100% { transform: translateX(0); }
            20% { transform: translateX(-5px); }
            40% { transform: translateX(5px); }
            60% { transform: translateX(-5px); }
            80% { transform: translateX(5px); }
        }

        /* Üst Menü / Geri Bağlantısı */
        .top-bar {
            padding: 15px 20px;
            background-color: var(--beyaz);
            box-shadow: 0 2px 10px var(--golge);
            position: sticky;
            top: 0;
            z-index: 50;
            flex-shrink: 0; /* Küçülmesini engelle */
        }

        .back-link {
            text-decoration: none;
            color: var(--koyu-mor);
            font-weight: 600;
            font-size: 1.1rem;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .back-link:hover {
            color: var(--turuncu);
        }

        .container {
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        /* BAŞLANGIÇ EKRANI */
        #start-screen {
            text-align: center;
            margin-top: 2vh;
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 100%;
        }

        .game-title {
            font-size: clamp(2.2rem, 6vw, 3.5rem);
            color: var(--lacivert);
            margin-bottom: 15px;
            line-height: 1.2;
        }

        .game-desc {
            font-size: clamp(1.1rem, 3vw, 1.4rem);
            color: var(--koyu-mor);
            margin-bottom: 25px;
            max-width: 500px;
        }

        .selection-area {
            background-color: var(--beyaz);
            border: 3px solid var(--gri-mavi);
            border-radius: 25px;
            padding: 25px;
            width: 100%;
            max-width: 550px;
            margin-bottom: 25px;
            box-shadow: 0 6px 15px var(--golge);
            text-align: left;
        }

        .selection-title {
            font-size: 1.2rem;
            color: var(--lacivert);
            margin-bottom: 12px;
            font-weight: bold;
            text-align: center;
        }

        .selector-buttons {
            display: flex;
            gap: 15px;
            justify-content: center;
            flex-wrap: wrap;
            margin-bottom: 10px;
        }

        .btn-select {
            background-color: var(--acik-gri);
            border: 3px solid transparent;
            color: var(--lacivert);
            padding: 12px 15px;
            font-size: 1.1rem;
            font-weight: bold;
            border-radius: 15px;
            cursor: pointer;
            transition: all 0.2s ease;
            flex: 1 1 140px;
            position: relative;
        }

        .btn-select:hover {
            background-color: #E2E6EA;
        }

        .btn-select.active {
            background-color: var(--dogru-yesil);
            border-color: var(--dogru-yesil-border);
            color: var(--dogru-yesil-border);
        }

        .btn-select.active::after {
            content: "✓";
            position: absolute;
            top: -10px;
            right: -10px;
            background: var(--dogru-yesil-border);
            color: white;
            border-radius: 50%;
            width: 24px;
            height: 24px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
            box-shadow: 0 2px 5px var(--golge);
        }

        .btn-start {
            background-color: var(--mor);
            color: var(--beyaz);
            border: none;
            padding: 18px 50px;
            font-size: 1.4rem;
            font-weight: bold;
            border-radius: 50px;
            cursor: pointer;
            box-shadow: 0 6px 20px var(--golge);
            transition: transform 0.2s, background-color 0.2s, opacity 0.2s;
        }

        .btn-start:hover:not(:disabled) {
            background-color: var(--koyu-mor);
            transform: scale(1.05);
        }

        .btn-start:disabled {
            background-color: var(--gri-mavi);
            opacity: 0.6;
            cursor: not-allowed;
            box-shadow: none;
        }

        .warning-msg {
            color: var(--yanlis-kirmizi-border);
            font-weight: bold;
            margin-top: 15px;
            min-height: 24px;
            text-align: center;
        }

        /* OYUN EKRANI (GAME STAGE) */
        #game-stage {
            display: none;
            width: 100%;
            flex: 1; 
            min-height: 0;
            flex-direction: column;
            justify-content: space-between;
            align-items: center;
        }

        .game-header {
            width: 100%;
            max-width: 600px;
            margin-bottom: 10px; /* Kompakt */
            flex-shrink: 0;
        }

        .progress-container {
            width: 100%;
            height: 10px;
            background-color: var(--gri-mavi);
            border-radius: 10px;
            overflow: hidden;
            margin-bottom: 8px;
        }

        .progress-bar {
            height: 100%;
            background-color: var(--turuncu);
            width: 0%;
            transition: width 0.4s ease;
        }

        .game-stats {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-weight: bold;
            color: var(--lacivert);
            font-size: 0.95rem;
        }

        .neutral-badge {
            background-color: var(--acik-gri);
            padding: 4px 12px;
            border-radius: 15px;
            font-size: 0.85rem;
            color: var(--koyu-mor);
        }

        /* Hedef Nesne Alanı */
        .target-section {
            background-color: var(--beyaz);
            border: 3px solid var(--gri-mavi);
            border-radius: 20px;
            padding: 10px 15px;
            width: 100%;
            max-width: 450px;
            text-align: center;
            position: relative;
            box-shadow: 0 4px 10px var(--golge);
            margin-bottom: 10px; /* Kompakt */
            flex: 0 1 auto;
            min-height: 0;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        .target-badge {
            position: absolute;
            top: -12px;
            background-color: var(--turuncu);
            color: var(--beyaz);
            padding: 3px 15px;
            border-radius: 20px;
            font-weight: bold;
            font-size: 0.8rem;
            letter-spacing: 1px;
            box-shadow: 0 4px 10px rgba(242, 186, 144, 0.4);
        }

        .target-image-wrapper {
            height: auto;
            max-height: 15vh; /* Dinamik küçülme */
            min-height: 60px;
            margin: 5px 0;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 100%;
        }

        .target-image-wrapper img {
            max-width: 100%;
            max-height: 100%;
            object-fit: contain;
        }

        .target-name {
            font-size: 1.2rem;
            font-weight: bold;
            color: var(--lacivert);
            margin-bottom: 2px;
            text-transform: uppercase;
        }

        .instruction {
            font-size: 1rem;
            color: var(--koyu-mor);
            font-weight: 600;
        }

        /* Gölge Seçenekleri Alanı */
        .options-container {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            justify-content: center;
            align-content: center;
            width: 100%;
            max-width: 600px;
            flex: 1 1 auto;
            min-height: 0;
            margin-bottom: 10px;
        }

        .option-btn {
            background-color: var(--beyaz);
            border: 3px solid var(--acik-gri);
            border-radius: 15px;
            padding: 10px;
            cursor: pointer;
            transition: transform 0.2s, border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
            display: flex;
            justify-content: center;
            align-items: center;
            box-shadow: 0 4px 8px var(--golge);
            flex: 1 1 calc(50% - 12px);
            max-width: calc(50% - 10px);
            aspect-ratio: 1 / 1;
            max-height: 22vh; /* Kısa ekranda butonlar taşmasın */
            position: relative;
        }

        .option-btn:hover:not(.locked) {
            transform: translateY(-3px);
            border-color: var(--gri-mavi);
            box-shadow: 0 6px 12px var(--koyu-golge);
        }

        .option-btn:active:not(.locked) {
            transform: scale(0.96);
        }

        .option-btn img {
            width: 80%;
            height: 80%;
            object-fit: contain;
            pointer-events: none; 
        }

        /* 2 Seçenek Özel Boyutu */
        .options-container[data-count="2"] .option-btn {
            max-width: min(220px, 45vw); 
        }

        /* Geri Bildirim ve Sonraki Buton Alanı */
        .feedback-area {
            flex-shrink: 0;
            min-height: 85px; /* Layout Shift engellemek için yer ayrıldı */
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-start;
            gap: 8px;
            margin-bottom: 0;
        }

        .feedback-msg {
            font-size: 1.1rem;
            font-weight: bold;
            color: var(--lacivert);
            min-height: 26px; /* Boşken bile yer tutar */
        }

        .btn-next {
            visibility: hidden; /* Görünmez ama yer tutar -> Layout Shift'i engeller */
            opacity: 0;
            display: inline-block;
            background-color: var(--turuncu);
            color: var(--beyaz);
            border: none;
            padding: 12px 40px;
            font-size: 1.1rem;
            font-weight: bold;
            border-radius: 30px;
            cursor: pointer;
            box-shadow: 0 4px 10px var(--golge);
            transition: transform 0.2s, background-color 0.2s, opacity 0.2s;
        }

        .btn-next.visible {
            visibility: visible;
            opacity: 1;
        }

        .btn-next:hover {
            transform: scale(1.05);
            background-color: #e5a475;
        }

        /* İşaret İkonları (✓ ve ✕) */
        .icon-overlay {
            position: absolute;
            top: 6px;
            right: 10px;
            font-size: 1.5rem;
            font-weight: bold;
            display: none;
        }

        .option-btn.correct {
            background-color: var(--dogru-yesil);
            border-color: var(--dogru-yesil-border);
            transform: scale(1.03);
            box-shadow: 0 6px 12px rgba(76, 175, 80, 0.2);
            z-index: 2;
        }
        
        .option-btn.correct .icon-overlay {
            display: block;
            color: var(--dogru-yesil-border);
        }

        .option-btn.wrong {
            background-color: var(--yanlis-kirmizi);
            border-color: var(--yanlis-kirmizi-border);
            animation: shake 0.4s ease-in-out;
        }

        .option-btn.wrong .icon-overlay {
            display: block;
            color: var(--yanlis-kirmizi-border);
        }

        .locked {
            cursor: default !important;
            transform: none !important;
        }

        /* SONUÇ EKRANI */
        #end-screen {
            display: none;
            text-align: center;
            flex-direction: column;
            align-items: center;
            width: 100%;
            margin-top: 5vh;
            padding-bottom: 50px;
        }

        .end-card {
            background-color: var(--beyaz);
            border: 3px solid var(--dogru-yesil-border);
            border-radius: 25px;
            padding: 40px 20px;
            width: 100%;
            max-width: 500px;
            box-shadow: 0 8px 25px var(--golge);
            margin-bottom: 30px;
        }

        .end-title {
            font-size: clamp(2rem, 5vw, 3rem);
            color: var(--dogru-yesil-border);
            margin-bottom: 10px;
        }

        .end-desc {
            font-size: 1.2rem;
            color: var(--lacivert);
            margin-bottom: 5px;
            font-weight: bold;
        }
        
        .end-sub {
            font-size: 1.1rem;
            color: var(--koyu-mor);
        }

        .end-buttons {
            display: flex;
            flex-direction: column;
            gap: 15px;
            width: 100%;
            max-width: 400px;
        }

        .btn-restart {
            background-color: var(--turuncu);
            color: var(--beyaz);
            border: none;
            padding: 15px 30px;
            font-size: 1.2rem;
            font-weight: bold;
            border-radius: 50px;
            cursor: pointer;
            box-shadow: 0 4px 15px var(--golge);
            transition: transform 0.2s;
        }

        .btn-restart:hover { transform: scale(1.05); }

        .btn-change-opt {
            background-color: var(--acik-gri);
            color: var(--lacivert);
            border: 2px solid var(--gri-mavi);
            padding: 15px 30px;
            font-size: 1.1rem;
            font-weight: bold;
            border-radius: 50px;
            cursor: pointer;
            transition: background-color 0.2s;
        }

        .btn-change-opt:hover { background-color: #E2E6EA; }
        
        .btn-teacher {
            background-color: var(--mor);
            color: var(--beyaz);
            border: none;
            padding: 15px 30px;
            font-size: 1.1rem;
            font-weight: bold;
            border-radius: 50px;
            cursor: pointer;
            box-shadow: 0 4px 15px var(--golge);
            transition: transform 0.2s;
        }

        .btn-teacher:hover { transform: scale(1.05); background-color: var(--koyu-mor); }

        .link-home {
            margin-top: 15px;
            color: var(--koyu-mor);
            text-decoration: underline;
            font-weight: 600;
        }
        .link-home:hover { color: var(--turuncu); }

        /* ÖĞRETMEN SONUÇ PANELİ (MODAL) */
        #teacher-modal {
            display: none;
            position: fixed;
            top: 0; left: 0; width: 100%; height: 100%;
            background-color: rgba(44, 62, 80, 0.95);
            z-index: 1000;
            overflow-y: auto;
            padding: 20px;
            align-items: flex-start;
            justify-content: center;
        }

        .teacher-panel-content {
            background-color: var(--krem);
            width: 100%;
            max-width: 800px;
            border-radius: 20px;
            padding: 30px;
            margin: 20px 0;
            box-shadow: 0 10px 40px rgba(0,0,0,0.3);
            position: relative;
        }

        .btn-close-modal {
            position: absolute;
            top: 20px; right: 20px;
            background-color: var(--yanlis-kirmizi);
            color: var(--yanlis-kirmizi-border);
            border: 2px solid var(--yanlis-kirmizi-border);
            padding: 8px 15px;
            font-weight: bold;
            border-radius: 20px;
            cursor: pointer;
        }
        .btn-close-modal:hover { background-color: var(--yanlis-kirmizi-border); color: var(--beyaz); }

        .teacher-header {
            text-align: center;
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 2px dashed var(--gri-mavi);
        }
        
        .teacher-header h2 { color: var(--lacivert); font-size: 2rem; margin-bottom: 10px; }
        .teacher-mode-badge {
            display: inline-block;
            background-color: var(--turuncu);
            color: var(--beyaz);
            padding: 8px 20px;
            border-radius: 20px;
            font-weight: bold;
            font-size: 1.1rem;
        }

        /* Öğretmen Özet Kartları */
        .teacher-summary-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin-bottom: 30px;
        }

        .summary-card {
            background-color: var(--beyaz);
            border: 2px solid var(--gri-mavi);
            border-radius: 15px;
            padding: 20px;
            text-align: center;
        }
        
        .summary-card h4 { color: var(--koyu-mor); font-size: 1.1rem; margin-bottom: 10px; }
        .summary-card .stat-value { font-size: 2.2rem; font-weight: bold; color: var(--lacivert); }

        /* Öğretmen Detay Bölümleri */
        .teacher-section {
            background-color: var(--beyaz);
            border-radius: 15px;
            padding: 25px;
            margin-bottom: 25px;
            box-shadow: 0 4px 10px var(--golge);
        }

        .teacher-section h3 {
            color: var(--mor);
            font-size: 1.3rem;
            margin-bottom: 15px;
            border-bottom: 1px solid var(--acik-gri);
            padding-bottom: 10px;
        }

        .teacher-list-text {
            color: var(--lacivert);
            font-size: 1.1rem;
            line-height: 1.8;
            word-wrap: break-word; 
        }

        /* Soru Bazlı Kartlar */
        .question-cards-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 15px;
        }

        .q-card {
            background-color: var(--acik-gri);
            border-radius: 10px;
            padding: 15px;
            border-left: 5px solid var(--gri-mavi);
        }
        .q-card.q-success { border-left-color: var(--dogru-yesil-border); }
        .q-card.q-retry { border-left-color: var(--yanlis-kirmizi-border); }
        
        .q-card-header { display: flex; justify-content: space-between; font-weight: bold; margin-bottom: 10px; color: var(--lacivert); }
        .q-card-row { margin-bottom: 5px; font-size: 0.95rem; color: var(--koyu-gri); word-wrap: break-word; }
        .q-card-row strong { color: var(--lacivert); }

        /* Responsive Özel Ayarlar (Kısa ekranlar için ek sıkıştırma) */
        @media (min-width: 600px) {
            .options-container[data-count="3"] .option-btn {
                flex: 1 1 calc(33.333% - 15px);
                max-width: calc(33.333% - 15px);
            }
            .options-container[data-count="4"] .option-btn {
                flex: 1 1 calc(25% - 15px);
                max-width: calc(50% - 15px); 
            }
        }
        
        @media (max-height: 700px) {
            .game-header { margin-bottom: 5px; }
            .target-section { padding: 8px 15px; margin-bottom: 10px; border-width: 2px;}
            .target-image-wrapper { max-height: 12vh; min-height: 50px; }
            .target-name { font-size: 1.1rem; margin-bottom: 1px; }
            .instruction { font-size: 0.95rem; }
            .option-btn { padding: 8px; max-height: 20vh; }
            .feedback-area { min-height: 75px; gap: 5px; }
            .feedback-msg { font-size: 1rem; min-height: 22px; }
            .btn-next { padding: 10px 30px; font-size: 1rem; }
        }