:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;--color-brand: #5b21b6;--color-brand-hover: #4c1d95;--color-brand-light: #8b5cf6;--color-brand-soft: #ede9fe;--color-accent: #0d9488;--color-accent-soft: #ccfbf1;--color-maths: #2563eb;--color-maths-soft: #dbeafe;--color-physique: #d97706;--color-physique-soft: #fef3c7;--color-francais: #dc2626;--color-francais-soft: #fee2e2;--color-histoire: #7c3aed;--color-histoire-soft: #ede9fe;--color-svt: #16a34a;--color-svt-soft: #dcfce7;--color-anglais: #0891b2;--color-anglais-soft: #cffafe;--color-bg: #f8f7ff;--color-surface: #ffffff;--color-surface-2: #f3f0ff;--color-text: #0f0a1e;--color-text-2: #374151;--color-muted: #6b7280;--color-line: rgba(91, 33, 182, .12);--color-focus: #5b21b6;--color-success: #16a34a;--color-success-soft: #f0fdf4;--color-error: #dc2626;--color-error-soft: #fef2f2;--color-info: #2563eb;--color-info-soft: #eff6ff;--color-warning: #d97706;--color-warning-soft: #fffbeb;--shadow-sm: 0 1px 3px rgba(91, 33, 182, .08), 0 1px 2px rgba(0,0,0,.06);--shadow: 0 4px 16px rgba(91, 33, 182, .1), 0 2px 8px rgba(0,0,0,.06);--shadow-lg: 0 20px 48px rgba(91, 33, 182, .14), 0 8px 24px rgba(0,0,0,.08);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--bubble-user-bg: var(--color-brand);--bubble-user-color: #fff;--bubble-ai-bg: #ffffff;--bubble-ai-border: var(--color-line)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,h3,h4{margin:0;line-height:1.2}p{margin:0}.skip-link{position:absolute;top:-56px;left:12px;background:var(--color-text);color:#fff;padding:10px 16px;border-radius:var(--radius);font-weight:700;text-decoration:none;z-index:100;transition:top .15s}.skip-link:focus-visible{top:12px}.site-header{position:sticky;top:0;z-index:40;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-line);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-6);height:60px;max-width:100%}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;max-width:1280px;margin:0 auto}.brand{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xl);font-weight:800;color:var(--color-brand);letter-spacing:-.02em}.brand-icon{width:32px;height:32px;background:var(--color-brand);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}.site-nav{display:flex;align-items:center;gap:var(--space-2)}.nav-link{color:var(--color-muted);font-size:var(--font-size-sm);font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color .15s,background .15s}.nav-link:hover{color:var(--color-text);background:var(--color-surface-2)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:9px var(--space-5);border-radius:var(--radius);font:600 var(--font-size-sm)/1 inherit;cursor:pointer;border:none;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--color-brand);color:#fff}.btn-primary:hover{background:var(--color-brand-hover);transform:translateY(-1px);box-shadow:var(--shadow)}.btn-primary:active{transform:translateY(0)}.btn-outline{background:transparent;color:var(--color-brand);border:1.5px solid var(--color-brand)}.btn-outline:hover{background:var(--color-brand-soft)}.btn-ghost{background:transparent;color:var(--color-text-2);border:1px solid var(--color-line)}.btn-ghost:hover{background:var(--color-surface-2)}.btn-sm{padding:7px var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:13px var(--space-8);font-size:var(--font-size-base);border-radius:var(--radius-lg)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.user-avatar{width:34px;height:34px;border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--color-brand-soft)}.user-menu{position:relative;display:flex;align-items:center;gap:var(--space-2)}main{max-width:1280px;margin:0 auto;padding:var(--space-8) var(--space-6)}.tutor-main{max-width:1440px;margin:0 auto;padding:var(--space-6)}.site-footer{border-top:1px solid var(--color-line);padding:var(--space-8) var(--space-6);margin-top:auto}.footer-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;color:var(--color-muted);font-size:var(--font-size-sm)}.footer-links{display:flex;gap:var(--space-4)}.footer-links a:hover{color:var(--color-brand)}.tutor-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--space-6);min-height:calc(100vh - 180px)}.tutor-sidebar{display:flex;flex-direction:column;gap:var(--space-4)}.sidebar-section{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-5)}.sidebar-section h3{font-size:var(--font-size-sm);font-weight:700;color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3)}.subject-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.subject-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-radius:var(--radius);border:2px solid transparent;background:var(--color-bg);cursor:pointer;transition:all .15s;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-2);text-align:center}.subject-btn .subject-icon{font-size:22px}.subject-btn:hover{border-color:var(--subject-color, var(--color-brand));background:var(--subject-soft, var(--color-brand-soft));color:var(--subject-color, var(--color-brand))}.subject-btn.active{border-color:var(--subject-color, var(--color-brand));background:var(--subject-soft, var(--color-brand-soft));color:var(--subject-color, var(--color-brand));box-shadow:var(--shadow-sm)}.mode-pills{display:flex;flex-direction:column;gap:var(--space-2)}.mode-pill{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1.5px solid transparent;background:var(--color-bg);cursor:pointer;transition:all .15s;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-2);text-align:left}.mode-pill .mode-icon{font-size:18px;flex-shrink:0}.mode-pill:hover{border-color:var(--color-brand-light);background:var(--color-brand-soft);color:var(--color-brand)}.mode-pill.active{border-color:var(--color-brand);background:var(--color-brand-soft);color:var(--color-brand);font-weight:600}.quota-bar-wrap{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-5)}.quota-label{display:flex;justify-content:space-between;font-size:var(--font-size-xs);font-weight:600;margin-bottom:var(--space-2);color:var(--color-text-2)}.quota-track{height:6px;background:var(--color-line);border-radius:var(--radius-full);overflow:hidden}.quota-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--color-brand),var(--color-brand-light));transition:width .4s ease}.quota-fill.full{background:var(--color-error)}.quota-upgrade{margin-top:var(--space-3);text-align:center;font-size:var(--font-size-xs);color:var(--color-muted)}.quota-upgrade a{color:var(--color-brand);font-weight:600}.chat-panel{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden;min-height:600px}.chat-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-line);display:flex;align-items:center;justify-content:space-between;background:var(--color-surface-2)}.chat-title{font-size:var(--font-size-base);font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:var(--space-2)}.ai-badge{display:inline-flex;align-items:center;gap:4px;background:var(--color-brand-soft);color:var(--color-brand);padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:700}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);scroll-behavior:smooth}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;gap:var(--space-4);color:var(--color-muted);text-align:center}.chat-empty .empty-icon{font-size:48px;opacity:.4}.chat-empty p{font-size:var(--font-size-sm);max-width:320px}.message{display:flex;gap:var(--space-3);align-items:flex-start}.message.user{flex-direction:row-reverse}.message-avatar{width:32px;height:32px;border-radius:var(--radius-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.message.ai .message-avatar{background:var(--color-brand-soft);color:var(--color-brand)}.message.user .message-avatar{background:var(--color-brand);color:#fff}.message-bubble{max-width:72%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);font-size:var(--font-size-sm);line-height:1.65}.message.ai .message-bubble{background:var(--bubble-ai-bg);border:1px solid var(--bubble-ai-border);color:var(--color-text);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 4px}.message.user .message-bubble{background:var(--bubble-user-bg);color:var(--bubble-user-color);border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg)}.message-bubble strong{font-weight:700}.message-bubble em{font-style:italic}.message.ai .message-bubble code{background:var(--color-surface-2);padding:2px 6px;border-radius:4px;font-family:Fira Code,Cascadia Code,monospace;font-size:.9em}.flashcard-container{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2)}.flashcard{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-5);cursor:pointer;transition:all .2s}.flashcard:hover{border-color:var(--color-brand);box-shadow:var(--shadow-sm)}.flashcard-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-brand);margin-bottom:var(--space-2)}.flashcard-front{font-weight:600;margin-bottom:var(--space-2)}.flashcard-back{color:var(--color-text-2);font-size:var(--font-size-sm);border-top:1px dashed var(--color-line);padding-top:var(--space-2)}.typing-indicator{display:flex;align-items:center;gap:6px;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 4px;width:fit-content}.typing-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-brand-light);animation:typing-bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.chat-input-area{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-line);background:var(--color-surface)}.chat-input-form{display:flex;gap:var(--space-3);align-items:flex-end}.chat-textarea{flex:1;min-height:44px;max-height:160px;resize:none;border:1.5px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font:var(--font-size-sm)/1.5 inherit;color:var(--color-text);background:var(--color-bg);transition:border-color .15s;overflow-y:auto}.chat-textarea:focus{outline:none;border-color:var(--color-brand);background:#fff}.chat-textarea::placeholder{color:var(--color-muted)}.chat-send-btn{width:44px;height:44px;border-radius:var(--radius);background:var(--color-brand);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;color:#fff;font-size:18px}.chat-send-btn:hover{background:var(--color-brand-hover);transform:scale(1.05)}.chat-send-btn:disabled{opacity:.4;transform:none;cursor:not-allowed}.suggestions{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0 var(--space-6) var(--space-3)}.suggestion-chip{background:var(--color-surface-2);border:1px solid var(--color-line);border-radius:var(--radius-full);padding:6px var(--space-3);font-size:var(--font-size-xs);cursor:pointer;color:var(--color-text-2);transition:all .15s;white-space:nowrap}.suggestion-chip:hover{background:var(--color-brand-soft);border-color:var(--color-brand);color:var(--color-brand)}.pricing-hero{text-align:center;padding:var(--space-12) var(--space-6)}.pricing-hero h1{font-size:clamp(2rem,5vw,3.5rem);color:var(--color-text);margin-bottom:var(--space-4)}.pricing-hero p{font-size:var(--font-size-lg);color:var(--color-muted)}.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6);max-width:800px;margin:var(--space-10) auto 0}.plan-card{background:var(--color-surface);border:2px solid var(--color-line);border-radius:var(--radius-xl);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}.plan-card.featured{border-color:var(--color-brand);position:relative;box-shadow:var(--shadow-lg)}.plan-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--color-brand);color:#fff;padding:4px 16px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.plan-name{font-size:var(--font-size-xl);font-weight:800}.plan-price{display:flex;align-items:baseline;gap:6px}.plan-amount{font-size:3rem;font-weight:900;color:var(--color-brand);line-height:1}.plan-period{color:var(--color-muted);font-size:var(--font-size-sm)}.plan-features{display:flex;flex-direction:column;gap:var(--space-3);flex:1}.plan-feature{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-2)}.plan-feature:before{content:"✓";color:var(--color-accent);font-weight:800;flex-shrink:0}.account-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.account-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-6)}.account-card h2{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-4)}.account-info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--color-line);font-size:var(--font-size-sm)}.account-info-row:last-child{border-bottom:none}.account-info-label{color:var(--color-muted)}.account-info-value{font-weight:600}.plan-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700}.plan-chip.free{background:var(--color-surface-2);color:var(--color-muted)}.plan-chip.pro{background:var(--color-brand-soft);color:var(--color-brand)}.admin-layout{display:flex;flex-direction:column;gap:var(--space-6)}.admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.stat-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.stat-value{font-size:var(--font-size-3xl);font-weight:900;color:var(--color-brand);line-height:1}.stat-label{font-size:var(--font-size-sm);color:var(--color-muted)}.admin-table-wrap{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);overflow:hidden}.admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.admin-table th{background:var(--color-surface-2);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.admin-table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-line);color:var(--color-text-2)}.admin-table tr:hover td{background:var(--color-bg)}.legal-page{max-width:780px;margin:0 auto}.legal-page h1{font-size:var(--font-size-3xl);margin-bottom:var(--space-6)}.legal-page h2{font-size:var(--font-size-xl);margin:var(--space-8) 0 var(--space-3);color:var(--color-brand)}.legal-page p,.legal-page li{font-size:var(--font-size-base);line-height:1.75;color:var(--color-text-2);margin-bottom:var(--space-3)}.legal-page ul{padding-left:var(--space-6)}.toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:100;display:flex;flex-direction:column;gap:var(--space-3);pointer-events:none}.toast{padding:var(--space-4) var(--space-5);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:500;box-shadow:var(--shadow-lg);pointer-events:auto;max-width:340px;animation:toast-in .25s ease}.toast.success{background:var(--color-success-soft);color:var(--color-success);border:1px solid rgba(22,163,74,.2)}.toast.error{background:var(--color-error-soft);color:var(--color-error);border:1px solid rgba(220,38,38,.2)}.toast.info{background:var(--color-info-soft);color:var(--color-info);border:1px solid rgba(37,99,235,.2)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg,var(--color-line) 25%,var(--color-surface-2) 50%,var(--color-line) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:20px;height:20px;border:2.5px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.tutor-layout{grid-template-columns:1fr}.tutor-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.account-layout{grid-template-columns:1fr}}@media (max-width: 600px){main{padding:var(--space-4)}.site-header{padding:0 var(--space-4)}.tutor-sidebar{grid-template-columns:1fr}.chat-messages,.chat-input-area{padding:var(--space-4)}.message-bubble{max-width:88%}}
