:root{color-scheme:light;--ink:#20312f;--muted:#6a7771;--line:#dce4de;--green:#116b59}
*{box-sizing:border-box;min-width:0}body{margin:0;background:#f5f4ef;color:var(--ink);font:14px/1.5 system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #d49b41;outline-offset:3px}.shell{width:min(1200px,calc(100% - 40px));margin:auto;padding:24px 0}.map-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}h1{font-size:24px;line-height:1.3;margin:0;font-weight:750}.progress{color:var(--muted);font-size:13px;white-space:nowrap}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.filters{display:flex;gap:5px;flex-wrap:wrap}.filters button{padding:7px 12px;border:1px solid transparent;background:transparent;border-radius:7px;color:var(--muted);cursor:pointer}.filters button:hover{background:#e9eee7}.filters button.active{background:var(--green);color:#fff}input[type=search]{width:240px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 12px;color:var(--ink)}.levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.level{position:relative;display:flex;flex-direction:column;min-height:145px;padding:14px 15px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;transition:border-color .15s,background .15s}.level:hover{border-color:#78a991;background:#fafdf9}.level-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.badge{font-size:11px;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums}.status{font-size:11px;color:var(--muted)}.level h2{font-size:15px;line-height:1.5;margin:0 0 4px;font-weight:650;overflow-wrap:anywhere}.course-description{font-size:12px;line-height:1.65;color:var(--muted);margin:0 0 10px;overflow-wrap:anywhere}.start{align-self:flex-end;margin-top:auto;color:var(--green);font-size:12px}.start::after{content:' →'}.start::before{content:'';position:absolute;inset:0;border-radius:10px}.level:focus-within{outline:2px solid var(--green);outline-offset:2px}.level.complete{background:#edf5ed;border-color:#c1d8c7}.level.complete .status{color:var(--green)}footer{display:flex;gap:24px;align-items:baseline;margin-top:24px;color:var(--muted);font-size:12px}footer details{flex:1}summary{cursor:pointer}footer li{margin:8px 0}footer a:hover{text-decoration:underline}#no-results{padding:40px 0;text-align:center;color:var(--muted)}
@media(min-width:1500px){.shell{width:min(1440px,calc(100% - 64px))}.levels{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1000px){.levels{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbar{gap:10px}input[type=search]{width:200px}}
@media(max-width:700px){.shell{width:calc(100% - 28px);padding:18px 0}.map-header{margin-bottom:12px}h1{font-size:22px}.toolbar{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:12px}.filters{justify-content:space-between;gap:2px}.filters button{padding:7px 9px;font-size:12px}input[type=search]{width:100%}.levels{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.level{padding:11px;min-height:150px}.level h2{font-size:14px}.course-description{font-size:11px}.progress{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
