:root{--bg: #f7f7f8;--surface: #ffffff;--text: #1d1d1f;--muted: #6b6b72;--border: #e2e2e6;--ok: #2e7d32;--error: #c62828;--accent: #3b5bdb;--accent-soft: #edf2ff;--shadow: 0 8px 24px rgba(0, 0, 0, .12);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #141416;--surface: #1e1e22;--text: #ececf1;--muted: #9a9aa3;--border: #2f2f36;--ok: #66bb6a;--error: #ef5350;--accent: #748ffc;--accent-soft: #252a40;--shadow: 0 8px 24px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--accent)}button,input,select{font:inherit;color:var(--text)}button{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:6px 12px;cursor:pointer}button:disabled{opacity:.6;cursor:default}h1{margin:0 0 16px;font-size:1.6rem}.muted{color:var(--muted)}.error{color:var(--error)}.empty{color:var(--muted);padding:24px 0}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;font-size:1.1rem;color:var(--text);text-decoration:none}.topbar-user{margin-left:auto;color:var(--muted);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45vw}.burger{position:relative}.burger-button{width:40px;height:40px;padding:10px 9px;display:flex;flex-direction:column;justify-content:space-between}.burger-button span{display:block;height:2px;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s}.burger-button.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.burger-button.open span:nth-child(2){opacity:0}.burger-button.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.menu{position:absolute;top:calc(100% + 8px);left:0;min-width:200px;display:flex;flex-direction:column;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.menu a,.menu-logout{display:block;padding:10px 12px;border-radius:6px;color:var(--text);text-decoration:none;text-align:left;border:none;background:none}.menu a:hover,.menu-logout:hover{background:var(--accent-soft)}.menu a.active{color:var(--accent);font-weight:600}.menu-logout{margin-top:4px;border-top:1px solid var(--border);border-radius:0 0 6px 6px;color:var(--error)}.page{max-width:1080px;margin:0 auto;padding:24px 16px 48px}.search-bar{display:flex;gap:8px;flex-wrap:wrap}.search-bar input{flex:1 1 260px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.search-bar select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.topics{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.chip-button{border-radius:999px;padding:4px 12px;font-size:.9rem}.chip-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.chip-button .count{opacity:.6;margin-left:2px}.course-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.course-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.course-card h3{margin:0;font-size:1.05rem;line-height:1.3}.course-card h3 a{color:var(--text);text-decoration:none}.course-card h3 a:hover{color:var(--accent)}.course-meta,.course-footer{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.8rem;color:var(--muted)}.course-footer{margin-top:auto}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 8px}.level-beginner{color:var(--ok)}.level-advanced{color:var(--error)}.price{margin-left:auto;font-weight:600;color:var(--text)}.price.free{color:var(--ok)}.course-cover{width:calc(100% + 28px);margin:-14px -14px 2px;aspect-ratio:16 / 9;object-fit:cover;border-radius:10px 10px 0 0;background:var(--accent-soft)}.warning{color:#b26a00}.star-button{position:absolute;top:8px;right:8px;z-index:1;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted);background:var(--surface);box-shadow:0 1px 4px #00000026}.star-button:hover,.star-button.active{color:#f5a623}.course-card .course-meta{padding-right:40px}.course-card .course-cover+.course-meta{padding-right:0}.course-missing{color:var(--muted);justify-content:space-between}.toast{position:sticky;top:61px;z-index:9;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#fdecea;color:#8a1c1c;border-bottom:1px solid #f5c2c0}.toast button{border:none;background:none;color:inherit;font-size:1.2rem;line-height:1}.pending{color:var(--accent)}.source-note{margin-top:32px;font-size:.85rem}.course-description{margin:0;font-size:.9rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.load-more{display:flex;justify-content:center;margin-top:20px}.profile{display:grid;grid-template-columns:max-content 1fr;gap:10px 20px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:560px}.profile dt{color:var(--muted)}.profile dd{margin:0;word-break:break-word}.name-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.name-form input{flex:1 1 180px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.link-button{border:none;background:none;padding:0;color:var(--accent);text-decoration:underline}.section-head{display:flex;align-items:center;justify-content:space-between}.services{list-style:none;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.service{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.service.ok{border-left-color:var(--ok)}.service.error{border-left-color:var(--error)}.service-head{display:flex;justify-content:space-between}.service.ok .badge{color:var(--ok)}.service.error .badge{color:var(--error)}pre{margin:0;font-size:12px;white-space:pre-wrap;word-break:break-word}.links li{margin:6px 0}
