/* ═══════════════════════════════════════════════════════════════════════
   TUTEUR MATHÉMATIQUES — Spé Maths Terminale
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Wrapper ────────────────────────────────────────────────────────────── */
.tutor-wrap {
  max-width: 960px;
  margin: 1.5rem auto;
  padding: 0 1rem 4rem;
  font-family: Inter, sans-serif;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* ── En-tête ────────────────────────────────────────────────────────────── */
.tutor-header {
  background: linear-gradient(135deg, var(--color-primary, #6c63ff), #4f46e5);
  border-radius: 16px;
  padding: 1.5rem;
  color: #fff;
}
.tutor-header-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.tutor-avatar {
  font-size: 2.5rem;
  background: rgba(255,255,255,.15);
  border-radius: 50%;
  width: 60px; height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.tutor-title    { font-size: 1.4rem; font-weight: 700; margin: 0; }
.tutor-subtitle { font-size: .85rem; opacity: .85; margin: .25rem 0 0; }
.tutor-home-link {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: .45rem .85rem;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: .85rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.tutor-home-link:hover {
  background: rgba(255,255,255,.24);
  color: #fff;
  text-decoration: none;
}

/* ── Zone conversation ──────────────────────────────────────────────────── */
.tutor-chat-area {
  background: var(--color-surface, #f8f9fb);
  border-radius: 14px;
  padding: 1.25rem;
  min-height: 320px;
  max-height: 46vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: .9rem;
  border: 1px solid var(--color-border, #e2e5eb);
  scroll-behavior: smooth;
}
[data-theme="dark"] .tutor-chat-area {
  background: #1e2130;
  border-color: #2d3148;
}

/* ── Bulles ─────────────────────────────────────────────────────────────── */
.tutor-message { display: flex; }
.tutor-message--user { justify-content: flex-end; }
.tutor-message--bot  { justify-content: flex-start; }

.tutor-exercise-viewer {
  overflow: hidden;
  border: 1px solid var(--color-border, #dde4f0);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 14px rgba(21,101,192,.10);
}

.tutor-exercise-viewer-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--color-border, #dde4f0);
  background: #f3f7ff;
}

.tutor-exercise-viewer-kicker {
  color: var(--color-primary, #6c63ff);
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.tutor-exercise-viewer h2 {
  margin: .15rem 0 0;
  color: var(--color-text, #1a1a2e);
  font-size: 1rem;
}

.tutor-exercise-open {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 8px;
  background: var(--color-primary, #6c63ff);
  color: #fff;
  font-size: .85rem;
  font-weight: 800;
  line-height: 1.2;
  padding: .42rem .75rem;
  text-decoration: none;
  white-space: nowrap;
}

.tutor-exercise-open:hover {
  color: #fff;
  opacity: .88;
  text-decoration: none;
}

.tutor-exercise-frame {
  display: block;
  width: 100%;
  height: min(58vh, 640px);
  min-height: 420px;
  border: 0;
  background: #f8fafc;
}

.tutor-bubble {
  max-width: 80%;
  padding: .75rem 1rem;
  border-radius: 14px;
  line-height: 1.6;
  font-size: .9rem;
}
.tutor-message--user .tutor-bubble {
  background: var(--color-primary, #6c63ff);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.tutor-message--bot .tutor-bubble {
  background: #fff;
  color: var(--color-text, #1a1a2e);
  border-bottom-left-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.tutor-message--transferred {
  justify-content: flex-start;
}
.tutor-message--transferred .tutor-bubble {
  width: min(100%, 900px);
  max-width: 92%;
  background: #fff;
  color: var(--color-text, #1a1a2e);
  border: 1px solid rgba(108,99,255,.22);
  border-bottom-left-radius: 4px;
  box-shadow: 0 2px 10px rgba(21,101,192,.08);
}
[data-theme="dark"] .tutor-message--bot .tutor-bubble {
  background: #262a40;
  color: #e8eaf0;
}
.tutor-bubble p      { margin: .4rem 0; }
.tutor-bubble strong { color: var(--color-primary, #6c63ff); }
.tutor-bubble code {
  background: rgba(108,99,255,.1);
  padding: 1px 5px;
  border-radius: 4px;
  font-family: 'Fira Code', monospace;
  font-size: .85em;
}
.tutor-bubble ul, .tutor-bubble ol { padding-left: 1.4rem; margin: .4rem 0; }

.tutor-bubble-attachment {
  display: inline-flex;
  max-width: 100%;
  margin: 0 0 .55rem;
  padding: .38rem .62rem;
  border-radius: 10px;
  background: rgba(255,255,255,.18);
  color: inherit;
  font-size: .78rem;
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tutor-message--bot .tutor-bubble-attachment {
  background: rgba(108,99,255,.1);
  color: var(--color-primary, #6c63ff);
}

/* ── Badge de mode ──────────────────────────────────────────────────────── */
.tutor-mode-badge {
  display: inline-block;
  font-size: .7rem;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 20px;
  margin-bottom: .4rem;
  background: rgba(108,99,255,.12);
  color: var(--color-primary, #6c63ff);
}

/* ── Indicateur de frappe ───────────────────────────────────────────────── */
.tutor-typing .tutor-bubble {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: .6rem 1rem;
}
.tutor-typing-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #aaa;
  animation: tutor-bounce .9s infinite ease-in-out;
}
.tutor-typing-dot:nth-child(2) { animation-delay: .15s; }
.tutor-typing-dot:nth-child(3) { animation-delay: .30s; }
@keyframes tutor-bounce {
  0%, 80%, 100% { transform: translateY(0); }
  40%           { transform: translateY(-6px); }
}

/* ── Boutons pédagogiques ───────────────────────────────────────────────── */
.tutor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.tutor-action-btn {
  padding: .45rem .85rem;
  border: 1.5px solid var(--color-primary, #6c63ff);
  border-radius: 20px;
  background: transparent;
  color: var(--color-primary, #6c63ff);
  font-size: .8rem;
  font-weight: 500;
  cursor: pointer;
  transition: background .2s, color .2s;
  font-family: inherit;
}
.tutor-action-btn:hover,
.tutor-action-btn.active {
  background: var(--color-primary, #6c63ff);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════════════════════
   BLOC ÉDITEUR PRINCIPAL
   ═══════════════════════════════════════════════════════════════════════ */

.tutor-editor-block {
  position: sticky;
  bottom: 1rem;
  z-index: 20;
  border: 1.5px solid rgba(108,99,255,.28);
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
  box-shadow: 0 18px 45px rgba(15,23,42,.16);
  backdrop-filter: blur(10px);
}
.tutor-editor-block:focus-within {
  border-color: var(--color-primary, #6c63ff);
  box-shadow: 0 0 0 3px rgba(108,99,255,.12), 0 22px 55px rgba(15,23,42,.18);
}
[data-theme="dark"] .tutor-editor-block {
  background: #1e2130;
  border-color: #2d3148;
}

/* ── Barre d'outils ─────────────────────────────────────────────────────── */
.tutor-toolbar {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .7rem .9rem;
  border-bottom: 1px solid var(--color-border, #e9eaf0);
  background: linear-gradient(180deg, #fbfbff 0%, #f5f6ff 100%);
}
[data-theme="dark"] .tutor-toolbar {
  background: #1a1d2e;
  border-bottom-color: #2d3148;
}

.tutor-toolbar-left {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-width: 0;
  flex: 1;
}

/* Bouton déclencheur formule */
.tutor-formula-trigger-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .46rem .95rem;
  border: 1.5px solid var(--color-primary, #6c63ff);
  border-radius: 20px;
  background: transparent;
  color: var(--color-primary, #6c63ff);
  font-size: .86rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background .18s, color .18s;
  line-height: 1;
}
.tutor-formula-trigger-btn:hover,
.tutor-formula-trigger-btn.active {
  background: var(--color-primary, #6c63ff);
  color: #fff;
}
.tutor-formula-trigger-icon {
  font-size: 1rem;
  line-height: 1;
}

.tutor-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.tutor-file-trigger-btn,
.tutor-mobile-scan-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .46rem .95rem;
  border: 1.5px solid #c7d2fe;
  border-radius: 20px;
  background: #fff;
  color: #4f46e5;
  font-size: .86rem;
  font-weight: 650;
  cursor: pointer;
  line-height: 1;
  transition: background .18s, color .18s, border-color .18s, transform .12s;
  font-family: inherit;
}
.tutor-file-trigger-btn:hover,
.tutor-mobile-scan-btn:hover,
.tutor-mobile-scan-btn.active {
  background: #eef2ff;
  border-color: #818cf8;
  transform: translateY(-1px);
}
.tutor-file-trigger-icon {
  font-size: .95rem;
  line-height: 1;
}
[data-theme="dark"] .tutor-file-trigger-btn,
[data-theme="dark"] .tutor-mobile-scan-btn {
  background: #262a40;
  border-color: #3a3f5c;
  color: #c7d2fe;
}

.tutor-mobile-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 1rem;
  align-items: center;
  padding: .9rem;
  border-bottom: 1px solid var(--color-border, #e9eaf0);
  background: linear-gradient(135deg, #f8fbff, #eef2ff);
}
.tutor-mobile-panel[hidden] {
  display: none;
}
.tutor-mobile-panel-text {
  display: flex;
  flex-direction: column;
  gap: .32rem;
  min-width: 0;
}
.tutor-mobile-panel-text strong {
  color: #1f2937;
  font-size: .95rem;
}
.tutor-mobile-panel-text span {
  color: #64708b;
  font-size: .82rem;
  line-height: 1.45;
}
.tutor-mobile-panel-text a {
  color: #4f46e5;
  font-size: .76rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.tutor-mobile-qr {
  width: 150px;
  height: 150px;
  padding: 8px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #dfe4ff;
  box-shadow: 0 8px 18px rgba(31,41,55,.08);
}
[data-theme="dark"] .tutor-mobile-panel {
  background: #1e2130;
  border-bottom-color: #2d3148;
}
[data-theme="dark"] .tutor-mobile-panel-text strong {
  color: #e8eaf0;
}
[data-theme="dark"] .tutor-mobile-panel-text span {
  color: #aab1c8;
}

.tutor-attachment-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem .9rem;
  border-bottom: 1px solid var(--color-border, #e9eaf0);
  background: #fff;
}
.tutor-attachment-preview[hidden] {
  display: none;
}
.tutor-attachment-main {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
  flex: 1;
  flex-wrap: wrap;
}
.tutor-attachment-icon {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #eef2ff;
  flex-shrink: 0;
}
.tutor-attachment-text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .12rem;
}
.tutor-attachment-text strong {
  font-size: .86rem;
  color: #1f2937;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tutor-attachment-text span {
  font-size: .74rem;
  color: #7d859f;
}
.tutor-attachment-actions {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  flex-shrink: 0;
}
.tutor-ocr-btn,
.tutor-attachment-remove {
  flex-shrink: 0;
  border-radius: 999px;
  cursor: pointer;
  font: 650 .78rem/1 Inter, sans-serif;
  padding: .42rem .7rem;
}
.tutor-ocr-btn {
  border: 1px solid #c7d2fe;
  background: #eef2ff;
  color: #4f46e5;
}
.tutor-ocr-btn:hover:not(:disabled) {
  background: #e0e7ff;
}
.tutor-ocr-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.tutor-attachment-remove {
  border: 1px solid #fecaca;
  background: #fff5f5;
  color: #b91c1c;
}
.tutor-attachment-remove:hover {
  background: #fee2e2;
}
[data-theme="dark"] .tutor-attachment-preview {
  background: #1e2130;
  border-bottom-color: #2d3148;
}
[data-theme="dark"] .tutor-attachment-icon {
  background: #262a40;
}
[data-theme="dark"] .tutor-attachment-text strong {
  color: #e8eaf0;
}

.tutor-attachment-image {
  width: min(100%, 520px);
  max-height: 340px;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid #dfe4ff;
  background: #fff;
  flex: 0 0 100%;
  margin-top: .55rem;
  box-shadow: 0 8px 18px rgba(31,41,55,.08);
}
.tutor-attachment-image[hidden] {
  display: none;
}
.tutor-bubble-image {
  display: block;
  width: min(100%, 260px);
  max-height: 260px;
  object-fit: contain;
  margin-top: .55rem;
  border-radius: 10px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.28);
}
.tutor-message--bot .tutor-bubble-image,
.tutor-message--transferred .tutor-bubble-image {
  background: #fff;
  border-color: #dfe4ff;
}

/* Compteur de caractères */
.tutor-char-info {
  margin-left: auto;
  font-size: .73rem;
  color: #8b93ad;
  padding: .2rem .45rem;
  border-radius: 999px;
  background: rgba(108,99,255,.08);
  white-space: nowrap;
}

/* ── Textarea principal ──────────────────────────────────────────────────── */
.tutor-textarea-wrap {
  display: flex;
  background:
    radial-gradient(circle at top left, rgba(108,99,255,.08), transparent 34%),
    #fff;
}
.tutor-textarea {
  width: 100%;
  padding: 1.05rem 1.1rem;
  font-family: Inter, sans-serif;
  font-size: 1rem;
  border: none;
  outline: none;
  resize: vertical;
  background: transparent;
  color: inherit;
  min-height: 138px;
  max-height: 320px;
  box-sizing: border-box;
  line-height: 1.7;
}
.tutor-textarea::placeholder { color: #9da5bd; }
[data-theme="dark"] .tutor-textarea-wrap {
  background:
    radial-gradient(circle at top left, rgba(165,180,252,.1), transparent 36%),
    #1e2130;
}

/* ── Ligne Envoyer ───────────────────────────────────────────────────────── */
.tutor-send-row {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .72rem .9rem;
  border-top: 1px solid var(--color-border, #e9eaf0);
  background: #f8f9ff;
}
[data-theme="dark"] .tutor-send-row {
  background: #1a1d2e;
  border-top-color: #2d3148;
}
.tutor-mode-active {
  font-size: .78rem;
  font-weight: 600;
  color: var(--color-primary, #6c63ff);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.tutor-mode-active:empty { display: none; }
.tutor-mode-active:not(:empty) {
  padding: .28rem .6rem;
  border-radius: 999px;
  background: rgba(108,99,255,.1);
}
.tutor-send-hint {
  flex: 1;
  min-width: 0;
  color: #7d859f;
  font-size: .78rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tutor-send-btn {
  background: linear-gradient(135deg, var(--color-primary, #6c63ff), #4f46e5);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: .68rem 1.45rem;
  font-size: .9rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: opacity .2s, transform .1s, box-shadow .2s;
  flex-shrink: 0;
  box-shadow: 0 8px 20px rgba(79,70,229,.28);
}
.tutor-send-btn:hover:not(:disabled) { opacity: .95; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(79,70,229,.34); }
.tutor-send-btn:disabled { opacity: .35; cursor: not-allowed; transform: none; box-shadow: none; }

/* ── Flash d'insertion dans le textarea ─────────────────────────────────── */
@keyframes tutor-flash {
  0%   { background: rgba(108,99,255,.2); }
  100% { background: transparent; }
}
.tutor-textarea.tutor-flash { animation: tutor-flash .45s ease; }

/* ── Info limite ─────────────────────────────────────────────────────────── */
.tutor-limit-info {
  text-align: center;
  font-size: .75rem;
  color: #aaa;
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   POPUP ÉDITEUR DE FORMULE
   ═══════════════════════════════════════════════════════════════════════ */

.tutor-formula-popup {
  border-top: 1px solid var(--color-border, #e9eaf0);
  border-bottom: 1px solid var(--color-border, #e9eaf0);
  background: #f4f5ff;
  display: flex;
  flex-direction: column;
  max-height: min(58vh, 620px);
  overflow: hidden;
  animation: tutor-popup-in .18s ease;
}
.tutor-formula-popup[hidden] {
  display: none;
}
[data-theme="dark"] .tutor-formula-popup {
  background: #181b2a;
  border-color: #2d3148;
}
@keyframes tutor-popup-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* En-tête popup */
.tutor-fml-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .55rem .9rem;
  border-bottom: 1px solid var(--color-border, #e0e2f0);
}
[data-theme="dark"] .tutor-fml-header { border-bottom-color: #2d3148; }

.tutor-fml-title {
  font-size: .82rem;
  font-weight: 700;
  color: var(--color-primary, #6c63ff);
}
.tutor-fml-close-btn {
  width: 24px; height: 24px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: #999;
  cursor: pointer;
  font-size: .9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
}
.tutor-fml-close-btn:hover { background: #e5e7eb; color: #333; }

/* Zone prévisualisation + saisie LaTeX brute */
.tutor-fml-preview-area {
  padding: .65rem .9rem .5rem;
  display: flex;
  flex-direction: column;
  gap: .45rem;
  border-bottom: 1px solid var(--color-border, #e0e2f0);
}
[data-theme="dark"] .tutor-fml-preview-area { border-bottom-color: #2d3148; }

.tutor-fml-preview-label {
  font-size: .67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: #aaa;
}

.tutor-fml-preview {
  min-height: 52px;
  background: #fff;
  border: 1.5px solid var(--color-border, #dde0f0);
  border-radius: 10px;
  padding: .5rem 1rem;
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.04);
  overflow-x: auto;
}
[data-theme="dark"] .tutor-fml-preview {
  background: #1e2130;
  border-color: #3a3f5c;
  color: #e8eaf0;
}

.tutor-fml-hint {
  color: #c4c8d8;
  font-size: .82rem;
  font-style: italic;
}

/* Ligne LaTeX brute + backspace */
.tutor-fml-raw-wrap {
  display: flex;
  align-items: center;
  gap: .45rem;
}
.tutor-fml-raw-label {
  font-size: .72rem;
  font-weight: 700;
  color: #aaa;
  white-space: nowrap;
  flex-shrink: 0;
}
.tutor-fml-raw {
  flex: 1;
  padding: .35rem .65rem;
  border: 1.5px solid var(--color-border, #dde0f0);
  border-radius: 8px;
  background: #fff;
  font-family: 'Fira Code', monospace;
  font-size: .8rem;
  color: var(--color-text, #1a1a2e);
  outline: none;
  transition: border-color .18s;
  min-width: 0;
}
.tutor-fml-raw:focus { border-color: var(--color-primary, #6c63ff); }
[data-theme="dark"] .tutor-fml-raw {
  background: #262a40;
  border-color: #3a3f5c;
  color: #e8eaf0;
}

.tutor-fml-bksp-btn {
  padding: .3rem .55rem;
  border: 1.5px solid #dde;
  border-radius: 7px;
  background: #fff;
  color: #666;
  font-size: .9rem;
  cursor: pointer;
  transition: background .13s, color .13s;
  flex-shrink: 0;
  line-height: 1;
}
.tutor-fml-bksp-btn:hover { background: #fee; color: #c00; border-color: #fbb; }
[data-theme="dark"] .tutor-fml-bksp-btn {
  background: #262a40;
  border-color: #3a3f5c;
  color: #aaa;
}

/* ── Boutons d'action de la popup ───────────────────────────────────────── */
.tutor-fml-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .6rem;
  padding: .6rem .9rem;
  border-top: 1px solid var(--color-border, #e0e2f0);
  background: #fff;
}
[data-theme="dark"] .tutor-fml-actions {
  background: #1e2130;
  border-top-color: #2d3148;
}

.tutor-fml-btn {
  padding: .45rem 1.1rem;
  border-radius: 9px;
  font-size: .84rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: opacity .18s, background .18s;
}
.tutor-fml-btn--sec {
  border: 1.5px solid #d1d5db;
  background: transparent;
  color: #666;
}
.tutor-fml-btn--sec:hover { background: #f3f4f6; }
.tutor-fml-btn--pri {
  border: none;
  background: var(--color-primary, #6c63ff);
  color: #fff;
}
.tutor-fml-btn--pri:hover:not(:disabled) { opacity: .88; }
.tutor-fml-btn--pri:disabled { opacity: .35; cursor: not-allowed; }

/* ═══════════════════════════════════════════════════════════════════════
   CLAVIER MATHÉMATIQUE (dans la popup)
   ═══════════════════════════════════════════════════════════════════════ */

.tutor-mathkbd {
  background: #f0f1fa;
  overflow: auto;
}
[data-theme="dark"] .tutor-mathkbd { background: #181b2a; }

/* ── Barre d'onglets ────────────────────────────────────────────────────── */
.tutor-kbd-tabs {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--color-border, #dde0f0);
  background: #fff;
  padding: 0 .5rem;
  overflow-x: auto;
}
[data-theme="dark"] .tutor-kbd-tabs {
  background: #1e2130;
  border-bottom-color: #2d3148;
}

.tutor-kbd-tab {
  padding: .48rem 1rem;
  border: none;
  background: transparent;
  color: #888;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.tutor-kbd-tab:hover  { color: var(--color-primary, #6c63ff); }
.tutor-kbd-tab.active {
  color: var(--color-primary, #6c63ff);
  border-bottom-color: var(--color-primary, #6c63ff);
}
[data-theme="dark"] .tutor-kbd-tab       { color: #666; }
[data-theme="dark"] .tutor-kbd-tab.active { color: #a5b4fc; border-bottom-color: #a5b4fc; }

/* ── Panneaux ───────────────────────────────────────────────────────────── */
.tutor-kbd-panel { display: none; padding: .55rem .65rem .6rem; }
.tutor-kbd-panel.active { display: block; }

/* ── Grilles ────────────────────────────────────────────────────────────── */
/* Grille nombres : 10 colonnes (5 chiffres/op + 1 sep + 4 opérateurs) */
.tutor-kbd-grid      { display: grid; grid-template-columns: repeat(10, 1fr); gap: .28rem; }
.tutor-kbd-grid--5   { grid-template-columns: repeat(5, 1fr); }
.tutor-kbd-grid--6   { grid-template-columns: repeat(6, 1fr); }

/* ── Touches ────────────────────────────────────────────────────────────── */
.tutor-key {
  padding: .42rem .2rem;
  border: 1px solid #d8daf0;
  border-radius: 7px;
  background: #fff;
  color: var(--color-text, #1a1a2e);
  font-size: .78rem;
  font-weight: 500;
  cursor: pointer;
  font-family: 'Fira Code', monospace;
  text-align: center;
  line-height: 1.3;
  transition: background .1s, border-color .1s, transform .07s;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  word-break: break-all;
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.tutor-key:hover {
  background: rgba(108,99,255,.08);
  border-color: var(--color-primary, #6c63ff);
  color: var(--color-primary, #6c63ff);
}
.tutor-key:active { transform: scale(.91); background: rgba(108,99,255,.16); }

/* Touches numériques */
.tutor-key--num {
  background: #eef0ff;
  font-weight: 700;
  font-size: .9rem;
  font-family: inherit;
}
.tutor-key--num:hover {
  background: var(--color-primary, #6c63ff);
  color: #fff;
  border-color: var(--color-primary, #6c63ff);
}

/* Séparateur visuel entre colonnes */
.tutor-key--sep {
  background: transparent;
  border: none;
  box-shadow: none;
  cursor: default;
  pointer-events: none;
  /* fine ligne verticale */
  border-left: 1px solid #d8daf0;
  border-radius: 0;
  padding: 0;
  min-height: 0;
  align-self: stretch;
  margin: 2px 1px;
}
[data-theme="dark"] .tutor-key--sep { border-left-color: #3a3f5c; }

/* Dark mode touches */
[data-theme="dark"] .tutor-key      { background: #262a40; border-color: #3a3f5c; color: #e8eaf0; }
[data-theme="dark"] .tutor-key--num { background: #1e2640; }
[data-theme="dark"] .tutor-key:hover { background: rgba(165,180,252,.15); border-color: #a5b4fc; color: #a5b4fc; }

/* ═══════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  .tutor-wrap { padding-inline: .75rem; }
  .tutor-header-inner { align-items: flex-start; flex-wrap: wrap; }
  .tutor-home-link { margin-left: 76px; }
  .tutor-editor-block { bottom: .5rem; border-radius: 14px; }
  .tutor-chat-area { max-height: 42vh; min-height: 260px; }
  .tutor-toolbar { align-items: flex-start; }
  .tutor-toolbar-left { flex-direction: column; align-items: flex-start; gap: .45rem; }
  .tutor-file-trigger-btn,
  .tutor-mobile-scan-btn,
  .tutor-formula-trigger-btn { width: 100%; justify-content: center; }
  .tutor-mobile-panel { grid-template-columns: 1fr; }
  .tutor-mobile-qr { width: 170px; height: 170px; justify-self: center; }
  .tutor-attachment-preview { align-items: flex-start; flex-direction: column; }
  .tutor-attachment-main { width: 100%; }
  .tutor-attachment-actions { flex-direction: row; }
  .tutor-attachment-image { max-height: 260px; }
  .tutor-send-hint { display: none; }
  .tutor-textarea { min-height: 120px; font-size: .95rem; }
  .tutor-bubble    { max-width: 92%; }
  .tutor-action-btn { font-size: .75rem; padding: .4rem .7rem; }
  .tutor-kbd-tab   { padding: .44rem .65rem; font-size: .78rem; }

  /* Grille nombres → 5 colonnes, séparateur masqué */
  .tutor-kbd-grid  { grid-template-columns: repeat(5, 1fr); }
  .tutor-key--sep  { display: none; }

  .tutor-key       { font-size: .72rem; min-height: 32px; }
  .tutor-key--num  { font-size: .82rem; }
}
