:root{color-scheme:light;--ink:#202b38;--muted:#718091;--line:#e2e8ed;--green:#d8f1df;--orange:#fff0d4;--blue:#deebfd;--accent:#226b54}*{box-sizing:border-box}body{margin:0;background:#f7f9fa;color:var(--ink);font:14px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}button,.button{border:1px solid #d6dfe4;border-radius:7px;background:#fff;color:var(--ink);padding:8px 14px;cursor:pointer;display:inline-block}button:hover,.button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);border-color:var(--accent);color:#fff}input,select,textarea{border:1px solid #d6dfe4;background:white;border-radius:6px;color:var(--ink);padding:8px 10px}textarea{width:100%;resize:vertical;line-height:1.7}label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4%;gap:40px}.brand{font-size:21px;font-weight:800}.brand span{font-size:13px;color:var(--muted);font-weight:400;margin-left:10px}.topbar nav{display:flex;gap:24px}.topbar nav a{color:var(--muted)}.topbar nav .current{color:var(--accent);font-weight:600}#userName{margin-left:auto}main{max-width:1600px;margin:0 auto;padding:38px 4% 70px}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent);margin:0}h1{font-size:34px;letter-spacing:-1px;margin:5px 0}h2{font-size:21px;margin:6px 0 16px}h3{font-size:15px}.muted{color:var(--muted)}.small{font-size:12px}.toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:24px}.filters{display:flex;gap:12px;flex-wrap:wrap}.filters select{min-width:105px}#search{width:180px}.views{display:flex;padding:4px;background:#eaf0ee;border-radius:9px}.views button{border:0;background:transparent;padding:7px 17px;color:#66786e}.views .selected{background:#fff;color:var(--accent);box-shadow:0 1px 4px #183d2414}.wall-summary{display:flex;justify-content:space-between;gap:12px;margin:15px 0}.legend{display:flex;gap:16px;color:var(--muted);font-size:12px;flex-wrap:wrap}.legend i{width:10px;height:10px;display:inline-block;margin-right:5px;border-radius:2px}.green{background:var(--green)}.orange{background:var(--orange)}.blue{background:var(--blue)}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:10px;max-height:68vh}table{border-collapse:separate;border-spacing:0;width:100%;white-space:nowrap}th,td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;text-align:center;min-width:63px}thead th{position:sticky;top:0;background:#f2f5f5;z-index:3;color:#66776e;font-size:12px;font-weight:500}th:first-child,td:first-child{position:sticky;left:0;background:#fff;text-align:left;z-index:2;min-width:215px;max-width:280px;padding:13px 16px}thead th:first-child{z-index:4;background:#f2f5f5}.progress-cell{font-size:11px;color:var(--muted);min-width:116px;line-height:1.6}.site-name{color:var(--ink);font-size:13px;font-weight:600}.series-badge{font-size:10px;border:1px solid #dce6df;border-radius:4px;color:var(--accent);padding:1px 5px;margin-right:6px}.tile{border:0;background:#f1f4f6;border-radius:5px;padding:7px 4px;width:47px;min-height:48px;color:#7e8b98;font-weight:700}.tile span{display:block;font-size:9px;font-weight:400;line-height:1.2}.tile.done{background:var(--green);color:#267248}.tile.tried{background:var(--orange);color:#a16b21}.tile.draft{background:var(--blue);color:#3c6baf}.tile.filtered{opacity:.25}.tile.unmapped{outline:1px dashed #b6c0c9}.tile:hover{outline:2px solid var(--accent);outline-offset:1px}.tile:focus-visible{outline:3px solid #226b54}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;margin-top:20px}.panel summary{cursor:pointer;font-weight:600}.panel summary span{margin-left:12px;font-size:12px;font-weight:400}.inline-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:18px 0}.binding,.batch{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}.binding small{flex:1;color:var(--muted)}.binding button,.batch button{font-size:12px;padding:4px 9px}.import-zone{border-top:1px solid var(--line);margin-top:25px;padding-top:10px}.import-zone textarea{margin-bottom:10px}pre{white-space:pre-wrap;overflow-wrap:anywhere}.practice-nav,.submit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.practice-nav span{color:var(--muted)}.problem-nav{display:flex;gap:5px;overflow:auto;margin:18px 0}.problem-nav button{padding:4px 12px}.problem-nav .selected{background:var(--accent);color:#fff}.practice-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}.practice-grid .panel{margin-top:0}.statement{font-size:15px;overflow-wrap:anywhere}.statement img{max-width:100%}.statement pre{background:#f5f7f8;padding:12px}.statement table{white-space:normal}.statement th,.statement td{position:static;min-width:0}.statement a{overflow-wrap:anywhere}.statement h3{margin-top:24px}#sourceLinks{border-top:1px solid var(--line);margin-top:20px;padding-top:15px;display:flex;gap:15px;flex-wrap:wrap}.editor textarea{margin-bottom:12px}#saveStatus{margin-right:auto}.attempt{border-top:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}.attempt summary{font-size:12px;color:var(--muted)}.attempt p{white-space:pre-wrap}#notice{color:#9b5426;white-space:pre-wrap}#notice:empty{display:none}[hidden]{display:none!important}@media(max-width:850px){main{padding:24px 16px}.topbar{padding:0 16px;gap:20px}.topbar nav{gap:14px}.brand span{display:none}h1{font-size:27px}.intro{align-items:flex-start;flex-direction:column;gap:8px}.wall-summary{flex-direction:column}.practice-grid{grid-template-columns:1fr}th:first-child,td:first-child{min-width:155px;max-width:175px;padding:10px}th,td{padding:6px;min-width:57px}.tile{width:44px}.toolbar{gap:14px}.filters{gap:9px}#search{width:140px}.legend{gap:10px}.table-wrap{max-height:65vh}.submit-row button{font-size:12px}#userName{font-size:12px}}
/* Compact badges: difficulty belongs to the letter, completion to its background. */
.difficulty-legend{margin:-4px 0 22px;line-height:2}.difficulty-legend span{font-weight:700}th,td{min-width:34px;padding:5px 3px}.tile{position:relative;width:27px;min-height:27px;height:27px;padding:2px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;border-radius:4px}.tile span.tile-mark{position:absolute;right:-1px;bottom:-3px;max-width:14px;overflow:hidden;font-size:7px;font-weight:700;white-space:nowrap;background:#ffffffd9;border-radius:2px;line-height:9px;pointer-events:none}.tile.done{background:#d5eedb}.tile.tried{background:#ffedca}.tile.draft{background:#dceafa}.progress-cell{min-width:110px}@media(max-width:850px){th,td{min-width:32px;padding:5px 2px}.tile{width:25px;min-height:25px;height:25px;font-size:12px}.progress-cell{min-width:95px}}
@media(max-width:650px){.topbar{height:auto;min-height:72px;flex-wrap:wrap;padding:14px 16px;gap:12px}.topbar nav{order:3;flex-basis:100%;justify-content:space-between;gap:12px;font-size:12px}}

#wall tbody tr:nth-child(even) th,#wall tbody tr:nth-child(even) td{background-color:#fafcfc}#wall tbody th{padding-top:9px;padding-bottom:9px}.site-name{display:flex;align-items:center;gap:5px}.series-badge{flex-shrink:0}

/* Classes comply with the application Content Security Policy. */

.rating-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:-10px 0 20px}.rating-toolbar button{font-size:12px;padding:5px 10px}
.tile{display:inline-flex;align-items:flex-start;justify-content:center;gap:4px;width:43px;height:38px;min-height:38px;padding-top:4px;line-height:16px}
.tile .rating-circle{display:inline-block;box-sizing:border-box;width:9px;height:9px;flex-shrink:0;border:1.5px solid currentColor;border-radius:50%;background:currentColor;margin-top:3px}
.tile.difficulty-unknown .rating-circle{background:transparent}
.tile span.tile-rating{position:absolute;bottom:3px;left:0;right:0;font:10px/11px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.tile span.tile-mark{right:-1px;bottom:-2px}
@media(max-width:850px){.tile{width:39px;height:37px;min-height:37px}.tile .rating-circle{width:8px;height:8px}}

#difficultyStatus{white-space:pre-line;line-height:1.8}


/* Medal references sit beside the contest name and can be hidden. */
.medal-toggle { display: inline-flex; flex-direction: row; align-items: center; gap: 7px; cursor: pointer; font-size: 12px; color: #607366; }
.medal-toggle input { width: 15px; height: 15px; min-height: 0; margin: 0; accent-color: #267354; }
th.medal-reference, td.medal-reference { min-width: 224px; padding: 7px 10px; font-size: 11px; line-height: 1.5; }
th.medal-reference small { display: block; font-size: 10px; color: #718091; font-weight: 400; }
.medal-grid { display: grid; grid-template-columns: 16px 1fr 1fr; gap: 2px 8px; align-items: center; font-variant-numeric: tabular-nums; color: #526372; }
.medal-label { font-size: 10px; font-weight: 600; }
.medal-gold { color: #997015; }.medal-silver { color: #667885; }.medal-bronze { color: #9b633e; }
.medal-group { display: block; text-align: left; color: #718091; margin-bottom: 2px; }
.medal-missing { color: #84919b; }
.medal-help { color: #718091; font-size: 12px; line-height: 1.6; margin: 8px 0 14px; }

/* Tutorials stay hidden until the reader explicitly requests them. */
.editorial-controls{border-top:1px solid var(--line);margin-top:18px;padding-top:8px}
.editorial-actions{display:flex;gap:8px;flex-wrap:wrap}
.editorial-actions button{font-size:12px;padding:7px 10px}
.editorial-reader{max-width:980px;margin:24px auto;scroll-margin-top:20px;overflow-wrap:anywhere;font-size:15px;line-height:1.9}
.editorial-reader h1{font-size:26px;margin:26px 0 18px}
.editorial-reader h2{font-size:20px;margin:30px 0 12px}
.editorial-reader h3{font-size:17px;margin:24px 0 10px}
.editorial-reader .practice-nav h2{margin:0}
.editorial-reader pre{background:#f4f7f6;padding:16px;border-radius:7px;white-space:pre-wrap}
.editorial-reader code{font-size:13px;background:#f1f5f3;border-radius:3px;padding:1px 4px}
.editorial-reader pre code{padding:0;background:none}
.editorial-reader table{display:block;overflow:auto;white-space:normal;margin:18px 0}
.editorial-reader th,.editorial-reader td{position:static;min-width:90px;max-width:none;text-align:left;padding:9px;vertical-align:top}
.editorial-reader th{background:#f1f5f3}
.editorial-reader li{margin:8px 0}
@media(max-width:650px){.editorial-reader{padding:18px;font-size:14px}.editorial-reader h1{font-size:23px}.editorial-reader h2{font-size:18px}}

.editorial-download{display:block;margin-top:5px;font-size:11px;font-weight:500;white-space:normal;text-decoration:underline;text-underline-offset:3px}
.editorial-pending{display:block;margin-top:5px;font-size:11px;font-weight:400;color:var(--muted)}

/* Both statements and editorials use the same LaTeX renderer. */
#statementBody{line-height:1.85}
#statementBody p{margin:1em 0}
#statementBody h3{margin:1.7em 0 .6em}
#statementBody pre{border-radius:7px;line-height:1.6;white-space:pre;overflow:auto;overflow-wrap:normal}
#statementBody code{font-size:.9em}
#statementBody table{display:block;overflow:auto;margin:1em 0}
#statementBody th,#statementBody td{max-width:none;vertical-align:top}
#statementBody .katex,#editorialBody .katex{font-size:1.08em}
#statementBody .katex-display,#editorialBody .katex-display{overflow-x:auto;overflow-y:hidden;padding:.3em 0;margin:1.2em 0}
@media(max-width:1000px){.topbar{height:auto;min-height:72px;flex-wrap:wrap;gap:12px;padding-top:14px;padding-bottom:14px}.topbar nav{order:3;flex-basis:100%;overflow-x:auto;white-space:nowrap;padding-bottom:2px}}














.difficulty-legend .difficulty-unknown,.tile.difficulty-unknown{color:#69737e}
.difficulty-legend .difficulty-gray,.tile.difficulty-gray{color:#808080}
.difficulty-legend .difficulty-green,.tile.difficulty-green{color:#267343}
.difficulty-legend .difficulty-cyan,.tile.difficulty-cyan{color:#167b86}
.difficulty-legend .difficulty-blue,.tile.difficulty-blue{color:#315bbb}
.difficulty-legend .difficulty-purple,.tile.difficulty-purple{color:#8743ac}
.difficulty-legend .difficulty-orange,.tile.difficulty-orange{color:#ff8c00}
.difficulty-legend .difficulty-red,.tile.difficulty-red{color:#ff0000}
.difficulty-legend .difficulty-red-dark{color:#965c2c}.tile.difficulty-red-dark{color:#ff0000}
.difficulty-legend .difficulty-red-legendary{color:#808080}.tile.difficulty-red-legendary{color:#ff0000}
.difficulty-legend .difficulty-gold{color:#ffd602}.tile.difficulty-gold{color:#ff0000}
.difficulty-legend .difficulty-unknown::before{background:transparent}
.difficulty-legend .difficulty-red-dark::before{background:linear-gradient(90deg,#965c2c 0%,#ffdabd 50%,#965c2c 100%)}
.difficulty-legend .difficulty-red-legendary::before{background:linear-gradient(90deg,#808080 0%,#fff 50%,#808080 100%)}
.difficulty-legend .difficulty-gold::before{background:linear-gradient(90deg,#ffd602 0%,#fff 50%,#ffd602 100%)}
.difficulty-legend .difficulty-note{font-weight:400}
/* Rating fill: fixed rank color, rising from bottom to top. */
.tile .rating-circle{background:linear-gradient(to top,currentColor 0%,currentColor var(--rating-fill,0%),transparent var(--rating-fill,0%),transparent 100%)}
.rating-fill-0{--rating-fill:0%}
.rating-fill-1{--rating-fill:1%}
.rating-fill-2{--rating-fill:2%}
.rating-fill-3{--rating-fill:3%}
.rating-fill-4{--rating-fill:4%}
.rating-fill-5{--rating-fill:5%}
.rating-fill-6{--rating-fill:6%}
.rating-fill-7{--rating-fill:7%}
.rating-fill-8{--rating-fill:8%}
.rating-fill-9{--rating-fill:9%}
.rating-fill-10{--rating-fill:10%}
.rating-fill-11{--rating-fill:11%}
.rating-fill-12{--rating-fill:12%}
.rating-fill-13{--rating-fill:13%}
.rating-fill-14{--rating-fill:14%}
.rating-fill-15{--rating-fill:15%}
.rating-fill-16{--rating-fill:16%}
.rating-fill-17{--rating-fill:17%}
.rating-fill-18{--rating-fill:18%}
.rating-fill-19{--rating-fill:19%}
.rating-fill-20{--rating-fill:20%}
.rating-fill-21{--rating-fill:21%}
.rating-fill-22{--rating-fill:22%}
.rating-fill-23{--rating-fill:23%}
.rating-fill-24{--rating-fill:24%}
.rating-fill-25{--rating-fill:25%}
.rating-fill-26{--rating-fill:26%}
.rating-fill-27{--rating-fill:27%}
.rating-fill-28{--rating-fill:28%}
.rating-fill-29{--rating-fill:29%}
.rating-fill-30{--rating-fill:30%}
.rating-fill-31{--rating-fill:31%}
.rating-fill-32{--rating-fill:32%}
.rating-fill-33{--rating-fill:33%}
.rating-fill-34{--rating-fill:34%}
.rating-fill-35{--rating-fill:35%}
.rating-fill-36{--rating-fill:36%}
.rating-fill-37{--rating-fill:37%}
.rating-fill-38{--rating-fill:38%}
.rating-fill-39{--rating-fill:39%}
.rating-fill-40{--rating-fill:40%}
.rating-fill-41{--rating-fill:41%}
.rating-fill-42{--rating-fill:42%}
.rating-fill-43{--rating-fill:43%}
.rating-fill-44{--rating-fill:44%}
.rating-fill-45{--rating-fill:45%}
.rating-fill-46{--rating-fill:46%}
.rating-fill-47{--rating-fill:47%}
.rating-fill-48{--rating-fill:48%}
.rating-fill-49{--rating-fill:49%}
.rating-fill-50{--rating-fill:50%}
.rating-fill-51{--rating-fill:51%}
.rating-fill-52{--rating-fill:52%}
.rating-fill-53{--rating-fill:53%}
.rating-fill-54{--rating-fill:54%}
.rating-fill-55{--rating-fill:55%}
.rating-fill-56{--rating-fill:56%}
.rating-fill-57{--rating-fill:57%}
.rating-fill-58{--rating-fill:58%}
.rating-fill-59{--rating-fill:59%}
.rating-fill-60{--rating-fill:60%}
.rating-fill-61{--rating-fill:61%}
.rating-fill-62{--rating-fill:62%}
.rating-fill-63{--rating-fill:63%}
.rating-fill-64{--rating-fill:64%}
.rating-fill-65{--rating-fill:65%}
.rating-fill-66{--rating-fill:66%}
.rating-fill-67{--rating-fill:67%}
.rating-fill-68{--rating-fill:68%}
.rating-fill-69{--rating-fill:69%}
.rating-fill-70{--rating-fill:70%}
.rating-fill-71{--rating-fill:71%}
.rating-fill-72{--rating-fill:72%}
.rating-fill-73{--rating-fill:73%}
.rating-fill-74{--rating-fill:74%}
.rating-fill-75{--rating-fill:75%}
.rating-fill-76{--rating-fill:76%}
.rating-fill-77{--rating-fill:77%}
.rating-fill-78{--rating-fill:78%}
.rating-fill-79{--rating-fill:79%}
.rating-fill-80{--rating-fill:80%}
.rating-fill-81{--rating-fill:81%}
.rating-fill-82{--rating-fill:82%}
.rating-fill-83{--rating-fill:83%}
.rating-fill-84{--rating-fill:84%}
.rating-fill-85{--rating-fill:85%}
.rating-fill-86{--rating-fill:86%}
.rating-fill-87{--rating-fill:87%}
.rating-fill-88{--rating-fill:88%}
.rating-fill-89{--rating-fill:89%}
.rating-fill-90{--rating-fill:90%}
.rating-fill-91{--rating-fill:91%}
.rating-fill-92{--rating-fill:92%}
.rating-fill-93{--rating-fill:93%}
.rating-fill-94{--rating-fill:94%}
.rating-fill-95{--rating-fill:95%}
.rating-fill-96{--rating-fill:96%}
.rating-fill-97{--rating-fill:97%}
.rating-fill-98{--rating-fill:98%}
.rating-fill-99{--rating-fill:99%}
.rating-fill-100{--rating-fill:100%}

/* Metallic tiers keep red labels and fill with copper/silver from below. */
.tile.difficulty-red-dark .rating-circle,.tile.difficulty-red-legendary .rating-circle,.tile.difficulty-gold .rating-circle{position:relative;overflow:hidden;background:transparent}
.tile.difficulty-red-dark .rating-circle{border-color:#965c2c;--rating-metal:linear-gradient(90deg,#965c2c 0%,#ffdabd 50%,#965c2c 100%)}
.tile.difficulty-red-legendary .rating-circle{border-color:#808080;--rating-metal:linear-gradient(90deg,#808080 0%,#fff 50%,#808080 100%)}
.tile.difficulty-red-dark .rating-circle::before,.tile.difficulty-red-legendary .rating-circle::before,.tile.difficulty-gold .rating-circle::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:var(--rating-fill,0%);background:var(--rating-metal)}

.tile.difficulty-gold .rating-circle{border-color:#ffd602;--rating-metal:linear-gradient(90deg,#ffd602 0%,#fff 50%,#ffd602 100%)}

/* Every legend tier has a matching circle; notes start on their own line. */
.difficulty-legend :where(span:not(.difficulty-note))::before{content:"";display:inline-block;width:11px;height:11px;box-sizing:border-box;margin-right:4px;vertical-align:-1px;border:1.5px solid currentColor;border-radius:50%;background:currentColor}
.difficulty-legend .difficulty-unknown::before{background:transparent}
.difficulty-legend .difficulty-red-dark::before{background:linear-gradient(90deg,#965c2c 0%,#ffdabd 50%,#965c2c 100%)}
.difficulty-legend .difficulty-red-legendary::before{background:linear-gradient(90deg,#808080 0%,#fff 50%,#808080 100%)}
.difficulty-legend .difficulty-gold::before{background:linear-gradient(90deg,#ffd602 0%,#fff 50%,#ffd602 100%)}
.difficulty-legend .difficulty-note{font-weight:400}
