@charset "UTF-8";:root{--nb-indigo: #4c5fd5;--nb-indigo-dark: #3646b0;--nb-indigo-50: #eef0ff;--nb-sky: #7cc4fa;--nb-sun: #ffc542;--nb-coral: #ff7a6b;--nb-mint: #38c9a0;--nb-ink: #1e2140;--nb-muted: #5d6185;--nb-cloud: #f4f6ff;--nb-line: #e1e4f5;--nb-card: #ffffff;--nb-danger: #d93a3f;--nb-radius: 18px;--nb-shadow: 0 1px 2px rgba(30, 33, 64, .04), 0 8px 24px rgba(30, 33, 64, .06);--nb-shadow-hover: 0 2px 4px rgba(30, 33, 64, .06), 0 14px 32px rgba(30, 33, 64, .1)}*{box-sizing:border-box}html,body{margin:0;background:var(--nb-cloud);color:var(--nb-ink);font-family:Nunito,system-ui,sans-serif;-webkit-font-smoothing:antialiased}body{min-height:100vh}a{color:var(--nb-indigo)}h1,h2,h3{font-weight:900;margin:0 0 .5rem;letter-spacing:-.01em}h1{font-size:30px}h2{font-size:20px}h3{font-size:16px}code{font-size:12px;background:var(--nb-cloud);padding:1px 6px;border-radius:6px}.nb-card{background:var(--nb-card);border-radius:var(--nb-radius);box-shadow:var(--nb-shadow);padding:20px 22px;min-width:0}.nb-card>h2:first-child,.nb-card>.nb-card-head:first-child{margin-bottom:12px}.nb-card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.nb-card-head h2,.nb-card-head h3{margin:0}.nb-card-head p{margin:2px 0 0}.nb-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.nb-grid-2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.nb-grid-3{display:grid;gap:16px;grid-template-columns:2fr 1fr}.nb-kpis{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.nb-stack{display:flex;flex-direction:column;gap:16px}.nb-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.nb-spacer{flex:1}.nb-muted{color:var(--nb-muted)}.nb-small{font-size:13px}@media(max-width:860px){.nb-grid-2,.nb-grid-3{grid-template-columns:minmax(0,1fr)}}.nb-page-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.nb-page-head h1{margin:0}.nb-page-head p{margin:4px 0 0;color:var(--nb-muted)}.nb-eyebrow{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--nb-indigo)}.nb-back{display:inline-flex;gap:6px;align-items:center;font-weight:800;text-decoration:none;color:var(--nb-muted);margin-bottom:10px}.nb-back:hover{color:var(--nb-indigo)}.nb-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:12px;padding:10px 18px;font:800 15px Nunito,sans-serif;cursor:pointer;background:var(--nb-indigo);color:#fff;text-decoration:none;transition:background .15s,transform .1s}.nb-btn:hover{background:var(--nb-indigo-dark)}.nb-btn:active{transform:translateY(1px)}.nb-btn:disabled{opacity:.5;cursor:default}.nb-btn.ghost{background:transparent;color:var(--nb-indigo);border:2px solid var(--nb-line)}.nb-btn.ghost:hover{background:var(--nb-indigo-50)}.nb-btn.danger{background:var(--nb-danger)}.nb-btn.sm{padding:6px 12px;font-size:13px;border-radius:10px}.nb-input,.nb-select,textarea.nb-input{width:100%;border:2px solid var(--nb-line);border-radius:12px;padding:10px 12px;font:600 15px Nunito,sans-serif;color:var(--nb-ink);background:#fff}.nb-input:focus,.nb-select:focus{outline:none;border-color:var(--nb-indigo);box-shadow:0 0 0 4px var(--nb-indigo-50)}.nb-search{max-width:280px}label.nb-label{display:block;font-weight:800;font-size:13px;margin:12px 0 4px;color:var(--nb-muted)}.nb-error{color:#c62828;font-weight:700}.nb-ok{color:#1b7f5b;font-weight:700}:focus-visible{outline:3px solid var(--nb-sky);outline-offset:2px}.nb-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800;background:var(--nb-cloud);color:var(--nb-ink);white-space:nowrap}.nb-chip[data-status=mastered]{background:#ddf7ea;color:#13664a}.nb-chip[data-status=learning]{background:#e3e6ff;color:#3646b0}.nb-chip[data-status=review]{background:#ffe3e0;color:#a03128}.nb-chip[data-status=available]{background:#fff4d6;color:#7a5800}.nb-chip[data-status=locked]{background:var(--nb-cloud);color:var(--nb-muted)}.nb-chip.premium{background:var(--nb-sun);color:#4a3400}.nb-bar{height:10px;border-radius:99px;background:var(--nb-line);overflow:hidden}.nb-bar>span{display:block;height:100%;background:var(--nb-mint);border-radius:99px}.nb-table-wrap{overflow-x:auto;margin:0 -4px}.nb-table{width:100%;border-collapse:collapse}.nb-table th,.nb-table td{text-align:left;padding:10px;border-bottom:1px solid var(--nb-line);font-size:14px;vertical-align:middle}.nb-table th{color:var(--nb-muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.nb-table tbody tr:hover{background:#fafbff}.nb-table td.num,.nb-table th.num{text-align:right;font-variant-numeric:tabular-nums}.nb-empty{text-align:center;padding:28px 12px;color:var(--nb-muted)}.nb-tabs{display:flex;gap:4px;background:#fff;padding:4px;border-radius:14px;box-shadow:var(--nb-shadow);width:fit-content;max-width:100%;overflow-x:auto}.nb-tabs button{border:0;background:transparent;font:800 14px Nunito,sans-serif;color:var(--nb-muted);padding:8px 14px;border-radius:10px;cursor:pointer;white-space:nowrap}.nb-tabs button.on{background:var(--nb-indigo);color:#fff}.nb-avatar{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-weight:900;font-size:22px;color:#fff;flex:none}.nb-topbar{display:flex;align-items:center;gap:16px;padding:12px 28px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--nb-line);position:sticky;top:0;z-index:10}.nb-topbar nav{display:flex;gap:4px}.nb-topbar nav a{font-weight:800;text-decoration:none;color:var(--nb-muted);padding:8px 12px;border-radius:10px;white-space:nowrap}.nb-topbar nav a.on,.nb-topbar nav a:hover{background:var(--nb-indigo-50);color:var(--nb-indigo)}.nb-logo{display:flex;align-items:center;gap:8px;font-weight:900;font-size:22px;color:var(--nb-indigo);text-decoration:none}.nb-page{max-width:1160px;margin:0 auto;padding:28px}.nb-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.nb-side{background:var(--nb-ink);color:#fff;padding:20px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px}.nb-side .nb-logo{color:#fff;padding:0 8px 14px}.nb-side a.nav{display:flex;align-items:center;gap:10px;color:#c9cdf0;text-decoration:none;font-weight:800;padding:10px 12px;border-radius:12px}.nb-side a.nav:hover{background:#ffffff0f;color:#fff}.nb-side a.nav.on{background:var(--nb-indigo);color:#fff}.nb-side .who{margin-top:auto;font-size:12px;color:#a9aed8;padding:10px 8px;border-top:1px solid rgba(255,255,255,.1);word-break:break-all}.nb-shell .content{min-width:0}.nb-shell main.nb-page{max-width:none;margin:0;padding:28px clamp(16px,2.5vw,40px)}.nb-dash{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));margin-bottom:16px}.nb-dash>.nb-grid-2{display:contents}.nb-dash .wide{grid-column:1/-1}@media(min-width:1700px){.nb-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:900px){.nb-shell{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.nb-page{padding:16px}.nb-topbar{padding:10px 16px;gap:8px}.nb-topbar .nb-logo .nb-logo-full{display:none}.nb-topbar .nb-logo .nb-logo-icon{display:block}.nb-topbar>a:first-child{flex:none}.nb-topbar nav a{padding:8px}.nb-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}h1{font-size:24px}}.nb-modal-backdrop{position:fixed;inset:0;background:#1e214073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;z-index:50;animation:nb-fade .15s ease-out}.nb-modal{background:#fff;border-radius:22px;box-shadow:0 24px 64px #1e214040;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow:auto;padding:24px;animation:nb-pop .18s ease-out}.nb-modal-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.nb-modal-head h2{margin:0}.nb-modal-foot{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}.nb-icon-btn{border:0;background:var(--nb-cloud);width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:18px;line-height:1;color:var(--nb-muted)}.nb-icon-btn:hover{background:var(--nb-indigo-50);color:var(--nb-indigo)}@keyframes nb-fade{0%{opacity:0}}@keyframes nb-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(max-width:600px){.nb-modal-backdrop{place-items:end center;padding:0}.nb-modal{border-radius:22px 22px 0 0;max-height:92vh}}app-root>router-outlet+*{display:block;flex:1 0 auto}
