.xp{--g:#107C41;--gd:#0B3D24;--gs:#E8F5EE;--am:#F5A623;--ams:#FFF6E5;--ln:#C8D9CF;--mu:#5A6A60;--bad:#B42318;--badbg:#FEF3F2;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1A1A1A;line-height:1.5;margin:24px 0}
.xp *{box-sizing:border-box}
.xp-head{background:linear-gradient(135deg,var(--gd),var(--g) 70%);color:#fff;border-radius:12px;padding:16px 18px;margin-bottom:12px}
.xp-head h2{margin:0 0 4px;font-size:1.3rem}.xp-head p{margin:0;opacity:.92}
.xp-prog{margin-top:10px;background:rgba(255,255,255,.25);border-radius:99px;height:8px;overflow:hidden}.xp-prog i{display:block;height:100%;background:var(--am);width:0}
.xp-progt{font-size:.85rem;margin-top:4px}
.xp-note{font-size:.8rem;color:var(--mu);margin:6px 2px 10px}
.xp-gridw{overflow:auto;border:1px solid var(--ln);border-radius:10px;background:#fff;margin-bottom:14px}
.xp-grid{border-collapse:collapse;font-size:.88rem;min-width:100%}
.xp-grid th,.xp-grid td{border:1px solid #E2ECE6;padding:5px 9px;white-space:nowrap}
.xp-grid thead th,.xp-grid td.rn{background:var(--gs);color:var(--gd);font-weight:600;text-align:center;font-size:.78rem}
.xp-grid tr.hdr td{font-weight:700;background:#F6FBF8}.xp-grid td.num{text-align:right}
.xp-task{background:#fff;border:1px solid var(--ln);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.xp-task.done{border-color:var(--g);box-shadow:0 0 0 2px var(--gs)}
.xp-t1{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.xp-n{background:var(--g);color:#fff;border-radius:99px;min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.xp-task h3{margin:0;font-size:1.05rem;flex:1}
.xp-lv{font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--gs);color:var(--gd)}
.xp-lv.Medium{background:var(--ams);color:#8A5A00}.xp-lv.Hard{background:#FDE7E7;color:var(--bad)}
.xp-ok{color:var(--g);font-weight:700;font-size:.85rem}
.xp-sec{margin:8px 0 0;font-size:.93rem}.xp-sec b{color:var(--gd)}
.xp-sec ol{margin:4px 0 0;padding-left:22px}.xp-sec li{margin:2px 0}
.xp-row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.xp-in{flex:1 1 260px;font:15px ui-monospace,Consolas,monospace;padding:10px 12px;border:2px solid var(--ln);border-radius:10px}
.xp-in:focus{outline:none;border-color:var(--g)}
.xp-b{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;font-size:.9rem}
.xp-check{background:var(--g);color:#fff}.xp-hint,.xp-sol{background:var(--gs);color:var(--gd)}
.xp-live{font:14px ui-monospace,Consolas,monospace;color:var(--mu);margin-top:6px;min-height:1.3em}
.xp-msg{margin-top:8px;padding:9px 12px;border-radius:10px;font-weight:600;display:none}
.xp-msg.good{display:block;background:var(--gs);color:var(--gd)}.xp-msg.bad{display:block;background:var(--badbg);color:var(--bad)}
.xp-extra{margin-top:8px;padding:9px 12px;border-radius:10px;background:var(--ams);display:none;font-size:.92rem}
.xp-extra code{background:#fff;padding:2px 6px;border-radius:6px}
.xp-sh{font-size:.85rem;color:#0B3D24;margin:4px 2px}
.xp-wrap{margin:28px 0}.xp-hublink{font-size:.9rem;margin:8px 2px}

.xp-about{background:#F2F8FF;border:1px solid #CFE2F7;border-radius:8px;padding:8px 12px;margin:4px 0 8px;font-size:.85rem;line-height:1.45}.xp-about p{margin:4px 0}.xp-about ul{margin:4px 0;padding-left:18px}.xp-about li{margin:1px 0}
.xp-grid td{white-space:pre}
.xp-static{font-size:.9rem;color:#5A6A60}
