:root{--bg: #e7eef3;--bg-2: #cfdce6;--card: #ffffff;--teal: #15616d;--teal-dark: #0e4a54;--teal-mid: #1c7a88;--teal-soft: #e4f3f5;--text: #16343c;--muted: #6a8490;--line: #d4e0e6;--accent: #15616d;--ok: #1a9b7a;--warn: #c9892c;--danger: #d6455d;--shadow: 0 22px 50px rgba(22, 52, 64, .12);--shadow-sm: 0 8px 24px rgba(22, 52, 64, .08);--radius: 24px;--radius-sm: 14px;font-family:Plus Jakarta Sans,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(900px 480px at 80% -10%,#f7fbff,transparent 55%),linear-gradient(180deg,#eef4f8,#d5e3ec);color:var(--text)}a{color:var(--teal);text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.85rem 1.4rem;background:#ffffffe6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(212,224,230,.8)}.brand{display:flex;align-items:center;gap:.7rem;color:var(--teal-dark);justify-self:start;grid-column:1}.brand-mark{width:2.15rem;height:2.15rem;display:grid;place-items:center;color:var(--teal);background:var(--teal-soft);border-radius:10px}.brand-mark svg{display:block}.brand-mark-lg{width:3.2rem;height:3.2rem;color:#fff;background:#ffffff1f;margin-bottom:1.2rem}.brand-text{display:grid;line-height:1.1}.brand-text strong{font-size:1.02rem}.brand-text small{color:var(--muted);font-size:.72rem;font-weight:500}.nav-pill{display:flex;gap:.2rem;padding:.25rem;background:#edf3f6;border-radius:999px;grid-column:2}.nav-pill a{color:var(--muted);padding:.45rem 1rem;border-radius:999px;font-weight:600;font-size:.92rem}.nav-pill a.active,.nav-pill a:hover{background:#fff;color:var(--teal-dark);box-shadow:var(--shadow-sm)}.nav-soon{display:inline-block;margin-left:.28rem;font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--teal);background:var(--teal-soft);padding:.12rem .38rem;border-radius:999px;vertical-align:.08rem}.ranked-page{display:grid;gap:1.15rem}.ranked-soon-badge{display:inline-block;margin:0 0 .95rem;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--teal);padding:.22rem .6rem;border-radius:999px}.ranked-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:1.15rem;align-items:stretch}.ranked-hero-copy{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:2rem 2rem 1.85rem;display:flex;flex-direction:column;justify-content:center;min-height:28rem}.ranked-hero-copy h1{margin:0 0 .85rem;font-size:clamp(2.15rem,4.2vw,3.35rem);font-weight:800;letter-spacing:-.04em;line-height:1.02;color:var(--teal-dark)}.ranked-hero-copy .lede{max-width:34rem}.ranked-locked{pointer-events:none;opacity:.55;cursor:default}.ranked-preview{background:linear-gradient(165deg,#0e4a54,#15616d 48%,#1c7a88);color:#e8f6f8;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.2rem 1.1rem;display:flex;flex-direction:column;min-height:28rem}.ranked-preview header{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1rem}.ranked-preview header span{opacity:.7}.ranked-preview header strong{background:#ffffff24;padding:.2rem .5rem;border-radius:999px}.ranked-podium{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:.55rem;height:7.5rem;margin:.2rem 0 1.2rem}.ranked-podium i{display:block;height:var(--h);border-radius:12px 12px 6px 6px;background:#ffffff29}.ranked-podium i:nth-child(2){background:#fff}.ranked-preview ol{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.ranked-preview li{display:grid;grid-template-columns:2.1rem 1fr auto;gap:.7rem;align-items:center;padding:.55rem .7rem;border-radius:12px;background:#ffffff14}.ranked-preview li em{font-style:normal;font-weight:800;opacity:.7}.ranked-preview li strong{filter:blur(5px);letter-spacing:.12em;-webkit-user-select:none;user-select:none}.ranked-preview li span{font-variant-numeric:tabular-nums;font-weight:700;opacity:.85}.ranked-features{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.ranked-features article{padding:1.25rem 1.3rem 1.35rem}.ranked-features span{color:var(--teal-mid);font-weight:800;font-size:.85rem}.ranked-features h3{margin:.4rem 0;color:var(--teal-dark)}.ranked-features p{margin:0;color:var(--muted);line-height:1.5}.topbar-end{justify-self:end;display:flex;align-items:center;gap:.75rem;grid-column:3}.user-chip{display:flex;align-items:center;gap:.55rem;color:var(--text);font-weight:600}.avatar{width:2.1rem;height:2.1rem;border-radius:50%;display:grid;place-items:center;background:linear-gradient(160deg,#1d8a96,#0e4a54);color:#fff;font-size:.72rem;font-weight:700}.avatar-lg{width:3.4rem;height:3.4rem;font-size:1rem}.linkish{color:var(--muted);background:none;border:0;padding:0;cursor:pointer;font-weight:600}.linkish:hover{color:var(--teal-dark)}.main{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:1.8rem 0 3rem;flex:1}.page-loading,.muted{color:var(--muted)}.kicker{margin:0 0 .4rem;color:var(--teal-mid);font-weight:700;font-size:.82rem}.badges-row{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.landing h1,.dash-hello h1,.page-head h1,.auth-left h1{margin:0 0 .7rem;letter-spacing:-.035em;line-height:1.05;color:var(--teal-dark)}.landing h1,.dash-hello h1{font-size:clamp(2.1rem,4vw,3.1rem);font-weight:800}.dash-hello h1 span,.landing h1{color:var(--teal)}.page-head h1{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800}.lede{max-width:38rem;color:var(--muted);font-size:1.05rem;line-height:1.55;margin:0 0 1.4rem}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2.4rem 0 0}.steps article{padding:1.2rem 1.25rem}.steps span{color:var(--teal-mid);font-weight:800;font-size:.85rem}.steps h3{margin:.45rem 0 .35rem;color:var(--teal-dark)}.steps p{margin:0;color:var(--muted)}.hero-actions,.submit-row,.page-head,.section-head{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}.page-head,.section-head{justify-content:space-between;margin-bottom:1.1rem}.section-head h2,.subhead,.dash-progress h2{margin:0;font-size:1.15rem;color:var(--teal-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;padding:.72rem 1.15rem;cursor:pointer;border-radius:999px;font-weight:700;color:inherit}.btn.primary{background:#1b1f24;color:#fff}.btn.primary:hover{background:#111418}.btn.primary:disabled{opacity:.6;cursor:wait}.btn-block{width:100%}.btn-sm{padding:.45rem .9rem;font-size:.9rem}.btn.ghost{border-color:var(--line);background:#fff;color:var(--teal-dark)}.panel,.exo-card,.stats article,.home-board,.table-wrap,.mini-rank,.profile-card,.dash-progress{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel,.statement,.tests-preview,.result-panel{padding:1.15rem 1.25rem}.auth-shell{min-height:100vh;display:flex;flex-direction:column}.auth-screen{flex:1;display:grid;place-items:center;padding:1.5rem 1.5rem 2rem;background:radial-gradient(800px 400px at 50% 0%,#f4f9fc,transparent 60%),linear-gradient(180deg,#e8eef3,#c5d5e0)}.auth-split{width:min(920px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);min-height:540px}.auth-left{padding:2.4rem 2.2rem 2rem}.auth-logos{display:flex;align-items:center;gap:.6rem;color:var(--teal-dark);font-weight:800;margin-bottom:2rem}.auth-logos .brand-mark{background:transparent;width:2rem;height:2rem}.auth-left h1{font-size:1.7rem;font-weight:800}.auth-sub{color:var(--muted);margin:0 0 1.4rem}.auth-form label{display:grid;gap:.35rem;margin:.7rem 0;color:var(--muted);font-size:.9rem;font-weight:600}.auth-form input{width:100%;background:#f4f7f9;color:var(--text);border:1px solid var(--line);padding:.75rem .85rem;border-radius:12px}.auth-form input:focus{outline:2px solid rgba(21,97,109,.25);border-color:var(--teal)}.auth-form .btn{margin-top:.8rem}.auth-switch{text-align:center;color:var(--muted);font-size:.92rem}.auth-right{background:radial-gradient(420px 220px at 90% 10%,rgba(255,255,255,.12),transparent 50%),linear-gradient(165deg,#1a6b78,#0d4450);color:#eaf6f8;padding:2.6rem 2.2rem;display:flex;flex-direction:column;justify-content:center}.auth-right h2{margin:0 0 1.3rem;font-size:1.7rem;line-height:1.2;font-weight:800;color:#fff}.auth-right ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.auth-right li{padding-left:1.5rem;position:relative;color:#ffffffe0}.auth-right li:before{content:"";width:.55rem;height:.55rem;border-radius:50%;border:2px solid rgba(255,255,255,.55);position:absolute;left:0;top:.4rem}.auth-right-foot{margin:2rem 0 0;color:#ffffff9e;font-size:.9rem}.form-error{color:var(--danger);font-weight:600}.form-ok{color:var(--ok);font-weight:600}.account-form{padding:1.3rem 1.35rem 1.4rem;margin-bottom:1.6rem}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;margin-bottom:1rem}.account-form label{display:grid;gap:.35rem;color:var(--muted);font-size:.9rem;font-weight:600}.account-form label:nth-child(n+3){grid-column:1 / -1}.account-form input{border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem;background:#f7fafb}.account-form input:focus{outline:2px solid var(--teal);border-color:transparent}.table-more{padding:.9rem 1rem 1.05rem;border-top:1px solid var(--line)}.dash-hello{margin-bottom:1.4rem}.dash-hero{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:1rem;margin-bottom:1.6rem}.profile-card{background:linear-gradient(165deg,#1a6b78,#0e4a54);color:#fff;padding:1.25rem 1.3rem 1.1rem;box-shadow:var(--shadow)}.profile-card-top{display:flex;gap:.85rem;align-items:center;margin-bottom:1.1rem}.profile-card h2{margin:0;font-size:1.15rem}.profile-card p{margin:.15rem 0 0;color:#ffffffb8;font-size:.85rem;word-break:break-all}.profile-stats{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0;padding:.85rem 0 0;border-top:1px solid rgba(255,255,255,.12)}.profile-stats strong{display:block;font-size:1.15rem}.profile-stats span{color:#ffffffb3;font-size:.78rem}.dash-progress{padding:1.2rem 1.3rem;min-height:180px}.empty-state{color:var(--muted);display:grid;place-items:center;text-align:center;min-height:140px;border:1.5px dashed var(--line);border-radius:18px;padding:1rem}.progress-list{list-style:none;margin:.9rem 0 0;padding:0}.progress-list a{display:flex;gap:.55rem;align-items:center;color:var(--text);padding:.55rem 0;border-bottom:1px solid var(--line);font-weight:600}.block{margin:1.5rem 0 0}.filters{display:grid;gap:.85rem;margin:0 0 1.4rem}.chip-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.chip-label{color:var(--muted);font-size:.82rem;font-weight:700;min-width:4.6rem}.chips{display:flex;flex-wrap:nowrap;gap:.35rem;padding:.22rem;background:#edf3f6;border-radius:999px;overflow-x:auto}.chip{border:0;background:transparent;color:var(--muted);padding:.42rem .9rem;border-radius:999px;font-weight:700;font-size:.88rem;cursor:pointer;white-space:nowrap}.chip:hover{color:var(--teal-dark)}.chip.is-on{background:#fff;color:var(--teal-dark);box-shadow:var(--shadow-sm)}.exo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.9rem}.exo-card{color:inherit;display:grid;gap:.65rem;padding:1rem 1.05rem 1.05rem;border:1px solid rgba(212,224,230,.9);border-left:4px solid var(--teal);transition:transform .2s ease,box-shadow .2s ease;animation:rise-in .45s ease both;animation-delay:calc(var(--i, 0) * 45ms)}.exo-card.lang-python{border-left-color:#1a9b7a}.exo-card.lang-c{border-left-color:#3d6d9a}.exo-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.exo-card.is-solved{background:linear-gradient(180deg,#f7fbfb,#fff 40%)}.exo-card-meta{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.exo-pts{color:var(--muted);font-size:.82rem;font-weight:700}.exo-card h2,.exo-card h3{margin:0;font-size:1.05rem;line-height:1.3;color:var(--teal-dark);font-weight:700}.exo-card-top,.exo-meta,.tags{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.lang-badge,.solved-pill,.diff{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:.2rem .5rem;border-radius:999px;font-weight:700;background:var(--teal-soft);color:var(--teal-dark)}.lang-badge.lang-python{background:#e7f6ea;color:#1f7a46}.lang-badge.lang-c{background:#e7eef8;color:#2b5d8a}.solved-pill,.diff-facile{background:#e3f7f0;color:#157a5c}.diff-moyen{background:#f8efd8;color:#9a6b12}.diff-difficile{background:#fde8ec;color:#b1364a}.points-lg{color:var(--teal);font-size:1.25rem;font-weight:800}.statement,.tests-preview,.result-panel,.editor-wrap{margin:1rem 0}.exo-hint{display:flex;align-items:flex-start;gap:.9rem;margin:.65rem 0 0;padding:1rem 1.15rem 1rem 1rem;background:linear-gradient(180deg,#fff8e4,#ffe9b3);border:1px solid #f0c14a;border-left:6px solid #e39b16;border-radius:18px;box-shadow:0 10px 28px #c9892c2e;color:#4d3808}.exo-hint-icon{flex:0 0 auto;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:12px;background:#ffd45a;color:#8a5a00}.exo-hint-body{min-width:0}.exo-hint strong{display:inline-block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#c9892c;padding:.18rem .5rem;border-radius:999px;margin-bottom:.4rem}.exo-hint p{margin:0;font-size:.98rem;line-height:1.5;font-weight:600}.exo-hint code{font-family:IBM Plex Mono,monospace;font-size:.86em;background:#fff;padding:.08rem .32rem;border-radius:5px;color:#8a5a10}.statement{font-size:1.05rem;line-height:1.7;color:#1d3c44}.statement p{margin:0 0 .85rem}.statement p:last-child{margin-bottom:0}.statement ul,.statement ol{margin:.2rem 0 1rem;padding-left:1.2rem}.statement li{margin:.4rem 0}.statement li::marker{color:var(--teal-mid)}.statement strong{color:var(--teal-dark);font-weight:800}.statement h1,.statement h2,.statement h3{font-size:.84rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);margin:1.25rem 0 .55rem}.statement h3:first-child{margin-top:.2rem}.statement .md-inline,.statement p code,.statement li code{font-family:IBM Plex Mono,monospace;font-size:.86em;background:var(--teal-soft);color:var(--teal-dark);padding:.12rem .38rem;border-radius:6px}.statement pre{background:#f4f8fa;border-left:4px solid var(--teal);padding:.85rem 1rem;margin:.55rem 0 1rem;overflow:auto;font-family:IBM Plex Mono,monospace;font-size:.92rem;line-height:1.5;color:var(--teal-dark)}.statement pre code{background:none;padding:0;color:inherit;font-size:inherit}.example-box{background:var(--teal-soft);border-radius:16px;padding:.9rem 1.05rem;margin:.9rem 0 .15rem}.example-box p{margin:.2rem 0}.example-box p:first-child{font-size:.75rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--teal-mid)}.judge-note{background:#f4f8fa;border-radius:12px;padding:.7rem .85rem;color:var(--muted);font-size:.92rem;line-height:1.45;margin:.4rem 0 .8rem}.judge-note code{font-family:IBM Plex Mono,monospace;background:#fff;padding:.08rem .32rem;border-radius:5px;color:var(--teal-dark)}.hidden-count{margin:.85rem 0 0;padding-top:.75rem;border-top:1px dashed var(--line);color:var(--muted);font-size:.92rem}.compile-error,.tests-preview code,.test-results code{font-family:IBM Plex Mono,monospace;background:#f3f7f9;padding:.15rem .35rem;border-radius:6px}.compile-error{padding:.85rem;overflow:auto}.kbd-sample{margin:.4rem 0 0;padding:.55rem .7rem;background:#f3f7f9;font-family:IBM Plex Mono,monospace;font-size:.85rem;white-space:pre-wrap;line-height:1.45;border-radius:10px}.kbd-label{display:block;margin-bottom:.25rem;color:var(--muted);font-size:.72rem;font-family:inherit;letter-spacing:.03em;text-transform:uppercase}.tests-preview ul,.test-results{list-style:none;padding:0;margin:.6rem 0 0}.tests-preview li,.test-results li{display:grid;gap:.2rem;padding:.55rem 0;border-top:1px solid var(--line)}.editor-wrap{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.submit-row{margin:.8rem 0 1.2rem}.result-panel.status-ok{box-shadow:0 0 0 2px #1a9b7a40,var(--shadow-sm)}.result-panel.status-fail,.result-panel.status-error{box-shadow:0 0 0 2px #d6455d38,var(--shadow-sm)}.test-results li{grid-template-columns:.7rem 1fr;align-items:start}.dot{width:.55rem;height:.55rem;border-radius:50%;margin-top:.4rem;background:var(--danger)}.pass .dot{background:var(--ok)}.mini-rank{list-style:none;margin:0;padding:.3rem 0;overflow:hidden}.mini-rank li,.rank-table tr.me{background:var(--teal-soft)}.mini-rank li{display:grid;grid-template-columns:2rem 1fr auto;gap:.7rem;padding:.8rem 1rem;background:transparent}.mini-rank li.me{background:var(--teal-soft)}.rank-table{width:100%;border-collapse:collapse}.rank-table th,.rank-table td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--line)}.rank-table th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.table-wrap{overflow:hidden}.status-ok{color:var(--ok)}.status-fail,.status-error{color:var(--danger)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.5rem}.stats article{padding:1.05rem 1.15rem}.stats span{color:var(--muted);font-size:.85rem}.stats strong{display:block;margin-top:.35rem;font-size:1.5rem;color:var(--teal-dark)}.stats .small{font-size:1rem;word-break:break-all}.text-link{color:var(--muted);font-weight:650}.text-link:hover{color:var(--teal)}.site-footer{margin-top:auto;padding:1.1rem 1.4rem 1.3rem;border-top:1px solid rgba(212,224,230,.9);background:#ffffffb8}.site-footer-inner{width:min(1120px,100%);margin:0 auto;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:.88rem}.site-footer p{margin:0}.site-footer strong{color:var(--teal-dark);font-weight:700}.site-footer nav{display:flex;gap:1rem;flex-wrap:wrap}.site-footer a{color:var(--muted);font-weight:600}.site-footer a:hover{color:var(--teal)}.legal-page{max-width:42rem;padding-bottom:1rem}.legal-page h1{margin:0 0 1.2rem;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800;color:var(--teal-dark);letter-spacing:-.03em}.legal-page h2{margin:1.4rem 0 .45rem;font-size:1.05rem;color:var(--teal-dark)}.legal-page p{margin:0 0 .7rem;color:#2b4a52;line-height:1.65}.legal-nav{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem!important;padding-top:1rem;border-top:1px solid var(--line)}.legal-nav a{font-weight:700}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.page-enter,.auth-split{animation:rise-in .4s ease both}.chip,.nav-pill a,.btn,.user-chip,.linkish,.text-link{transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease,border-color .2s ease}.chip:active,.btn:active{transform:scale(.97)}.panel,.profile-card,.result-panel{animation:rise-in .4s ease both}.result-panel{animation-delay:.08s}@media (prefers-reduced-motion: reduce){.page-enter,.auth-split,.exo-card,.panel,.profile-card,.result-panel{animation:none}.chip,.nav-pill a,.btn,.user-chip,.exo-card{transition:none}}@media (max-width: 900px){.topbar{grid-template-columns:1fr auto}.brand,.topbar-end{grid-column:auto}.nav-pill{grid-column:1 / -1;order:3;justify-self:stretch;justify-content:space-between}.nav-pill a{padding:.42rem .55rem;font-size:.82rem}.nav-soon{display:none}.auth-split,.dash-hero,.stats,.steps,.ranked-hero,.ranked-features,.account-grid{grid-template-columns:1fr}.ranked-hero-copy,.ranked-preview{min-height:0}.auth-right{min-height:220px}}@media (max-width: 640px){.user-chip-name{display:none}.landing h1{font-size:2rem}}
