/* --- Base Styles --- */
.ielts-final-wrapper{font-family:'Inter',sans-serif;user-select:none;padding:10px;background-color:transparent;border:1px solid #e2e8f0;border-radius:8px;max-width:100%;box-sizing:border-box;display:flex;flex-direction:column;position:relative}
.ielts-widget-header{text-align:center;margin-bottom:20px;flex-shrink:0}
.ielts-widget-title{font-size:28px;font-weight:700;color:#1a202c;margin:0;padding:0 15px}
.ielts-start-button{background:#007BFF;color:#fff;border:none;padding:12px 30px;font-size:18px;font-weight:600;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block;transition:background-color .2s;margin-top:15px}
.ielts-start-button:hover{background:#0056b3}
.ielts-main-interface-container{display:none;flex-direction:column;padding-bottom:60px;flex-grow:1;min-height:400px;overflow:hidden}
.ielts-final-wrapper:not(.test-started) .ielts-pagination-footer{display:none !important}
.ielts-final-wrapper.test-started .ielts-widget-header{display:none}
.ielts-final-wrapper.test-started .ielts-main-interface-container{display:flex;max-height:80vh}
.ielts-final-wrapper.test-started .ielts-pagination-footer{display:flex}
/* Results */
.ielts-results-container{display:none;text-align:center;padding:20px;flex-shrink:0}
.ielts-final-wrapper.test-completed .ielts-main-interface-container,
.ielts-final-wrapper.test-completed .ielts-pagination-footer,
.ielts-final-wrapper.test-completed .ielts-widget-header{display:none}
.ielts-final-wrapper.test-completed .ielts-results-container{display:block}
.ielts-results-title{font-size:28px;font-weight:700;color:#1a202c;margin-bottom:20px}
.ielts-final-score-box{font-size:22px;margin:20px auto 25px;line-height:1.6;padding:20px;background:#f7f8fa;border:1px solid #e2e8f0;border-radius:8px;max-width:400px}
.ielts-final-score-box .band-score{font-size:1.3em;font-weight:bold;color:#007BFF;display:block;margin-top:8px}
#ielts-ai-feedback-btn-results{margin-bottom:30px}
.ielts-detailed-report-wrapper{margin-top:20px;max-height:400px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}
.ielts-report-table{width:100%;border-collapse:collapse;text-align:left}
.ielts-report-table th,.ielts-report-table td{padding:12px 15px;border-bottom:1px solid #e2e8f0}
.ielts-report-table th{background:#f7f8fa;font-size:14px;font-weight:600;color:#4a5568}
.ielts-report-table td{font-size:15px;color:#2d3748}
.ielts-report-table td.status-correct{color:#28a745;font-weight:bold}
.ielts-report-table td.status-incorrect{color:#dc3545;font-weight:bold}
.ielts-report-table tr:last-child td{border-bottom:none}
.ielts-results-nav{margin-top:30px;display:flex;justify-content:center;gap:15px}
/* Focus */
.ielts-final-wrapper.focus-mode{position:fixed;top:0;left:0;width:100%;height:100%;background:#f7f8fa;z-index:9999;padding:20px;box-sizing:border-box;border:none;display:flex;flex-direction:column}
.ielts-final-wrapper.focus-mode .ielts-main-interface-container{height:100%;max-height:none;flex-grow:1;display:flex;flex-direction:column;padding-bottom:60px}
body.ielts-focus-active{overflow:hidden}
/* --- Top bar & Audio --- */
#ielts-audio-player {
    display: none;
}
.ielts-top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-shrink:0;gap:15px}
.ielts-top-bar-controls{display:flex;align-items:center;gap:15px}
.ielts-timer-display{background:#2d3748;color:#fff;padding:8px 15px;border-radius:6px;font-size:20px;font-weight:700;font-family:monospace}
.ielts-font-controls{display:flex;align-items:center;gap:5px;color:#4a5568}
.ielts-font-btn{width:30px;height:30px;border:1px solid #cbd5e0;background:#fff;border-radius:5px;cursor:pointer;font-size:18px;font-weight:bold}
.ielts-font-btn:hover{background:#f7f8fa}
.ielts-final-fullscreen-button{background:#64748b;color:#fff;border:none;border-radius:6px;padding:8px;cursor:pointer;transition:background-color .2s;line-height:0}
.ielts-final-fullscreen-button:hover{background:#475569}
.ielts-final-wrapper .icon-expand{display:inline-block}
.ielts-final-wrapper .icon-compress{display:none}
.ielts-final-wrapper.focus-mode .icon-expand{display:none}
.ielts-final-wrapper.focus-mode .icon-compress{display:inline-block}
.ielts-final-answer-button{background:#007BFF;color:#fff;border:none;padding:8px 15px;font-size:14px;font-weight:600;border-radius:6px;cursor:pointer;transition:background-color .2s}
.ielts-final-answer-button:hover{background:#0056b3}
/* --- Main content --- */
.ielts-final-container{display:flex !important;flex-direction:row;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.08);overflow:hidden;flex-grow:1;min-height:0}
.ielts-final-panel{min-width:150px;display:flex;flex-direction:column;background:#fff;min-height:0}
/* Reading specific */
#ielts-left-panel{width:50%;flex-shrink:0}
#ielts-right-panel{flex-grow:1}
.ielts-passage-content p{max-width:none;margin-bottom:1em}
.ielts-final-dragger{flex-basis:6px;flex-shrink:0;background:#ef4444;cursor:col-resize;border-left:1px solid #b91c1c;border-right:1px solid #b91c1c;transition:background-color .2s;position:relative;display:flex;align-items:center;justify-content:center}
.ielts-final-dragger:hover{background:#dc2626}
.ielts-final-dragger::before{content:'';position:absolute;width:24px;height:24px;background:#fff;border:2px solid #dc2626;border-radius:50%;background-repeat:no-repeat;background-position:center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24' fill='none' stroke='%23dc2626' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='19' x2='12' y2='5'%3E%3C/line%3E%3Cpolyline points='5 12 12 5 19 12'%3E%3C/polyline%3E%3C/svg%3E");transform:rotate(90deg)}
/* Listening specific */
#ielts-main-panel{width:100%}
/* Common */
.ielts-final-panel-header{display:none}
.ielts-final-panel-content{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:0 25px 20px 25px;overflow-y:auto;flex-grow:1;line-height:1.7;color:#333;user-select:text;font-size:16px;transition:font-size .2s;box-sizing:border-box}
.ielts-question-content{scroll-padding-bottom:80px}
.processed-questions-container{padding-bottom:120px;padding-top:20px}
/* Modals & popups */
.ielts-modal-overlay{display:none;position:fixed;z-index:999999;left:0;top:0;width:100%;height:100%;background:rgba(45,55,72,.2);align-items:center;justify-content:center;pointer-events:auto}
.ielts-modal-content{pointer-events:auto}
.ielts-modal-close-btn{color:#aaa;position:absolute;top:10px;right:20px;font-size:32px;font-weight:bold;cursor:pointer;z-index:10}
#text-action-popup{position:fixed;display:none;background:#333;border-radius:5px;padding:5px;z-index:1000000;gap:5px;box-shadow:0 2px 8px rgba(0,0,0,.2)}
#text-action-popup button{background:#555;color:#fff;border:none;padding:8px 12px;border-radius:3px;cursor:pointer;font-size:14px}
#text-action-popup button:hover{background:#007BFF}
#note-display-tooltip{position:fixed;display:none;background:#222;color:#fff;padding:10px;border-radius:5px;font-size:14px;max-width:300px;z-index:1000001;pointer-events:none}
.highlighted-text{background:#FFF8A1}
.note-attached{background:#CDEBFF;border-bottom:2px dotted #007BFF;cursor:help}
/* AI & Note Modals */
#ielts-ai-feedback-modal,#ielts-note-modal{ pointer-events:auto; }
#ielts-ai-feedback-modal .ielts-modal-content, #ielts-note-modal .ielts-note-modal-content{
  background:#fff; border:1px solid #e2e8f0; padding:20px; width:auto; border-radius:12px; position:relative; box-shadow:0 8px 32px rgba(0,0,0,.1); max-height:none; display:flex; flex-direction:column; text-align:center; margin:0; left:auto; transform:none;
}
#ielts-ai-feedback-modal .ielts-modal-content{ min-width:450px; }
#ielts-ai-feedback-modal h2,.ielts-note-header{ font-size:22px; margin-top:0; }
#ielts-ai-feedback-modal p{ font-size:16px; color:#6c757d; margin:10px 0; }
.copy-success-message{ color:#28a745; font-weight:500; display:none; }
#ielts-ai-feedback-modal.copied .copy-success-message{ display:block; }
#ielts-modal-ready{ display:none; }
#ielts-modal-loader{ display:block; }
.spinner{ border:4px solid #f3f3f3; border-top:4px solid #3498db; border-radius:50%; width:40px; height:40px; animation:spin 1s linear infinite; margin:20px auto 0; }
@keyframes spin{ 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} }
.ielts-ai-links{ display:flex; flex-direction:column; gap:10px; margin-top:25px; }
.ai-link-button{ padding:12px 20px; border-radius:6px; text-decoration:none; font-weight:500; font-size:16px; transition:opacity .2s; color:#fff; }
.ai-link-button:hover{ opacity:.85; }
.ai-link-button.chatgpt{ background:#74AA9C; }
.ai-link-button.gemini{ background:linear-gradient(90deg,#8E44AD,#3498DB); }
.ai-link-button.grok{ background:#141A20; }
#ielts-note-modal .ielts-note-modal-content{ position:absolute; max-width:350px; padding:0; box-shadow:0 4px 15px rgba(0,0,0,.15); }
.ielts-note-header{ margin:0; padding:10px 15px; font-size:16px; font-weight:600; background:#f7f7f7; border-bottom:1px solid #eee; cursor:move; }
#ielts-note-textarea{ width:auto; height:120px; border:none; border-bottom:1px solid #eee; border-radius:0; padding:15px; font-size:15px; resize:vertical; margin:0; }
.ielts-note-buttons{ display:flex; justify-content:flex-end; gap:10px; padding:10px 15px; background:#f7f7ff; }
.ielts-note-button{ border:none; border-radius:5px; padding:8px 16px; font-size:14px; font-weight:500; cursor:pointer; }
.ielts-note-button.save{ background:#007BFF; color:#fff; }
/* Sticky footer */
.ielts-pagination-footer{position:absolute;bottom:0;left:0;width:100%;height:60px;background:#fff;border-top:1px solid red;box-shadow:0 -2px 10px rgba(0,0,0,.05);z-index:1000;display:flex;align-items:center;justify-content:flex-start;padding:0 20px;box-sizing:border-box}
.ielts-final-wrapper.focus-mode .ielts-pagination-footer{position:fixed}
.pagination-label{font-size:16px;font-weight:600;color:#1a202c;flex-shrink:0;margin-right:20px}
.pagination-label .label-pc{display:block}
.pagination-label .label-mobile{display:none}
/* HORIZONTAL SCROLL FIX */
.pagination-numbers-container{flex-grow:1;position:relative;overflow:hidden}
.pagination-numbers{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;padding:2px 5px;-ms-overflow-style:none;scrollbar-width:none;padding-right:30px !important;scroll-behavior:smooth;cursor:grab}
.pagination-numbers:active{cursor:grabbing}
.pagination-numbers::-webkit-scrollbar{display:none}
.pagination-scroll-indicator{display:none;position:absolute;right:0;top:0;bottom:0;width:40px;background:linear-gradient(to left, rgba(200,200,200,.7) 30%, rgba(255,255,255,0));pointer-events:none;z-index:2}
.pagination-scroll-indicator.visible{display:block}
.palette-btn{flex-shrink:0;width:35px;height:35px;border-radius:50%;border:1px solid #cbd5e0;background:#fff;color:#4a5568;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
.palette-btn:hover{background:#e2e8f0;border-color:#a0aec0}
.palette-btn.active{background:#007bff;color:#fff;border-color:#007bff;box-shadow:0 2px 5px rgba(0,123,255,.3)}
.palette-btn.answered{background:#d4edda;border-color:#c3e6cb;color:#155724}
.palette-btn.answered:hover{background:#c3e6cb}
.palette-btn.active.answered{background:#007bff;color:#fff;border-color:#007bff}
.palette-btn.correct{background:#28a745 !important;color:#fff !important;border-color:#28a745 !important}
.palette-btn.incorrect{background:#fff !important;color:#dc3545 !important;border-color:#dc3545 !important;border-width:2px}
.palette-btn.multi-q {
    line-height: 1.1;
    font-size: 12px;
    font-weight: 600;
    padding-top: 5px;
    padding-bottom: 5px;
    box-sizing: border-box;
}
.question-anchor-number{font-weight:bold;color:#1a202c;padding-right:.3em}
/* Gap Fill */
.ielts-gap-fill{display:inline-block;width:auto;max-width:100%;height:auto;padding:2px 4px;line-height:normal;box-sizing:border-box;border:1px solid #DCAEAE;border-radius:3px;background:#fff;font-family:inherit;font-size:inherit;font-weight:600;color:#000;vertical-align:middle;margin:0 4px;text-align:left;transition:border-color .2s,box-shadow .2s,background-color .2s,color .2s}
.ielts-gap-fill:hover{border-color:#C88E8E}
.ielts-gap-fill:focus{outline:none;border-color:#007BFF;box-shadow:0 0 0 2px rgba(0,123,255,.25)}
.ielts-gap-fill.correct{border-color:#28a745 !important;background:#f0fff4 !important;color:#28a745 !important;font-weight:bold;width:auto !important;min-width:fit-content !important}
.ielts-gap-fill.incorrect{border-color:#dc3545 !important;background:#fff5f5 !important;color:#dc3545 !important;font-weight:bold;width:auto !important;min-width:fit-content !important}
.review-mode .ielts-gap-fill{pointer-events:none;transition:none !important}
.correct-answer-tooltip{color:#28a745;font-weight:bold;font-size:.9em;margin-left:4px;display:inline-block;vertical-align:middle}
/* Choices */
span.choice-group,
span.choice-group-tfng,
span.choice-group-multi {
    display: block;
    margin-top: .8em;
    margin-left: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
button.choice-button{font-family:inherit;font-weight:600;width:32px;height:32px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:.9em;border:1px solid #cbd5e0;background:#f7f8fa;color:#4a5568;cursor:pointer;transition:all .2s}
button.choice-button:hover{background:#e2e8f0;border-color:#a0aec0}
button.choice-button.selected{background:#007bff;color:#fff;border-color:#007bff;box-shadow:0 2px 5px rgba(0,123,255,.3)}
button.choice-button.long-text{width:auto;height:32px;padding:0 12px;border-radius:16px}
.review-mode button.choice-button{pointer-events:none;opacity:.8}
.review-mode button.choice-button:not(.selected){opacity:.6}
button.choice-button.correct{background:#28a745 !important;color:#fff !important;border-color:#28a745 !important;opacity:1 !important}
button.choice-button.incorrect{background:#dc3545 !important;color:#fff !important;border-color:#dc3545 !important;opacity:1 !important}
.choice-label-tfng{display:inline-flex;align-items:center;cursor:pointer;font-size:inherit;color:#4a5568;margin:0}
.choice-input-tfng{display:none}
.choice-label-tfng span{font-weight:600;padding:6px 12px;border:1px solid #cbd5e0;border-radius:18px;background:#f7f8fa;line-height:1;transition:all .2s}
.choice-label-tfng:hover span{background:#e2e8f0;border-color:#a0aec0}
.choice-input-tfng:checked+span{background:#007bff;color:#fff;border-color:#007bff;box-shadow:0 2px 5px rgba(0,123,255,.3)}
.review-mode .choice-label-tfng{pointer-events:none;opacity:.8}
.review-mode .choice-input-tfng:not(:checked)+span{opacity:.6}
.review-mode .choice-input-tfng:checked+span{opacity:1}
.choice-label-tfng.correct span{background:#28a745 !important;color:#fff !important;border-color:#28a745 !important;opacity:1 !important}
.choice-label-tfng.incorrect span{background:#dc3545 !important;color:#fff !important;border-color:#dc3545 !important;opacity:1 !important}
/* Mobile */
@media (max-width:768px){
  .ielts-final-wrapper.test-started .ielts-main-interface-container{height:100vh;padding-bottom:50px;max-height:none}
  .ielts-final-wrapper.focus-mode{padding:0;border:none;padding-bottom:50px}
  .ielts-timer-display{font-size:14px;padding:5px 8px}
  .ielts-final-panel-content{padding:5px 10px 15px 10px}
 
  .ielts-top-bar{margin-top:0;margin-bottom:10px}
  .ielts-final-wrapper{padding:0;border:none}
  .ielts-top-bar{flex-wrap:nowrap;justify-content:space-between;gap:8px}
  .ielts-final-answer-button{padding:6px 10px;font-size:13px}
  .ielts-final-fullscreen-button{padding:6px}
  .ielts-final-container{flex-direction:column}
  .ielts-final-dragger{width:100%;height:6px;cursor:ns-resize}
  .ielts-final-dragger::before{transform:rotate(0deg)}
  .ielts-final-panel{width:100% !important;height:auto}
  #ielts-left-panel{height:50%;flex-shrink:0;flex-grow:0}
  #ielts-right-panel{flex-grow:1;min-height:100px}
  #ielts-main-panel{flex-grow:1;min-height:100px} /* Listening mobile */
  .ielts-font-controls{display:none}
  #ielts-ai-feedback-btn-results{margin-bottom:20px}
  .ielts-pagination-footer{height:50px;padding:0 10px}
  .pagination-label .label-pc{display:none}
  .pagination-label .label-mobile{display:block}
  .pagination-numbers{padding:2px 5px;padding-right:25px !important;gap:6px}
  .palette-btn{width:30px;height:30px;font-size:12px}
  .palette-btn.multi-q {
      font-size: 10px;
      line-height: 1;
      padding-top: 4px;
      padding-bottom: 4px;
  }
 
  .palette-btn.answered{background:#1e6823;border-color:#1a591e;color:#fff}
  .palette-btn.answered:hover{background:#144617}
  .palette-btn.active.answered{background:#007bff;color:#fff;border-color:#007bff}
 
 
  span.choice-group,
  span.choice-group-tfng,
  span.choice-group-multi {
      margin-top:.6em;
      gap:8px
  }
  /* Mobile Modals */
  #ielts-note-modal .ielts-note-modal-content{ position:relative; top:auto !important; left:auto !important; }
  .ielts-note-header{ cursor:default; }
  #ielts-ai-feedback-modal .ielts-modal-content{ width:95%; min-width:0; padding:20px 15px; }
  #ielts-ai-feedback-modal h2{ font-size:20px; }
  #ielts-ai-feedback-modal .ai-link-button{ padding:10px; font-size:15px; }
}