:root{--color-bg:#f3f6fc;--color-surface:#fff;--color-text:#0f1f3d;--color-muted:#4f5d7a;--color-primary:#1e40af;--color-primary-hover:#17338a;--color-primary-soft:#e6ecfb;--color-on-primary:#fff;--color-accent:#f59e0b;--color-accent-hover:#d98706;--color-on-accent:#2b1a00;--color-border:#8a96b2;--color-line:#dde3f0;--color-danger:#b3261e;--color-danger-bg:#fdecea;--radius:14px;--radius-lg:20px;--shadow-sm:0 1px 2px #0f1f3d0f, 0 1px 3px #0f1f3d14;--shadow-md:0 4px 6px #0f1f3d0f, 0 10px 24px #0f1f3d1a;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--color-bg:#0b1224;--color-surface:#131c36;--color-text:#eaf0ff;--color-muted:#a9b6d6;--color-primary:#8fb0ff;--color-primary-hover:#b0c7ff;--color-primary-soft:#1a2850;--color-on-primary:#0a1330;--color-accent:#fbbf24;--color-accent-hover:#fcd34d;--color-on-accent:#2b1a00;--color-border:#5d6c93;--color-line:#243055;--color-danger:#ffb4ab;--color-danger-bg:#4a1f1b;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px #00000073}}*,:before,:after{box-sizing:border-box}body{font-family:var(--font);color:var(--color-text);background:var(--color-bg);margin:0;font-size:1rem;line-height:1.5}a{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.skip-link{position:absolute;left:-999px}.skip-link:focus{background:var(--color-surface);z-index:10;padding:.5rem 1rem;top:1rem;left:1rem}.site-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem}.brand{color:var(--color-text);font-size:1.125rem;font-weight:700;text-decoration:none}.site-main{max-width:28rem;margin:0 auto;padding:1rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.card h1{margin-top:0;font-size:1.5rem}.card-footer{color:var(--color-muted);margin-bottom:0}.field{margin-bottom:1rem}.field label{margin-bottom:.25rem;font-weight:600;display:block}.field input{width:100%;min-height:2.75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field-hint{color:var(--color-muted);margin:.25rem 0 0;font-size:.875rem}.field-error{color:var(--color-danger);margin:.25rem 0 0;font-size:.875rem}.alert{border-radius:var(--radius);color:var(--color-danger);background:var(--color-danger-bg);margin:0 0 1rem;padding:.75rem 1rem}.btn{width:100%;min-height:2.75rem;font:inherit;color:var(--color-on-primary);background:var(--color-primary);border-radius:var(--radius);cursor:pointer;border:0;padding:.5rem 1rem;font-weight:600}.btn:hover:not(:disabled){background:var(--color-primary-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--color-text);border:1px solid var(--color-border);background:0 0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.field select{width:100%;min-height:2.75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem}.field select[aria-invalid=true]{border-color:var(--color-danger)}.phone-row{gap:.5rem;display:flex}.phone-row input{flex:auto;min-width:0}.phone-select{flex:none;position:relative}.phone-country{min-height:2.75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:.4rem;padding:.5rem .65rem;display:inline-flex}.phone-caret{color:var(--color-muted);font-size:.75rem}.flag{object-fit:cover;width:1.5rem;height:1.125rem;box-shadow:0 0 0 1px var(--color-line);border-radius:3px}.flag-other{text-align:center;box-shadow:none;line-height:1.125rem;display:inline-block}.phone-list{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-width:15rem;max-height:16rem;box-shadow:var(--shadow-md);margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;overflow-y:auto}.phone-list li{cursor:pointer;border-radius:10px;align-items:center;gap:.6rem;min-height:2.5rem;padding:.35rem .6rem;display:flex}.phone-list li.is-active{background:var(--color-primary-soft)}.phone-list li[aria-selected=true]{font-weight:700}.phone-name{flex:auto}.phone-dial{color:var(--color-muted);font-variant-numeric:tabular-nums}.choice{border:1px solid var(--color-border);border-radius:var(--radius);margin:0 0 1rem;padding:.75rem 1rem}.choice legend{padding:0 .25rem;font-weight:600}.choice label{align-items:center;gap:.5rem;min-height:2.75rem;display:flex}.choice input{width:1.25rem;height:1.25rem}a.btn{text-align:center;margin-bottom:.75rem;padding-block:0;line-height:2.75rem;text-decoration:none;display:block}:root{--color-success:#1a7f37}@media (prefers-color-scheme:dark){:root{--color-success:#7ee2a0}}.prose{overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose h2{font-size:1.25rem}.prose h3{font-size:1.125rem}.prose pre{background:var(--color-bg);border-radius:var(--radius);padding:.75rem;overflow-x:auto}.prose code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-border);padding:.25rem .75rem}.prose blockquote{border-inline-start:4px solid var(--color-border);color:var(--color-muted);margin-inline:0;padding-inline-start:1rem}.katex-display{overflow:auto hidden}.lesson-meta{color:var(--color-muted);margin:0 0 .25rem;font-size:.875rem}.lesson-footer{margin-top:1.5rem}.exercise{border:1px solid var(--color-border);border-radius:var(--radius);margin:1.5rem 0;padding:1rem}.exercise fieldset{border:0;min-width:0;margin:0 0 1rem;padding:0}.exercise-legend{align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:700;display:flex}.badge{color:var(--color-success);border:1px solid var(--color-success);border-radius:999px;padding:.125rem .5rem;font-size:.75rem}.choice-row label{border-radius:var(--radius);cursor:pointer;align-items:center;gap:.75rem;min-height:2.75rem;padding:.25rem .5rem;display:flex}.choice-row input{flex:none;width:1.25rem;height:1.25rem}.choice-row.is-correct label{outline:2px solid var(--color-success)}.choice-row.is-wrong label{outline:2px solid var(--color-danger)}.choice-mark{margin-left:auto;font-size:.875rem;font-weight:600}.feedback{border-radius:var(--radius);border:2px solid;margin-bottom:1rem;padding:.75rem 1rem}.feedback-ok{border-color:var(--color-success)}.feedback-ko{border-color:var(--color-danger)}.feedback-title{margin:0 0 .5rem;font-weight:700}.notice{margin-bottom:1rem}.back-link{margin-bottom:1rem;display:inline-block}.level-browser{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem;padding:.75rem 1rem}.level-browser summary{cursor:pointer;align-items:center;min-height:2.75rem;font-weight:600;display:flex}.course-list,.lesson-list{margin:0;padding:0;list-style:none}.course-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}.course-title{margin:0 0 .25rem;font-size:1.25rem}.course-meta,.course-progress{color:var(--color-muted);margin:0 0 .5rem;font-size:.875rem}progress{width:100%;height:.75rem;accent-color:var(--color-primary)}.chapter{margin-top:1rem}.chapter h2{margin-top:0;font-size:1.125rem}.lesson-list li{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem 0;display:flex}.lesson-list li:last-child{border-bottom:0}.lesson-list a{flex:12rem}.lesson-minutes{color:var(--color-muted);font-size:.875rem}.done{color:var(--color-success);font-size:.875rem;font-weight:600}.prose img,.resource-figure img{border-radius:var(--radius);max-width:100%;height:auto;display:block}.resources{margin-top:1.5rem}.resource-list{margin:0;padding:0;list-style:none}.resource-item{border-bottom:1px solid var(--color-border);padding:.75rem 0}.resource-item:last-child{border-bottom:0}.resource-title{margin:0 0 .5rem;font-weight:600}.resource-meta{color:var(--color-muted);margin-left:.5rem;font-size:.875rem}.resource-figure{margin:0}.resource-figure figcaption{color:var(--color-muted);margin-top:.25rem;font-size:.875rem}.resource-item audio{width:100%}.video-frame{aspect-ratio:16/9;border-radius:var(--radius);border:0;width:100%;margin-bottom:.5rem;display:block}.link-row{margin:-.25rem 0 1rem;font-size:.875rem}.verify{margin:1rem 0}.verify h2{margin-top:0;font-size:1.125rem}.btn+.btn{margin-top:.5rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.progress-summary{margin:1rem 0}.panel{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem}.panel h2{margin:0 0 .5rem;font-size:1.125rem}a.btn.resume{flex-direction:column;align-items:center;height:auto;min-height:3.5rem;padding-block:.5rem;line-height:1.3;display:flex}.resume-course{opacity:.9;font-size:.875rem;font-weight:400}.streak-number{margin:0;font-size:1.125rem}.streak-number strong{font-size:2rem;line-height:1.2}.week{gap:.25rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.week-day{color:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;flex:1;align-items:center;padding:.25rem 0;font-size:.875rem;display:flex}.week-day.is-active{color:var(--color-success);border-color:var(--color-success);font-weight:700}.week-label{text-transform:capitalize;font-size:.75rem}.totals{gap:1rem;margin:0;display:flex}.totals div{flex:1}.totals dt{color:var(--color-muted);font-size:.875rem}.totals dd{margin:0;font-size:1.5rem;font-weight:700}.badge-list{margin:0;padding:0;list-style:none}.badge-item{min-height:2.5rem;color:var(--color-muted);border-bottom:1px solid var(--color-border);justify-content:space-between;gap:.5rem;padding:.5rem 0;display:flex}.badge-item:last-child{border-bottom:0}.badge-item.is-earned{color:var(--color-text);font-weight:600}.badge-item.is-earned .badge-state{color:var(--color-success)}:root{--color-highlight:#fff0a0}@media (prefers-color-scheme:dark){:root{--color-highlight:#5e4d00}}mark{color:inherit;background:var(--color-highlight);border-radius:2px;padding:0 .1em}.search-form{gap:.5rem;margin-bottom:1rem;display:flex}.search-form input{min-width:0;min-height:2.75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);flex:1;padding:.5rem .75rem}.search-form .btn{flex:none;width:auto}.result-list{margin:0 0 1rem;padding:0;list-style:none}.result{border-bottom:1px solid var(--color-border);padding:.75rem 0}.result:last-child{border-bottom:0}.result-title{font-weight:600}.result-meta{color:var(--color-muted);margin:.25rem 0;font-size:.875rem}.result-excerpt{margin:0}.exam-timer{font-variant-numeric:tabular-nums;margin:0;font-size:2rem;font-weight:700}.exam-timer.is-low{color:var(--color-danger)}.save-status{color:var(--color-muted);margin:0 0 1rem;font-size:.875rem}.question-points{color:var(--color-muted);margin:0 0 .5rem;font-size:.875rem}.exam-question{border:0;min-width:0;margin:0 0 1rem;padding:0}.exam-runner h2:focus{outline:none}.exam-nav{gap:.5rem;margin:1rem 0;display:flex}.exam-nav .btn{flex:1}.question-grid{flex-wrap:wrap;gap:.375rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.grid-item{width:2.75rem;height:2.75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer}.grid-item.is-answered{border-color:var(--color-success);font-weight:700}.grid-item.is-current{outline:3px solid var(--color-primary);outline-offset:1px}.confirm{border:2px solid var(--color-primary);border-radius:var(--radius);margin-bottom:1rem;padding:.75rem 1rem}.confirm .btn+.btn{margin-top:.5rem}.score{margin:0;font-size:1.25rem}.score strong{font-size:3rem;line-height:1.1}.review-list,.review-choices{margin:0;padding:0;list-style:none}.review-question{border-bottom:1px solid var(--color-border);padding:1rem 0}.review-question.is-wrong h3{color:var(--color-danger)}.review-question h3{margin:0;font-size:1.0625rem}.review-choices li{border-radius:var(--radius);padding:.25rem .5rem}.review-choices li.is-correct{outline:2px solid var(--color-success)}.exam-facts{margin:.5rem 0;font-weight:600}.exam-start{margin:1rem 0}.course-title .badge{vertical-align:middle;margin-left:.5rem}.credentials-box{margin-top:1rem}.credentials{border:2px solid var(--color-primary);border-radius:var(--radius);margin:1rem 0;padding:1rem}.credentials dt{color:var(--color-muted);font-size:.875rem}.credentials dd{overflow-wrap:anywhere;margin:0 0 .75rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:1.5rem;font-weight:700}.credentials dd:last-child{margin-bottom:0}.exam-breadcrumb{color:var(--color-muted);margin:0 0 .75rem;font-size:.875rem}.exam-context{border:1px solid var(--color-border);border-radius:var(--radius);margin:0 0 1rem;padding:.5rem .75rem}.exam-context summary{cursor:pointer;font-weight:600}.exam-context .prose,.grid-group+.grid-group{margin-top:.5rem}.grid-group-title{color:var(--color-muted);margin:0 0 .25rem;font-size:.875rem}.review-block{border-left:3px solid var(--color-primary);margin-top:1.25rem;padding:.25rem 0 .25rem .75rem}.review-block.depth-2{margin-left:.75rem}.review-block.depth-3{margin-left:1.5rem}.review-block-title{margin:0;font-size:1.125rem;font-weight:700}.review-question-title{margin:0;font-size:1.0625rem;font-weight:700}.review-question.is-wrong .review-question-title{color:var(--color-danger)}.field textarea{width:100%;min-height:7rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;padding:.5rem .75rem}.field textarea[aria-invalid=true]{border-color:var(--color-danger)}.checklist{margin:0 0 1rem;padding:0;list-style:none}.checklist li{padding:.25rem 0}.checklist .is-done{color:var(--color-success)}.tutor-section{margin-top:1.5rem}.slot-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.slot-row select{min-height:2.75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem}.slot-row .btn,.absence-list .btn,.pager .btn{width:auto;margin:0}.week-list,.absence-list,.offer-list{margin:0 0 1rem;padding:0;list-style:none}.absence-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.offer-list li{padding:.25rem 0}.tutor-filters{margin-bottom:1.5rem}.pager{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.tutor-bio{white-space:pre-line}.tutor-geo,.view-toggle{margin-bottom:1rem}.tutor-geo .btn,.view-toggle .btn{width:auto}.tutor-map{isolation:isolate;border-radius:.5rem;height:22rem;margin-bottom:.5rem}.booking{margin-top:1.5rem}.slot-day h3{text-transform:capitalize;margin:1rem 0 .5rem;font-size:1rem}.slot-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.slot-button{width:auto;min-width:5rem}.slot-button[aria-pressed=true]{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.slot-pages{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.slot-pages .btn{width:auto}.booking-list{margin:0 0 1rem;padding:0;list-style:none}.booking-status{font-weight:600}.booking-actions{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.booking-actions .btn{width:auto}.page-links{flex-wrap:wrap;gap:.25rem 1.25rem;margin:.5rem 0 1rem;display:flex}.page-links .back-link{margin-bottom:0}.tutor-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.25rem;margin:0 0 1rem;display:flex}.tutor-tabs a{color:var(--color-text);border-bottom:3px solid #0000;padding:.5rem .75rem;text-decoration:none}.tutor-tabs a:hover{border-bottom-color:var(--color-border)}.tutor-tabs a[aria-current=page]{border-bottom-color:var(--color-primary);font-weight:600}.space-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin-bottom:1rem;display:grid}.space-card .btn{margin-top:.75rem}.space-count{margin:0;font-size:2rem;font-weight:700}.space-list{margin:0;padding:0;list-style:none}.space-list li{flex-direction:column;padding:.5rem 0;display:flex}.tutor-avatar{--avatar-size:3.5rem;width:var(--avatar-size);height:var(--avatar-size);font-weight:700;font-size:calc(var(--avatar-size) * .38);color:#fff;background:hsl(var(--avatar-hue,220) 45% 32%);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.tutor-avatar.is-lg{--avatar-size:5.5rem}.tutor-avatar img{object-fit:cover;width:100%;height:100%}.tutor-card{align-items:flex-start;gap:1rem;display:flex}.tutor-card-body{flex:1;min-width:0}.tutor-tagline{color:var(--color-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.25rem 0;display:-webkit-box;overflow:hidden}.tutor-from{margin:.25rem 0 .5rem;font-weight:600}.tutor-detail>.card{margin-bottom:1rem}.tutor-header{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.tutor-header-body{flex:1;min-width:14rem}.tutor-header-body h1{margin:0 0 .25rem}.tutor-cta{width:auto;margin-top:.5rem;text-decoration:none}.offer-group h3{color:var(--color-muted);margin:.75rem 0 .25rem;font-size:1rem}.week-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.5rem;display:grid}.week-grid li{border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem .75rem}.week-grid li.is-off{color:var(--color-muted)}@media (width<=30rem){.tutor-card{flex-direction:column}}.photo-manager{flex-wrap:wrap;align-items:flex-start;gap:1.25rem;display:flex}.photo-manager-body{flex:1;min-width:14rem}.tutor-headline{color:var(--color-muted);margin:0 0 .25rem;font-style:italic}.photo-preview{object-fit:cover;border-radius:50%;width:6rem;height:6rem;margin:.5rem 0;display:block}.video-preview{background:#000;border-radius:.5rem;width:100%;max-width:28rem;margin:.75rem 0;display:block;transform:scaleX(-1)}.video-status{color:var(--color-muted);margin:0 0 .5rem}.video-stage{aspect-ratio:4/3;background:#000;border-radius:.5rem;max-width:48rem;position:relative;overflow:hidden}.video-remote{object-fit:contain;width:100%;height:100%}.video-local{border:2px solid var(--color-surface);background:#222;border-radius:.375rem;width:28%;min-width:6rem;position:absolute;bottom:.5rem;right:.5rem;transform:scaleX(-1)}.video-controls{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.btn-danger{color:#fff;background:#b3261e;border-color:#b3261e}.btn-danger:hover:not(:disabled){background:#8c1d18}.video-finished{justify-items:start;gap:.75rem;display:grid}.audio-meters{gap:.5rem;max-width:28rem;margin-top:.75rem;display:grid}.audio-meter{grid-template-columns:11rem 1fr;align-items:center;gap:.5rem;font-size:.9rem;display:grid}.audio-meter-bar{background:var(--color-bg);border:1px solid var(--color-border);border-radius:.375rem;height:.75rem;overflow:hidden}.audio-meter-fill{background:var(--color-primary);height:100%;transition:width .1s linear}body{-webkit-font-smoothing:antialiased;line-height:1.55}h1,h2,h3{letter-spacing:-.01em;line-height:1.2}h1{font-size:1.75rem;font-weight:800}h2{font-size:1.25rem;font-weight:700}.icon{flex:none;width:1.25rem;height:1.25rem}.site-header{z-index:20;background:var(--color-surface);border-bottom:1px solid var(--color-line);padding:0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:64rem;margin:0 auto;padding:.7rem 1rem;display:flex}.brand{color:var(--color-text);align-items:center;gap:.6rem;font-size:1.125rem;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{border-radius:9px;flex:none;width:2rem;height:2rem}.main-nav{gap:.25rem;display:flex}.nav-link{min-height:2.5rem;color:var(--color-muted);border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-weight:600;text-decoration:none;display:inline-flex}.nav-link:hover,.nav-link.router-link-active{color:var(--color-primary);background:var(--color-primary-soft)}.site-main{max-width:30rem;padding:1.25rem 1rem 2rem}.site-main-wide{max-width:46rem}.site-main-xwide{max-width:64rem}.site-footer{max-width:64rem;color:var(--color-muted);text-align:center;margin:0 auto;padding:1.5rem 1rem 2rem;font-size:.875rem}.site-footer p{margin:0}@media (width<=47.99rem){.main-nav{z-index:30;padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-line);justify-content:space-around;gap:0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0f1f3d14}.nav-link{text-align:center;border-radius:var(--radius);flex-direction:column;flex:1;gap:.1rem;min-height:3rem;padding:.35rem .25rem;font-size:.75rem}.site-main.has-tabbar,.site-footer{padding-bottom:5.5rem}}@media (width>=48rem){.site-main{padding-inline:1.5rem}}.card{border-color:var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.panel{background:var(--color-surface);border-color:var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.25rem}.level-browser{border-color:var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.exercise{border-color:var(--color-line);border-radius:var(--radius-lg)}.btn{border-radius:999px;font-weight:700;transition:background .15s,box-shadow .15s,transform 50ms;box-shadow:0 1px 2px #0f1f3d2e}.btn:active:not(:disabled){transform:translateY(1px)}.btn-secondary{color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--color-primary-soft)}.btn-accent{color:var(--color-on-accent);background:var(--color-accent)}.btn-accent:hover:not(:disabled){background:var(--color-accent-hover)}a.btn.btn-inline,.btn.btn-inline{width:auto;margin-bottom:0;padding-inline:1.5rem;display:inline-block}a.btn.btn-inline{line-height:2.75rem}.field input,.field select{background:var(--color-surface)}.field input:focus,.field select:focus{border-color:var(--color-primary)}.choice{border-color:var(--color-line);border-radius:var(--radius)}progress{appearance:none;background:var(--color-primary-soft);border:0;border-radius:999px;height:.625rem;overflow:hidden}progress::-webkit-progress-bar{background:var(--color-primary-soft);border-radius:999px}progress::-webkit-progress-value{background:var(--accent,var(--color-primary));border-radius:999px}progress::-moz-progress-bar{background:var(--accent,var(--color-primary));border-radius:999px}.hero{color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:radial-gradient(120% 140% at 100% 0,#f59e0b61,#0000 55%),linear-gradient(135deg,#1e3a8a,#2b55d0);margin-bottom:1.25rem;padding:1.5rem}.hero h1{color:#fff;margin:.25rem 0 .5rem}.hero-kicker{letter-spacing:.08em;text-transform:uppercase;color:#ffffffd9;margin:0;font-size:.8125rem;font-weight:700}.hero-roles{color:#ffffffeb;margin:0 0 .75rem}.hero .btn{margin-top:.25rem}.pay-reminder{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface));border:1.5px solid var(--color-accent);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:1.25rem;padding:1rem 1.25rem;display:flex}.pay-reminder-icon{width:2.5rem;height:2.5rem;color:var(--color-on-accent);background:var(--color-accent);border-radius:50%;place-items:center;display:grid}.pay-reminder-body{flex:14rem}.pay-reminder-body p{margin:0}.pay-reminder-title{font-weight:800}.tiles{grid-template-columns:1fr;gap:.75rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}@media (width>=36rem){.tiles{grid-template-columns:repeat(2,1fr)}}@media (width>=56rem){.tiles{grid-template-columns:repeat(3,1fr)}}.tile{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);grid-template-columns:auto 1fr;align-items:center;column-gap:.9rem;padding:1rem 1.1rem;transition:box-shadow .15s,transform .15s,border-color .15s;display:grid;position:relative}.tile:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.tile:focus-within{outline:3px solid var(--color-primary);outline-offset:2px}.tile-icon{width:2.75rem;height:2.75rem;color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius);grid-row:1/span 2;place-items:center;display:grid}.tile-icon .icon{width:1.5rem;height:1.5rem}.tile-link{color:var(--color-text);font-weight:700;text-decoration:none}.tile-link:after{content:"";border-radius:inherit;position:absolute;inset:0}.tile-link:focus-visible{outline:none}.tile-hint{color:var(--color-muted);grid-column:2;margin:0;font-size:.875rem}.dashboard-foot{text-align:center;margin-top:2rem}a.btn.resume{color:var(--color-on-accent);background:var(--color-accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}a.btn.resume:hover{background:var(--color-accent-hover)}.course-list{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem;display:grid}.course-list li{margin-bottom:0}.course-card{--accent:var(--color-primary);border:1px solid var(--color-line);border-top:5px solid var(--accent);border-radius:var(--radius-lg);height:100%;box-shadow:var(--shadow-sm);padding:1.25rem;transition:box-shadow .15s,transform .15s;position:relative}.course-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-title a{color:var(--color-text);text-decoration:none}.course-title a:after{content:"";position:absolute;inset:0}.badge{border-radius:999px}.booking-status{color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;padding:.2rem .7rem;font-size:.8125rem;font-weight:700;display:inline-block}.tutor-card{border-color:var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.field textarea{width:100%;min-height:5rem;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical;padding:.6rem .75rem;line-height:1.5;display:block}.field textarea:focus{border-color:var(--color-primary)}.field textarea[readonly]{background:var(--color-bg)}.course-status{color:var(--color-text);background:var(--color-line);border-radius:999px;margin:0 0 .5rem;padding:.2rem .7rem;font-size:.8125rem;font-weight:700;display:inline-block}.course-status.is-submitted{color:var(--color-on-accent);background:color-mix(in srgb, var(--color-accent) 35%, var(--color-surface))}.course-status.is-published{color:var(--color-success);background:color-mix(in srgb, var(--color-success) 14%, var(--color-surface))}.review-note{background:color-mix(in srgb, var(--color-accent) 16%, var(--color-surface));border-left:4px solid var(--color-accent);border-radius:var(--radius);margin:0 0 1rem;padding:.75rem 1rem}.problem-list{color:var(--color-danger);background:var(--color-danger-bg);border-radius:var(--radius);margin:0 0 1rem;padding:.75rem 1rem .75rem 2rem}.chapter-card{margin-bottom:1rem}.chapter-card h3{margin-top:0}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem;margin-top:.75rem;display:flex}.inline-form .field{flex:14rem;margin-bottom:0}.course-actions{margin-top:1.5rem}.editor-bar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.preview{background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius);min-height:8rem;padding:.75rem 1rem}.exercise-form .choice-edit{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.exercise-form .choice-edit input[type=text]{min-height:2.5rem;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex:1;padding:.4rem .6rem}.exercise-form .choice-edit input[type=radio],.exercise-form .choice-edit input[type=checkbox]{flex:none;width:1.25rem;height:1.25rem}.exercise-admin-list{margin:0 0 1rem;padding:0;list-style:none}.exercise-admin-list li{margin-bottom:.75rem}.choice-summary{margin:.5rem 0;padding:0;list-style:none}.choice-summary .is-correct{color:var(--color-success);font-weight:700}.bare{border:0;min-width:0;margin:0;padding:0}.back-link{font-weight:600;text-decoration:none}.course-hero{--accent:var(--color-primary);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, var(--color-surface)), var(--color-surface) 70%);border:1px solid var(--color-line);border-left:6px solid var(--accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;padding:1.5rem;position:relative;overflow:hidden}.course-hero h1{margin:.25rem 0 .5rem}.course-hero .course-meta{letter-spacing:.02em;margin:0;font-weight:700}.course-description{max-width:40rem;margin:0 0 1rem}.course-hero progress{accent-color:var(--accent)}.lesson-list{counter-reset:lesson}.lesson-list li{counter-increment:lesson;border-color:var(--color-line)}.lesson-list li:before{text-align:center;width:1.75rem;height:1.75rem;color:var(--color-primary);background:var(--color-primary-soft);content:counter(lesson);border-radius:999px;flex:none;font-size:.8125rem;font-weight:700;line-height:1.75rem}.lesson-list a{font-weight:600;text-decoration:none}.lesson-list a:hover{text-decoration:underline}.done{background:color-mix(in srgb, var(--color-success) 12%, var(--color-surface));border-radius:999px;padding:.1rem .6rem}.lesson-card{border-top:5px solid var(--color-primary)}.lesson-meta a{font-weight:600;text-decoration:none}.lesson-card .prose,.lesson-card>p,.lesson-card li{line-height:1.7}.lesson-footer{border-top:1px solid var(--color-line);padding-top:1.25rem}.exercise{background:color-mix(in srgb, var(--color-primary) 3%, var(--color-surface));box-shadow:var(--shadow-sm);padding:1.25rem}.exercise-legend{font-size:1.0625rem}.choice-row label{background:var(--color-surface);border:1.5px solid var(--color-line);margin-bottom:.4rem;padding:.5rem .9rem;transition:border-color .15s,background .15s}.choice-row label:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.choice-row label:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-soft)}.choice-row input{accent-color:var(--color-primary)}.choice-row.is-correct label{background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface));outline-offset:-2px}.choice-row.is-wrong label{background:var(--color-danger-bg);outline-offset:-2px}.feedback{border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-sm);border-width:0 0 0 5px}.feedback-ok{background:color-mix(in srgb, var(--color-success) 8%, var(--color-surface))}.feedback-ko{background:var(--color-danger-bg)}.exam-runner{padding:1.5rem}.exam-timer{color:var(--color-primary);background:var(--color-primary-soft);border-radius:999px;padding:.25rem 1rem;font-size:1.75rem;display:inline-block}.exam-timer.is-low{color:var(--color-danger);background:var(--color-danger-bg)}.question-grid .grid-item{border-radius:999px}.question-grid .grid-item.is-answered{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.exam-facts{background:var(--color-primary-soft);border-radius:999px;padding:.25rem .8rem;font-size:.875rem;display:inline-block}.auth-card{border-top:5px solid var(--color-accent);box-shadow:var(--shadow-md);margin-top:1.5rem;padding:2rem 1.5rem}.auth-card h1{text-align:center;margin-top:0}.auth-card .card-footer{text-align:center;border-top:1px solid var(--color-line);margin-top:1.25rem;padding-top:1rem}.booking-list{gap:1rem;padding:0;list-style:none;display:grid}.booking-card{border-left:5px solid var(--color-primary)}.tutor-filters{background:color-mix(in srgb, var(--color-primary) 4%, var(--color-surface))}.tutor-header{background:linear-gradient(135deg, var(--color-primary-soft), var(--color-surface) 75%)}.slot-button{border-radius:999px}.pager .btn{box-shadow:none}.info{color:var(--color-muted)}.booking-list li{margin-bottom:0}.create-cta{border-left:5px solid var(--color-accent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:1.5rem;display:flex}.create-cta p{margin:0}.stat-cards{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;margin:1rem 0;padding:0;list-style:none;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-line);border-top:5px solid var(--color-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:.25rem;padding:1.1rem 1.25rem;display:flex}.stat-card:first-child{border-top-color:var(--color-accent)}.stat-label,.stat-hint{color:var(--color-muted);font-size:.875rem}.stat-value{font-variant-numeric:tabular-nums;font-size:1.5rem}.month-bars{align-items:stretch;gap:.75rem;height:11rem;margin:1rem 0;display:flex}.month-bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;font-size:.75rem;display:flex}.month-bar i{background:var(--color-primary);border-radius:8px 8px 0 0;width:100%;display:block}.month-amount{font-variant-numeric:tabular-nums;color:var(--color-muted);margin-bottom:.2rem}.month-name{text-transform:capitalize;margin-top:.3rem;font-weight:700}.month-table{border-collapse:collapse;width:100%;margin-bottom:1.5rem}.month-table th,.month-table td{text-align:left;border-bottom:1px solid var(--color-line);padding:.5rem .75rem}.month-table tbody th{text-transform:capitalize;font-weight:600}.auth-logo{border-radius:var(--radius);width:9.5rem;height:auto;margin:0 auto 1.25rem;display:block}.badge-premium{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent);font-weight:700}.premium-benefits ul{margin:.5rem 0 0;padding-left:1.25rem}.premium-benefits li{margin-bottom:.35rem}.premium-active{background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface));border-radius:var(--radius);padding:.75rem 1rem}.premium-form{margin-top:1rem}.resource-thumb{border-radius:8px;max-width:160px;max-height:110px;margin-bottom:.4rem;display:block}.resource-form{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.moderation-card{border-left:4px solid var(--color-accent)}.community-rules{border-left:4px solid var(--color-accent);padding-left:.75rem}.community-body{white-space:pre-wrap;overflow-wrap:anywhere}.community-answers{gap:.75rem;padding:0;list-style:none;display:grid}.report-menu summary{cursor:pointer;color:var(--color-muted);font-size:.875rem}.report-choices{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.lesson-preview{flex:100%;margin:.25rem 0 .5rem}.lesson-preview summary{cursor:pointer;color:var(--color-primary);font-weight:600}.lesson-preview>:not(summary){margin-top:.75rem}
