:root{font-family:Aptos,"Segoe UI",Inter,Arial,sans-serif;color:#1a2f48;background:#f2f6fb;font-size:17px;font-synthesis:none;--navy:#123b68;--blue:#175ba0;--deep:#0c2b50;--ink:#1c314b;--muted:#526985;--border:#d6e1ef;--light:#eff5fc;--white:#fff;--good:#17715f;--softgood:#e9f7f1;--warn:#a05e13;--softwarn:#fff5e6;--radius:17px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:var(--blue)}a:hover{text-decoration-thickness:2px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #e9a83c;outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(2rem,3.6vw,2.75rem);line-height:1.12;letter-spacing:-.04em;color:var(--deep);margin-bottom:16px}h2{font-size:1.43rem;letter-spacing:-.025em;color:var(--navy);margin-bottom:12px}h3{font-size:1.12rem;color:var(--navy);margin-bottom:9px}p{line-height:1.56;margin-bottom:15px}small{font-size:.85rem}hr{height:1px;border:0;background:var(--border);margin:23px 0}.skip{position:absolute;top:-80px;left:12px;z-index:100;background:var(--white);padding:12px}.skip:focus{top:12px}.tricolore{height:5px;display:grid;grid-template-columns:1fr 1fr 1fr}.tricolore span:nth-child(1){background:#2257a5}.tricolore span:nth-child(2){background:#fff}.tricolore span:nth-child(3){background:#df4855}.head{background:var(--white);border-bottom:1px solid var(--border)}.head-inner{max-width:1600px;margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}.logo-mark{background:var(--navy);color:white;font-weight:800;font-size:23px;padding:9px 10px;border-radius:12px}.logo strong{display:block;font-size:1.1rem}.logo small{display:block;letter-spacing:.08em;color:var(--muted);font-size:.66rem;margin-top:3px}.head-right{display:flex;align-items:center;gap:13px}.head-sub{color:var(--muted);font-size:.86rem}.head-link,.font-btn{border:1px solid var(--border);border-radius:11px;padding:10px 12px;background:white;color:var(--navy);font-weight:700;text-decoration:none;min-height:43px}.font-btn{min-width:48px}.layout{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:253px minmax(0,1fr);align-items:start;min-height:calc(100vh - 88px)}.sidebar{position:sticky;top:0;min-height:calc(100vh - 88px);padding:28px 18px 26px 26px;border-right:1px solid var(--border);background:#eaf1fa}.sidebar-top{padding:0 12px 18px}.smallcap,.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:800}.sidebar-top strong{display:block;color:var(--deep);margin-top:5px;font-size:1.07rem}.side-nav{display:grid;gap:6px}.nav-item{width:100%;border:1px solid transparent;background:transparent;text-align:left;color:#315476;padding:12px 12px;border-radius:13px;font-size:.94rem;font-weight:650;display:flex;align-items:center;gap:12px;line-height:1.25}.nav-item span{font-size:1.15rem;width:24px;flex-shrink:0;text-align:center}.nav-item:hover{background:white}.nav-item.active{background:white;color:var(--navy);border-color:#c2d4ea;box-shadow:0 3px 12px #123b6810}.nav-group{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#54728b;font-weight:800;padding:20px 11px 5px}.side-tip{margin-top:25px;border-top:1px solid #cfddeb;padding:20px 10px;color:#526a84;display:flex;align-items:flex-start;gap:8px;font-size:.77rem;line-height:1.5}.save-dot{display:inline-block;width:9px;height:9px;background:#198777;border-radius:50%;margin-top:5px;flex-shrink:0}.maincol{min-width:0}main{max-width:1210px;padding:35px clamp(20px,4vw,57px) 65px;margin:0 auto;min-height:60vh}footer{padding:17px 38px;border-top:1px solid var(--border);color:#61748b;display:flex;justify-content:space-between;gap:15px;font-size:.77rem}.hero{background:linear-gradient(118deg,#123d6f,#1c568f);color:white;border-radius:23px;padding:clamp(24px,4vw,45px);position:relative;overflow:hidden;box-shadow:0 14px 32px #15436d18;margin-bottom:24px}.hero:after{content:"FR";position:absolute;right:18px;bottom:-58px;color:#ffffff0c;font-size:200px;line-height:1;font-weight:800;pointer-events:none}.hero h1,.hero h2{color:white;max-width:810px}.hero p{color:#e2efff;max-width:770px}.hero .eyebrow{color:#bcdbff}.hero .actions{position:relative;z-index:1}.hero .secondary{border-color:#c6ddf8;color:#fff;background:#ffffff14}.hero .secondary:hover{background:#ffffff24}.tagrow{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.tag{font-size:.81rem;border:1px solid #aecce7;padding:7px 10px;border-radius:99px;color:#edf5ff;background:#ffffff12}.surface,.goalcard,.taskbox{background:white;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 3px 14px #193e6308}.surface{padding:clamp(20px,2.8vw,29px);margin-bottom:18px}.muted{color:var(--muted)}.tiny{font-size:.85rem}.lead{font-size:1.03rem;color:#44627f}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-end;margin:29px 0 13px}.section-head p{margin:0;color:var(--muted)}.section-head h2{margin:0 0 5px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.goalgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.goalcard{padding:21px;min-width:0;display:flex;flex-direction:column;gap:9px}.goalcard .card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.goalnum{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e6f0fd;color:#1f5694;font-weight:800;font-size:1rem}.goalcard h3{font-size:1.13rem;margin:3px 0}.goalcard p{font-size:1rem;color:#526987;margin:0 0 5px}.goalcard .actions{margin-top:auto}.pill{font-size:.72rem;font-weight:800;color:#466887;background:#f0f5fb;padding:6px 9px;border-radius:100px;white-space:nowrap}.pill.good{color:var(--good);background:var(--softgood)}.pill.work{color:#875c1f;background:#fff1de}.meter{height:9px;border-radius:99px;background:#e6edf6;overflow:hidden}.meter span{display:block;height:100%;background:#3073b4;border-radius:99px;transition:width .3s}.meter.good span{background:#188371}.btn{border-radius:11px;border:1px solid transparent;padding:11px 16px;min-height:44px;font-weight:730;line-height:1.2;background:#eff5fc;color:#164875;text-align:center}.btn:hover{filter:brightness(.96)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:#175c9e;color:white;border-color:#175c9e}.btn.secondary{background:white;color:#17518c;border-color:#c5d8eb}.btn.subtle{background:transparent;border-color:#cad8e8;color:#315a7e}.btn.good{color:#075e52;border-color:#9acdbb;background:#eaf9f1}.btn.block{width:100%}.btn.small{min-height:38px;padding:8px 11px;font-size:.85rem}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.tile{display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid var(--border);border-radius:16px;background:white}.tile .btn{align-self:flex-start;margin-top:auto}.tile h3{margin:0}.tile p{margin:0;flex-grow:1;color:#4e6985;font-size:1rem}.tile.feature{background:#e9f2fc;border-color:#c6dcf3}.stepnum{font-weight:850;font-size:.87rem;color:#2170b5}.callout{padding:15px 18px;border-left:4px solid #518ac5;border-radius:0 12px 12px 0;background:#eff6ff;color:#2b4c70;margin:15px 0}.callout p:last-child{margin-bottom:0}.callout.positive{background:var(--softgood);border-left-color:#41a68c;color:#1e5f54}.callout.attention{background:var(--softwarn);border-left-color:#d79939;color:#795723}.linebox{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--border)}.linebox:last-child{border-bottom:0}.linebox strong{color:var(--deep)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat{background:white;border:1px solid var(--border);border-radius:15px;padding:16px}.stat strong{font-size:1.6rem;color:var(--navy);display:block}.stat span{font-size:.78rem;color:#5c7186}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:19px}.tab{border:1px solid #ccdcec;background:#f1f6fc;color:#315a7c;border-radius:11px;padding:10px 13px;min-height:46px;font-weight:700;font-size:.92rem}.tab.active{border-color:#175c9e;background:#175c9e;color:#fff}.taskbox{padding:clamp(20px,3.3vw,31px);margin-bottom:19px}.task-top{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:.82rem;margin-bottom:17px}.task-prompt{font-size:1.16rem;color:var(--deep);font-weight:700;line-height:1.42;margin-bottom:16px}.task-prompt [lang="fr"],.fr{font-weight:750;color:#0d4f92}.example{background:#eaf3fd;border:1px solid #c9def3;border-radius:12px;padding:15px;color:#153f68;margin:13px 0;font-size:1.05rem}.options{display:grid;gap:9px;margin:14px 0}.opt{width:100%;background:#f7fbff;text-align:left;border:1.5px solid #d2e0ef;border-radius:12px;padding:14px 16px;color:#244966;min-height:53px;font-weight:600;display:flex;gap:13px;align-items:center}.opt .round{border:2px solid #8baac8;border-radius:50%;height:22px;width:22px;display:inline-grid;place-items:center;font-size:.65rem;flex:0 0 22px}.opt.selected{background:#e9f3fe;border-color:#2571b7}.opt.selected .round{background:#2066a6;color:white;border-color:#2066a6}.opt.correct{border-color:#2e9277;background:#ebf8f1}.opt.wrong{border-color:#cc935c;background:#fff5eb}.opt:disabled{cursor:default;opacity:1}.entry,.writing{display:block;width:100%;padding:14px 15px;border:1.5px solid #bfcfe2;background:#fcfdff;border-radius:12px;color:var(--ink);font-size:1.07rem;min-height:52px}.writing{resize:vertical;min-height:102px;line-height:1.55}label.field{display:block;margin-bottom:8px;font-weight:700;color:#365a7d}.note{color:var(--muted);font-size:.96rem}.feedback{margin:18px 0 12px;padding:15px 17px;border-radius:13px;background:#f1f6fc;border:1px solid #d4e3f0}.feedback strong{display:block;color:#1a4f85;margin-bottom:5px}.feedback p{margin:0;color:#395778}.feedback.good{border-color:#b8dfcf;background:#edfaf4}.feedback.good strong{color:#196f5b}.feedback.fix{background:#fff8ed;border-color:#efdaad}.feedback.fix strong{color:#895c25}.answer{margin:16px 0;padding:15px;border:1px solid #a9c7e7;background:#f3f8ff;border-radius:12px}.answer h4{margin:0 0 10px;color:#1b4e82}.answer [lang="fr"]{font-weight:760;font-size:1.05rem}.checkrow{display:flex;align-items:flex-start;gap:9px;padding:9px 0;border-bottom:1px solid #e6edf7}.checkrow:last-child{border:0}.checkrow input{height:20px;width:20px;flex:0 0 20px;accent-color:#17639a}.wordbank{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0}.word{padding:10px 13px;border:1px solid #b1c7df;border-radius:10px;background:#eff6fd;font-weight:700;color:#224c76;min-height:44px}.word:disabled{opacity:.35}.built{min-height:68px;border:1px dashed #b0c8df;border-radius:12px;background:#f9fbfe;padding:10px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}.built .word{background:#e2effd}.task-footer{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:17px}.task-footer .next{margin-left:auto}.mini-progress{height:7px;background:#e4ecf5;border-radius:99px;overflow:hidden;margin:8px 0 20px}.mini-progress span{display:block;height:100%;background:#2275b4}.goal-path{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:17px 0}.goal-path span{background:#edf4fc;border:1px solid #d1e3f5;border-radius:100px;padding:7px 11px;color:#446583;font-size:.8rem;font-weight:750}.goal-path span.current{background:#d8ebff;border-color:#73a8db;color:#164a85}.summarygrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.resultcard{background:#f9fcff;border:1px solid var(--border);border-radius:14px;padding:17px}.resulthead{display:flex;gap:9px;align-items:center;justify-content:space-between}.resulthead strong{color:var(--deep)}.resultcard p{color:var(--muted);font-size:.95rem;margin:10px 0}.resultcard .small{font-size:.8rem}.score{font-size:1.25rem;font-weight:800;color:#175b95}.score.positive{color:var(--good)}.score.warn{color:#9b691d}.skills{display:grid;gap:8px;margin:12px 0;font-size:.92rem}.skill{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:8px;color:#496580}.skill .meter{height:7px}.challenge{padding:11px 0;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px}.challenge:last-child{border-bottom:0}.challenge-bubble{width:37px;height:37px;border-radius:50%;background:#e3effe;display:grid;place-items:center;color:#1d5d99;font-weight:800;flex-shrink:0}.switcher{display:flex;gap:8px;flex-wrap:wrap}.switcher .btn{font-size:.87rem}.flex-between{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.select{padding:10px 13px;border-radius:10px;border:1px solid #a9c4de;color:#294f72;background:white;min-height:44px}.textcard{background:#f5f9ff;border:1px solid var(--border);padding:15px;border-radius:12px;margin-bottom:14px}.review-rows{display:grid;gap:10px}.review-row{border:1px solid var(--border);background:#faffff;border-radius:14px;padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:center}.review-row p{margin:3px 0 0;font-size:.95rem;color:#60748a}.review-row strong{color:var(--navy)}.kbd{border:1px solid #adc1d7;background:#eef4fa;border-radius:6px;padding:2px 6px;font-size:.82rem;color:#3e668d}.progress-label{display:flex;justify-content:space-between;gap:10px;color:#526b85;font-size:.82rem;font-weight:700}.divider{border:0;border-top:1px solid #dbe5f0;margin:20px 0}.toast{position:fixed;z-index:20;bottom:25px;left:50%;transform:translateX(-50%);background:#103d69;color:white;border-radius:11px;padding:12px 17px;font-weight:700;box-shadow:0 8px 22px #17344b30}.noscript{padding:30px;color:#153b64}.fineprint{font-size:.9rem;color:#6d7e92}.error-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.twoline{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.successline{color:#116957;font-weight:750}.backlink{display:inline-flex;gap:5px;align-items:center;color:#376895;text-decoration:none;font-weight:700}.download{background:white;border:1px solid #c1d5eb;border-radius:11px;padding:10px 13px}.backstrip{margin:10px 0 18px;display:flex;align-items:center;gap:10px;color:#5c738c;font-size:.84rem}.small-example{font-size:.95rem;color:#456788}.sim-item{background:#fbfdff;border:1px solid var(--border);border-radius:13px;padding:17px;margin-bottom:13px}.sim-item h3{font-size:.96rem}.metric-label{font-size:.75rem;color:#5a7690;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.printonly{display:none}
body.large{font-size:20px}body.large .smallcap,body.large .eyebrow{font-size:.77rem}body.large .tiny{font-size:.85rem}body.large .note{font-size:.95rem}
@media(max-width:1050px){.layout{grid-template-columns:208px minmax(0,1fr)}.sidebar{padding:19px 10px}.nav-item{padding:12px 8px}.head-inner{padding:14px 22px}.head-sub{display:none}.grid-3{grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.layout{display:block}.sidebar{position:static;min-height:0;padding:11px 16px;border-right:0;border-bottom:1px solid var(--border)}.sidebar-top,.side-tip,.nav-group{display:none}.side-nav{display:flex;overflow-x:auto;gap:7px;scrollbar-width:thin;padding:2px 0 5px}.nav-item{white-space:nowrap;width:auto;flex-shrink:0;padding:10px}.nav-item span{width:auto}.head-inner{padding:13px 16px}.head-right{gap:5px}.head-link{display:none}.logo strong{font-size:1rem}.logo small{font-size:.58rem}main{padding:20px 15px 40px}.hero{border-radius:17px}.goalgrid,.grid-2,.grid-3,.summarygrid,.error-cards{grid-template-columns:1fr}.section-head{display:block}.section-head h2{margin-bottom:5px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.skill{grid-template-columns:83px 1fr auto}.review-row{align-items:flex-start;flex-direction:column}.review-row .btn{width:100%}footer{padding:13px 15px;display:block}footer span{display:block;margin-bottom:5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{body{background:white}.head,.sidebar,.actions,.tabs,.btn,.head-right,.task-footer,.no-print,footer{display:none!important}.layout{display:block}main{max-width:100%;padding:0}.surface,.resultcard,.goalcard{box-shadow:none;break-inside:avoid}.hero{background:white!important;color:black!important;box-shadow:none;border:1px solid #aaa}.hero h1,.hero h2,.hero p{color:black!important}.printonly{display:block}}
