:root{--bg:#fbfaf8;--panel:#fff;--line:#e6e2dc;--line2:#f0ede8;--ink:#1f1d1a;--ink2:#5c574f;--ink3:#8d8579;--accent:#b8552f;--accent-soft:#fdf3ee;--easy:#2f7d4f;--easy-bg:#eaf5ee;--med:#a8781a;--med-bg:#fbf3e2;--hard:#b3402f;--hard-bg:#fbecea;--code-bg:#282c34;--code-ink:#dfe3ea;--radius:10px;color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;font-size:15px;line-height:1.75}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,textarea{font:inherit}button{color:inherit}pre,code{font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace}.topbar{z-index:50;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fbfaf8f0;align-items:center;gap:20px;min-height:58px;padding:12px max(24px,50vw - 540px);display:flex;position:sticky;top:0}.brand{color:var(--ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:0;padding:0;font-size:16px;font-weight:700}.brand span{color:var(--accent)}.topbar nav{flex-wrap:wrap;gap:2px;margin-left:auto;display:flex}.topbar nav button{color:var(--ink2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 13px;font-size:14px;transition:all .15s}.topbar nav button:hover{background:var(--line2);color:var(--ink)}.topbar nav .active{background:var(--ink);color:#fff}.lang{border:1px solid var(--line);border-radius:7px;display:flex;overflow:hidden}.lang button{color:var(--ink3);cursor:pointer;background:0 0;border:0;padding:5px 12px;font-size:13px}.lang button.on{background:var(--ink);color:#fff}.wrap{max-width:1080px;margin:0 auto;padding:32px 24px 96px}.page-title{margin-bottom:28px}.page-title h1{letter-spacing:-.02em;margin:0 0 6px;font-size:26px;font-weight:700;line-height:1.35}.page-title p,.muted{color:var(--ink2);margin:0;font-size:14.5px;line-height:1.7}.stats{flex-wrap:wrap;gap:10px;margin-bottom:26px;display:flex}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex:1;min-width:132px;padding:14px 16px}.stat b{letter-spacing:-.02em;font-size:23px;font-weight:700;line-height:1.3;display:block}.stat span{color:var(--ink3);font-size:12.5px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 12px;overflow:hidden}.category-card{overflow:hidden}.accordion-button{text-align:left;width:100%;color:var(--ink);cursor:pointer;border:0}.accordion-button:focus-visible,.back:focus-visible,.link-title:focus-visible,.flag:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.category-button{background:0 0;align-items:flex-start;gap:14px;min-height:0;padding:16px 20px;transition:all .15s;display:flex}.category-button:hover{background:#fdfcfa}.accordion-arrow{color:var(--ink3);flex:none;margin-top:3px;font-size:18px;line-height:1;transition:transform .2s}.accordion-button[aria-expanded=true]>.accordion-arrow{transform:rotate(90deg)}.category-copy{flex:1;min-width:0}.category-copy h2,.company-button h2{letter-spacing:-.01em;margin:0;font-size:16.5px;font-weight:650;line-height:1.45}.category-copy p,.company-button p{max-width:76ch;color:var(--ink2);margin:4px 0 0;font-size:13.5px;line-height:1.6}.category-progress{min-width:88px;color:var(--ink3);text-align:right;flex:none;gap:5px;padding-left:12px;font-size:12.5px;display:grid}.category-progress b{white-space:nowrap;font-weight:400}.category-progress i{background:var(--line2);border-radius:2px;width:88px;height:4px;display:block;overflow:hidden}.category-progress i span{background:var(--easy);border-radius:2px;height:100%;transition:width .3s;display:block}.category-progress small{color:var(--ink3);font-size:10.5px}.card-body{border-top:1px solid var(--line2)}.problem-row{border:0;border-bottom:1px solid var(--line2);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;align-items:flex-start;gap:12px;padding:12px 20px 12px 46px;transition:all .12s;display:flex}.problem-row:last-child{border-bottom:0}.problem-row:hover:not(:disabled){background:var(--accent-soft)}.problem-row:disabled{cursor:default;opacity:.55}.problem-row>span{color:var(--ink3);flex:0 0 26px;padding-top:3px;font:12px/1.5 SF Mono,Menlo,monospace}.problem-row>div{flex:1;min-width:0}.problem-row b{font-size:14.5px;font-weight:600}.problem-row em{background:var(--easy-bg);color:var(--easy);letter-spacing:.03em;vertical-align:1px;border-radius:4px;margin-left:8px;padding:2px 7px;font-size:10.5px;font-style:normal;font-weight:700;display:inline-block}.problem-row em.Medium{background:var(--med-bg);color:var(--med)}.problem-row em.Hard{background:var(--hard-bg);color:var(--hard)}.problem-row p{max-width:82ch;color:var(--ink2);margin:3px 0 0;font-size:13.5px;line-height:1.65}.lc-tag{background:var(--line2);color:var(--ink3);letter-spacing:.02em;vertical-align:1px;border-radius:4px;margin-left:6px;padding:2px 6px;font:600 10.5px SF Mono,Menlo,monospace;display:inline-block}.company-button{background:0 0;align-items:flex-start;gap:14px;padding:16px 20px;transition:all .15s;display:flex}.company-button:hover{background:#fdfcfa}.company-button>span:last-child{flex:1}.nested{border:1px solid var(--line2);background:#fdfcfa;border-radius:8px;margin:10px 14px;overflow:hidden}.section-button{background:0 0;align-items:center;gap:10px;padding:11px 15px;display:flex}.section-button:hover{background:var(--accent-soft)}.section-button .accordion-arrow{color:var(--accent);margin-top:0;font-size:15px}.section-button b{font-size:14px;font-weight:650}.section-button small{color:var(--ink3);margin-left:auto;font-size:12px;font-weight:400}.nested-body{border-top:1px solid var(--line2);padding:12px 15px 4px}.nested-body>.muted{margin-bottom:8px;font-size:13.5px}.company-item,.syntax{border-top:1px solid var(--line2);padding:13px 0}.company-item:first-of-type{border-top:0}.company-item h3,.syntax h3{margin:0 0 6px;font-size:14px;font-weight:650}.company-item p,.syntax p{color:var(--ink2);white-space:pre-wrap;margin:5px 0;font-size:13.3px;line-height:1.7}.solution{color:#7a3a1e!important}.back{color:var(--ink3);cursor:pointer;background:0 0;border:0;margin:0 0 18px;padding:4px 0;font-size:13.5px;display:inline-block}.back:hover{color:var(--accent)}.detail{padding:18px 20px}.detail h2{margin:0 0 11px;font-size:15px;font-weight:650}.detail>p{color:var(--ink2);white-space:pre-wrap;margin:0 0 11px;font-size:14px;line-height:1.75}.detail>p:last-child{margin-bottom:0}.example{border:1px solid var(--line2);background:#faf9f6;border-radius:7px;margin:10px 0;padding:11px 14px}.example b{color:var(--ink3);letter-spacing:.04em;font-size:11.5px;display:block}pre{background:var(--code-bg);color:var(--code-ink);white-space:pre-wrap;border-radius:8px;margin:10px 0;padding:16px 18px;font-size:12.8px;line-height:1.72;overflow:auto}.example pre{color:var(--ink);background:0 0;margin:4px 0 0;padding:0;font-size:13px}.company-item pre,.syntax pre{border-radius:6px;margin:9px 0;padding:12px 14px;font-size:12.5px;line-height:1.7}.link-title{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:14px;font-weight:650}.link-title:hover{text-decoration:underline}.flag{border:1px solid var(--line);color:var(--ink3);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;margin-top:6px;padding:4px 11px;font-size:12px;transition:all .12s}.flag:hover{border-color:var(--accent);color:var(--accent)}.flag.on{color:#8a6410;background:#fff4e0;border-color:#e0b768;font-weight:600}textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:110px;color:var(--ink);background:#fdfcfa;border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.7}textarea:focus{border-color:var(--accent);background:#fff;outline:0}.code-editor-wrap{margin-top:10px}.code-editor-bar{color:var(--ink3);justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px;font-size:12px;display:flex}.code-reset{border:1px solid var(--line);color:var(--ink3);cursor:pointer;font:inherit;white-space:nowrap;background:#fdfcfa;border-radius:6px;padding:4px 9px}.code-reset:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}textarea.code-editor{background:var(--code-bg);min-height:300px;color:var(--code-ink);tab-size:2;border-color:#353b45;border-radius:8px;margin:0;font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12.8px;line-height:1.72;display:block}textarea.code-editor:focus{background:var(--code-bg);border-color:#c78355;box-shadow:0 0 0 3px #c7835524}.empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink3);text-align:center;padding:56px 20px;font-size:14px;line-height:2}@media (width<=640px){.topbar{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 16px}.topbar nav{flex-wrap:nowrap;width:100%;margin-left:0;overflow-x:auto}.topbar nav button{flex:none}.wrap{padding:22px 16px 80px}.problem-row{padding-left:20px}.category-progress{display:none}.stats .stat{min-width:100px}}.page-head{margin-bottom:28px}.page-head h1{letter-spacing:-.02em;margin:0 0 6px;font-size:26px;font-weight:700;line-height:1.35}.page-head p{color:var(--ink2);margin:0;font-size:14.5px}.stat b small{color:var(--ink3);font-size:14px;font-weight:400}.passed-stat b{color:var(--easy)}.failed-stat b,.review-cat .cat-title{color:var(--hard)}.tip{background:var(--accent-soft);color:#7a3a1e;border:1px solid #f0d9cb;border-radius:8px;margin-bottom:20px;padding:13px 16px;font-size:13.5px;line-height:1.7}.cat{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:12px;overflow:hidden}.cat-head{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:flex-start;gap:14px;padding:16px 20px;transition:all .15s;display:flex}.cat-head:hover{background:#fdfcfa}.cat-arrow{color:var(--ink3);flex:none;margin-top:6px;font-size:11px;transition:transform .2s}.cat.open .cat-arrow{transform:rotate(90deg)}.cat-copy{flex:1;min-width:0}.cat-title{letter-spacing:-.01em;font-size:16.5px;font-weight:650;display:block}.cat-core{max-width:76ch;color:var(--ink2);margin-top:4px;font-size:13.5px;line-height:1.6;display:block}.cat-meta{text-align:right;flex:none;margin-left:auto;padding-left:12px}.cat-count{color:var(--ink3);white-space:nowrap;font-size:12.5px;display:block}.bar{background:var(--line2);border-radius:2px;width:88px;height:4px;margin-top:7px;display:block;overflow:hidden}.bar i{background:var(--easy);border-radius:2px;height:100%;transition:width .3s;display:block}.cat-body{border-top:1px solid var(--line2)}.review-cat .cat-head{cursor:default}.company{border-color:#b8d0e8;overflow:hidden;box-shadow:0 10px 28px #0f62fe0f}.company .cat-head{background:linear-gradient(135deg,#e7f1fb 0%,#f3f8fc 58%,#fff 100%);position:relative}.company .cat-head:after{content:"";background:#0f62fe;width:4px;position:absolute;top:0;bottom:0;right:0}.company .cat-head:hover{background:linear-gradient(135deg,#dbeefa 0%,#edf6fc 58%,#fff 100%)}.company .cat-arrow{color:#0f62fe}.company .cat-title{color:#0f3d7a;align-items:center;gap:9px;display:flex}.company-label{color:#0f62fe;letter-spacing:.06em;background:#ffffffa6;border:1px solid #a8c6e4;border-radius:999px;align-items:center;padding:2px 7px;font-size:10px;font-weight:700;line-height:1.35;display:inline-flex}.company .cat-core{color:#46627d}.company .cat-body{background:#fbfdff}.company .nested{background:#fff;border-color:#d6e3f0;margin:12px 14px;box-shadow:0 2px 7px #153b6309}.company .section-button{background:#fff}.company .section-button:hover{background:#eaf4fc}.company .section-button .accordion-arrow{color:#0f62fe}.company .nested-body{border-top-color:#dce8f3}.prow{border:0;border-bottom:1px solid var(--line2);width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;align-items:flex-start;gap:12px;padding:12px 20px 12px 46px;transition:all .12s;display:flex}.prow:last-child{border-bottom:0}.prow:hover:not(:disabled){background:var(--accent-soft)}.prow:disabled{cursor:default;opacity:.55}.pnum{color:var(--ink3);flex:0 0 26px;padding-top:3px;font:12px/1.5 SF Mono,Menlo,monospace}.pmain{flex:1;min-width:0}.ptitle{flex-wrap:wrap;align-items:center;gap:8px;font-size:14.5px;font-weight:600;line-height:1.5;display:flex}.pone,.ppending{max-width:82ch;color:var(--ink2);margin-top:3px;font-size:13.5px;line-height:1.65;display:block}.ppending{color:var(--ink3);font-size:13px;font-style:italic}.diff{letter-spacing:.03em;border-radius:4px;flex:none;padding:2px 7px;font-size:10.5px;font-style:normal;font-weight:700;line-height:1.4}.Easy{background:var(--easy-bg);color:var(--easy)}.Medium{background:var(--med-bg);color:var(--med)}.Hard{background:var(--hard-bg);color:var(--hard)}.tick{flex:none;font-size:12px}.tick.done{color:var(--easy)}.tick.fail{color:var(--hard)}.lc{background:var(--line2);color:var(--ink3);letter-spacing:.02em;border-radius:4px;flex:none;padding:2px 6px;font:600 10.5px/1.4 SF Mono,Menlo,monospace}.problem-category{color:var(--ink3);font-size:11.5px;font-weight:400}.phead{margin-bottom:22px}.phead h1{letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:11px;margin:0;font-size:25px;font-weight:700;line-height:1.35;display:flex}.phead .sub{color:var(--ink3);margin:5px 0 0;font-size:13.5px}.phead .sub a{color:var(--accent);text-decoration:none}.phead .sub a:hover{text-decoration:underline}.step{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:14px;overflow:hidden}.step-head{border-bottom:1px solid var(--line2);align-items:center;gap:11px;padding:14px 20px;display:flex}.step-n{background:var(--ink);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:21px;height:21px;font-size:11.5px;font-weight:700;line-height:1;display:flex}.step-t{font-size:15px;font-weight:650}.step-hint{color:var(--ink3);margin-left:auto;font-size:12px}.step-body{padding:18px 20px}.step-body>p{white-space:pre-wrap;margin:0 0 11px}.step-body>p:last-child{margin-bottom:0}.ex{border:1px solid var(--line2);background:#faf9f6;border-radius:7px;margin-bottom:8px;padding:11px 14px;font-size:13.5px}.ex code{color:var(--ink);white-space:pre-wrap;font-size:13px;display:block}.ex .lbl{color:var(--ink3);letter-spacing:.04em;font-size:11.5px;font-weight:600;display:block}.ex .output-label{margin-top:7px}.cons{color:var(--ink2);margin:10px 0 0;padding-left:18px;font-size:13.5px}.cons li{margin-bottom:3px}.qa{border:1px solid var(--line2);background:#fdfcfa;border-radius:8px;margin-bottom:9px;overflow:hidden}.qa-q{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:flex-start;gap:10px;padding:11px 15px;font-size:14px;font-weight:550;line-height:1.65;transition:all .12s;display:flex}.qa-q:hover{background:var(--accent-soft)}.qa-mark{color:var(--accent);flex:none;padding-top:3px;font-size:12px;transition:transform .2s}.qa.open .qa-mark{transform:rotate(90deg)}.qa-q b{color:var(--accent)}.qa-a{border-top:1px solid var(--line2);color:var(--ink2);white-space:pre-wrap;margin:0;padding:12px 15px 13px 37px;font-size:13.8px;line-height:1.72}.hint{border:1px dashed var(--line);width:100%;color:var(--ink2);cursor:pointer;text-align:left;background:0 0;border-radius:8px;margin-bottom:8px;padding:11px 15px;font-size:13.8px;line-height:1.7;display:block}.hint.locked{color:var(--ink3);text-align:center;font-style:italic;transition:all .12s}.hint.locked:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.hint.open{background:#fdfcfa;border-style:solid}.hint b{color:var(--accent);letter-spacing:.05em;margin-bottom:3px;font-size:11.5px;display:block}.reveal-btn{border:1px dashed var(--line);width:100%;color:var(--ink3);cursor:pointer;background:#fdfcfa;border-radius:8px;padding:13px;font-size:13.8px;transition:all .12s}.reveal-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tr-in{border:1px solid var(--line2);background:#faf9f6;border-radius:7px;margin-bottom:14px;padding:11px 14px;font-size:13.5px}.tr-in b{color:var(--ink3);letter-spacing:.04em;margin-bottom:3px;font-size:11.5px;display:block}.tr-in code{color:var(--ink);font-size:13px}.tr-wrap{border:1px solid var(--line2);border-radius:8px;margin-bottom:14px;overflow-x:auto}table.tr-tab{border-collapse:collapse;width:100%;min-width:520px;font-size:13.2px}table.tr-tab th{border-bottom:1px solid var(--line);color:var(--ink3);letter-spacing:.03em;text-align:left;white-space:nowrap;background:#faf9f6;padding:9px 13px;font-size:11.5px;font-weight:700}table.tr-tab td{border-bottom:1px solid var(--line2);vertical-align:top;padding:9px 13px;line-height:1.6}table.tr-tab tr:last-child td{border-bottom:0}table.tr-tab td:not(:last-child){white-space:nowrap;font:12.4px SF Mono,Menlo,monospace}table.tr-tab td:first-child{width:1%;color:var(--ink3)}table.tr-tab tr.fut{display:none}table.tr-tab tr.now{background:var(--accent-soft)}table.tr-tab tr.now td{font-weight:600}table.tr-tab tr.now td:last-child{color:#7a3a1e}.tr-ctl{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tr-btn{border:1px solid var(--line);background:var(--panel);color:var(--ink2);cursor:pointer;border-radius:7px;padding:8px 16px;font-size:13.5px;font-weight:500;transition:all .12s}.tr-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tr-btn:disabled{cursor:default;opacity:.35}.tr-pos{color:var(--ink3);margin:0 4px;font-size:12.5px}.tr-all{margin-left:auto}.tr-res{background:var(--accent-soft);color:#7a3a1e;border:1px solid #f0d9cb;border-radius:8px;margin-top:14px;padding:13px 16px;font-size:13.5px;line-height:1.7}.tr-res b{letter-spacing:.04em;opacity:.75;margin-bottom:3px;font-size:11.5px;display:block}.cx{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.cx div{border:1px solid var(--line2);background:#faf9f6;border-radius:8px;flex:1;min-width:150px;padding:12px 15px}.cx span{color:var(--ink3);letter-spacing:.04em;font-size:11.5px;font-weight:600;display:block}.cx b{letter-spacing:-.01em;font:700 18px SF Mono,Menlo,monospace}.syn{border:1px solid var(--line2);background:#fdfcfa;border-radius:8px;margin-bottom:10px;overflow:hidden}.syn-h{border-bottom:1px solid var(--line2);align-items:center;gap:10px;padding:11px 15px;display:flex}.syn-n{font:650 14px SF Mono,Menlo,monospace}.syn-h .flag{margin:0 0 0 auto}.syn-b{padding:13px 15px}.syn-b pre{border-radius:6px;margin:0;padding:12px 14px;font-size:12.5px;line-height:1.7}.syn-note{color:var(--ink2);white-space:pre-wrap;margin:10px 0 0;font-size:13.3px;line-height:1.7}.vault-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:11px;padding:16px 20px}.vault-src{color:var(--ink3);margin:0 0 7px;font-size:12px}.vault-src button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.vault-src button:hover{text-decoration:underline}.vault-src .lc{vertical-align:1px;margin-left:5px;display:inline-block}.vault-name{margin:0 0 9px;font:650 15px SF Mono,Menlo,monospace}.vault-item pre{border-radius:6px;margin:0;padding:13px 15px;font-size:12.6px;line-height:1.7}.vault-item .syn-note{margin-bottom:0}.vault-flag{margin-top:11px}.vault-flag .flag{margin-top:0}.tools{flex-wrap:wrap;gap:9px;margin-top:20px;display:flex}.tool{border:1px solid var(--line);background:var(--panel);color:var(--ink2);cursor:pointer;border-radius:7px;padding:9px 16px;font-size:13.5px;transition:all .12s}.tool:hover{border-color:var(--accent);color:var(--accent)}.tool.danger:hover{border-color:var(--hard);color:var(--hard)}.data-import{display:none}.saved{height:16px;color:var(--easy);margin-top:7px;font-size:12px}.verdict{flex-wrap:wrap;gap:10px;display:flex}.vbtn{border:1px solid var(--line);cursor:pointer;background:#fdfcfa;border-radius:8px;flex:1;min-width:150px;padding:13px;font-size:14px;font-weight:600;transition:all .12s}.vbtn.pass:hover,.vbtn.pass.on{border-color:var(--easy);background:var(--easy-bg);color:var(--easy)}.vbtn.fail:hover,.vbtn.fail.on{border-color:var(--hard);background:var(--hard-bg);color:var(--hard)}.reset-verdict{border:1px solid var(--line);min-height:46px;color:var(--ink3);cursor:pointer;background:#fdfcfa;border-radius:8px;flex:0 0 42px;place-items:center;padding:0;font-size:20px;line-height:1;transition:all .12s;display:grid}.reset-verdict:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.vstat{border:1px solid var(--line2);color:var(--ink2);white-space:pre-wrap;background:#faf9f6;border-radius:7px;margin-top:12px;padding:11px 14px;font-size:13.5px}@media (width<=640px){.prow{padding-left:20px}.cat-meta{display:none}.step-head{align-items:flex-start}.step-hint{text-align:right;padding-top:2px}.tr-all{margin-left:0}}
