.nn-tp-paused-banner{background:var(--accent-warn-soft);border-bottom:1px solid var(--accent-warn);padding:12px 20px}.nn-tp-paused-banner[hidden]{display:none}.nn-tp-paused-banner-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:14px}.nn-tp-paused-banner-icon{width:22px;height:22px;color:var(--accent-warn);flex-shrink:0}.nn-tp-paused-banner-body{flex:1;display:flex;flex-direction:column;gap:2px;line-height:1.35}.nn-tp-paused-banner-title{font-weight:600;font-size:var(--fs-sm);color:var(--text)}.nn-tp-paused-banner-desc{font-size:var(--fs-xs);color:var(--text-muted)}@media (max-width:720px){.nn-tp-paused-banner-inner{flex-wrap:wrap}.nn-tp-paused-banner-body{flex:1 1 100%}}.nn-tp-tz-notice{position:relative;display:flex;align-items:center;gap:14px;padding:12px 16px;margin-bottom:16px;background:var(--accent-warn-soft);border-radius:var(--radius);color:var(--text);font-size:var(--fs-sm)}.nn-tp-tz-notice[hidden]{display:none}.nn-tp-tz-notice [data-lucide] svg{width:18px;height:18px;color:var(--accent-warn);flex-shrink:0}.nn-tp-tz-notice-body{flex:1;line-height:1.4}.nn-tp-tz-notice strong{font-weight:600}.nn-tp-tz-notice-dismiss{width:24px;height:24px;background:0 0;border:0;border-radius:50%;color:var(--text-muted);cursor:pointer;font-size:var(--fs-md);line-height:1;transition:background 150ms var(--ease-hover)}.nn-tp-tz-notice-dismiss:hover{background:rgba(0,0,0,.08);color:var(--text)}[data-theme=dark] .nn-tp-tz-notice-dismiss:hover{background:rgba(255,255,255,.08)}.nn-tp-dirty-bar{position:fixed;left:50%;bottom:20px;transform:translate(-50%,120%);z-index:90;display:flex;align-items:center;gap:18px;padding:10px 12px 10px 18px;background:var(--card);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-lg);transition:transform 280ms var(--ease-out),opacity 280ms var(--ease-out);opacity:0;pointer-events:none;max-width:calc(100vw - 32px)}.nn-tp-dirty-bar.is-visible{transform:translate(-50%,0);opacity:1;pointer-events:auto}.nn-tp-dirty-bar-label{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text);white-space:nowrap}.nn-tp-dirty-bar-label strong{font-variant-numeric:tabular-nums}.nn-tp-dirty-bar-actions{display:inline-flex;align-items:center;gap:6px}.nn-tp-dirty-bar-actions .nn-tp-btn{padding:7px 14px;font-size:var(--fs-sm)}.nn-tp-dirty-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-warn);box-shadow:0 0 0 0 var(--accent-warn-soft);animation:nn-tp-pulse 2.4s var(--ease-in-out) infinite}@media (max-width:540px){[data-dirty-unsaved]{display:none}.nn-tp-dirty-bar{gap:12px;padding:8px 10px 8px 14px}}.nn-tp-dirty-save{position:relative;display:inline-grid;align-items:center;justify-items:center;transition-property:background,border-color,color;transition-duration:220ms;transition-timing-function:var(--ease-hover)}.nn-tp-dirty-save>.nn-tp-dirty-save-state{grid-area:1/1;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;opacity:0;transform:scale(.25);filter:blur(4px);transition-property:opacity,transform,filter;transition-duration:220ms;transition-timing-function:cubic-bezier(0.2,0,0,1);pointer-events:none}.nn-tp-dirty-save[data-state=idle]>[data-save-state=idle],.nn-tp-dirty-save[data-state=saved]>[data-save-state=saved],.nn-tp-dirty-save[data-state=saving]>[data-save-state=saving]{opacity:1;transform:scale(1);filter:blur(0)}.nn-tp-dirty-save[data-state=saved],.nn-tp-dirty-save[data-state=saved]:focus,.nn-tp-dirty-save[data-state=saved]:focus-visible,.nn-tp-dirty-save[data-state=saved]:hover,[data-theme=dark] .nn-tp-dirty-save[data-state=saved],[data-theme=dark] .nn-tp-dirty-save[data-state=saved]:focus,[data-theme=dark] .nn-tp-dirty-save[data-state=saved]:focus-visible,[data-theme=dark] .nn-tp-dirty-save[data-state=saved]:hover{background:var(--success,#2da44e);border-color:var(--success,#2da44e);color:#fff;cursor:default;transform:none}.nn-tp-dirty-save[data-state=saved] svg,.nn-tp-dirty-save[data-state=saved]:hover svg,[data-theme=dark] .nn-tp-dirty-save[data-state=saved] svg,[data-theme=dark] .nn-tp-dirty-save[data-state=saved]:hover svg{width:14px;height:14px;color:#fff}.nn-tp-dirty-save:disabled{cursor:default;transform:none;opacity:1}.nn-tp-dirty-save-spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:nn-tp-spin .7s linear infinite}@keyframes nn-tp-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.nn-tp-dirty-save-spinner{animation:none}.nn-tp-dirty-save>.nn-tp-dirty-save-state{transition:none}}.nn-tp-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(10px);padding:12px 18px;background:var(--text);color:var(--card);border-radius:999px;font-size:var(--fs-sm);font-weight:500;box-shadow:var(--shadow-lg);z-index:100;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.nn-tp-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}.nn-tp-toast[data-toast-type=warn]{border-radius:12px;max-width:min(440px,calc(100vw - 32px));text-align:left;line-height:1.45;padding:12px 16px;border-left:3px solid var(--accent-warn,#d4900a)}.nn-tp-loading .nn-tp-bento-card,.nn-tp-loading .nn-tp-card,.nn-tp-loading .nn-tp-card-lg{position:relative;overflow:hidden}.nn-tp-loading .nn-tp-bento-card *,.nn-tp-loading .nn-tp-card-lg>*,.nn-tp-loading .nn-tp-card>*{opacity:.35;pointer-events:none}.nn-tp-loading .nn-tp-bento-card::after,.nn-tp-loading .nn-tp-card-lg::after,.nn-tp-loading .nn-tp-card::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,var(--accent-soft) 50%,transparent 70%);background-size:200% 100%;animation:nn-tp-shimmer 1.4s ease-in-out infinite;pointer-events:none}@keyframes nn-tp-shimmer{0%{background-position:200% 0}100%{background-position:-100% 0}}.nn-tp-pfp-panel{max-width:380px;width:calc(100% - 24px);padding:18px;gap:12px;display:flex;flex-direction:column}.nn-tp-pfp-grabber{display:none}.nn-tp-pfp-actions{display:flex;flex-direction:column;gap:4px}.nn-tp-pfp-action{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:12px;width:100%;padding:10px;background:0 0;border:1px solid transparent;border-radius:var(--radius-sm);text-align:left;cursor:pointer;color:var(--text);transition:background 120ms var(--ease-hover),border-color 120ms var(--ease-hover)}.nn-tp-pfp-action:hover{background:var(--bg-elev);border-color:var(--border-soft)}.nn-tp-pfp-action:active{transform:scale(.99)}.nn-tp-pfp-action-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--bg-elev);border:1px solid var(--border-soft);color:var(--text-muted)}.nn-tp-pfp-action:hover .nn-tp-pfp-action-icon{color:var(--text)}.nn-tp-pfp-action-icon svg{width:16px;height:16px}.nn-tp-pfp-action-body{display:flex;flex-direction:column;gap:1px}.nn-tp-pfp-action-body strong{font-weight:600;font-size:var(--fs-base)}.nn-tp-pfp-action-body span{font-size:var(--fs-sm);color:var(--text-muted)}.nn-tp-pfp-action-caret{color:var(--text-faint);width:14px;height:14px}.nn-tp-pfp-section{display:flex;flex-direction:column;gap:8px}.nn-tp-pfp-section[hidden]{display:none}.nn-tp-pfp-section-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;padding:4px 4px 0}.nn-tp-status-block{display:flex;flex-direction:column;gap:6px;padding:4px}.nn-tp-status-heading{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);line-height:1.2}.nn-tp-status-heading strong{font-weight:600;letter-spacing:-.01em}.nn-tp-status-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.nn-tp-status-icon svg{width:18px;height:18px;stroke-width:2}.nn-tp-status-block[data-state=active] .nn-tp-status-heading strong,.nn-tp-status-block[data-state=active] .nn-tp-status-icon{color:var(--success,#007a47)}.nn-tp-status-block[data-state=pending] .nn-tp-status-heading strong,.nn-tp-status-block[data-state=pending] .nn-tp-status-icon{color:var(--accent-warn,#b26a00)}.nn-tp-status-block[data-state=paused] .nn-tp-status-heading strong,.nn-tp-status-block[data-state=paused] .nn-tp-status-icon{color:var(--danger,#b32d2e)}.nn-tp-status-block[data-state=revoked] .nn-tp-status-heading strong,.nn-tp-status-block[data-state=revoked] .nn-tp-status-icon{color:var(--danger,#b32d2e)}.nn-tp-status-message{margin:0;padding-left:28px;font-size:var(--fs-sm);line-height:1.45;color:var(--text-muted)}.nn-tp-status-message:empty{display:none}.nn-tp-theme-pill{align-self:flex-start;display:inline-flex;background:var(--card);border:1px solid var(--border);border-radius:999px;padding:4px;position:relative}.nn-tp-theme-pill-btn{width:40px;height:36px;display:grid;place-items:center;padding:0;background:0 0;border:0;border-radius:999px;color:var(--text-faint);cursor:pointer;position:relative;z-index:1;transition:color 180ms var(--ease-hover)}.nn-tp-theme-pill-btn svg{width:16px;height:16px}.nn-tp-theme-pill-btn:hover{color:var(--text)}.nn-tp-theme-pill-btn[aria-checked=true]{color:var(--text)}.nn-tp-theme-pill-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nn-tp-theme-pill-indicator{position:absolute;top:4px;bottom:4px;left:var(--x,4px);width:var(--w,0);background:var(--bg-elev);border-radius:999px;z-index:0;opacity:0}.nn-tp-theme-pill-indicator.is-ready{opacity:1;transition-property:left,width;transition-duration:240ms;transition-timing-function:var(--ease-in-out)}.nn-tp-theme-pill-btn[data-tooltip]{position:relative}.nn-tp-theme-pill-btn[data-tooltip]::after,.nn-tp-theme-pill-btn[data-tooltip]::before{position:absolute;pointer-events:none;opacity:0;transform:translate(-50%,2px);transition:opacity 140ms var(--ease-hover),transform 140ms var(--ease-hover)}.nn-tp-theme-pill-btn[data-tooltip]::after{content:attr(data-tooltip);bottom:calc(100% + 8px);left:50%;padding:4px 10px;background:var(--text);color:var(--card);border-radius:6px;font-size:var(--fs-xs);font-weight:500;white-space:nowrap;z-index:10}.nn-tp-theme-pill-btn[data-tooltip]::before{content:"";bottom:calc(100% + 3px);left:50%;border:5px solid transparent;border-top-color:var(--text);z-index:10}.nn-tp-theme-pill-btn[data-tooltip]:focus-visible::after,.nn-tp-theme-pill-btn[data-tooltip]:focus-visible::before,.nn-tp-theme-pill-btn[data-tooltip]:hover::after,.nn-tp-theme-pill-btn[data-tooltip]:hover::before{opacity:1;transform:translate(-50%,0)}.nn-tp-pfp-actions #nn-tp-pfp-hidden-list{display:contents}@media (max-width:640px){.nn-tp-pfp-modal{padding:0;align-items:flex-end}.nn-tp-pfp-panel{width:100%;max-width:100%;border-radius:24px 24px 0 0;padding:6px 18px max(22px,env(safe-area-inset-bottom)) 18px;animation:nn-tp-sheet-in 420ms cubic-bezier(.34,1.56,.64,1);touch-action:pan-y}.nn-tp-pfp-grabber{display:block;width:38px;height:4px;border-radius:100px;background:var(--border);margin:6px auto 4px;flex-shrink:0}.nn-tp-pfp-action{padding:12px 10px}}@keyframes nn-tp-sheet-in{from{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.nn-tp-pfp-panel{animation:none}}.nn-tp-pill-filter{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:var(--fs-sm);color:var(--text-muted)}.nn-tp-pill-filter input{accent-color:var(--accent);margin:0}.nn-tp-pill-filter:has(input:checked){color:var(--accent);background:var(--accent-soft)}.nn-tp-count-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:999px;font-size:var(--fs-sm);color:var(--text-muted)}.nn-tp-count-pill[hidden]{display:none}.nn-tp-count-pill svg{width:14px;height:14px}.nn-tp-count-pill strong{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.nn-tp-schedule{display:flex;flex-direction:column;gap:12px}.nn-tp-schedule-section{display:flex;flex-direction:column;gap:6px}.nn-tp-schedule-loadmore{display:flex;justify-content:center;padding:4px 0}.nn-tp-schedule-loadmore[hidden]{display:none}.nn-tp-now-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:10px 0}.nn-tp-now-divider[hidden]{display:none}.nn-tp-now-divider-line{height:1px;background:var(--border-soft)}.nn-tp-now-divider-label{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--accent-soft);color:var(--accent);border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.nn-tp-now-divider-label svg{width:12px;height:12px}.nn-tp-month-divider{display:flex;align-items:center;gap:10px;padding:10px 2px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);user-select:none}.nn-tp-month-divider::after{content:'';flex:1;height:1px;background:var(--border-soft)}.nn-tp-month-divider span{flex:0 0 auto}.nn-tp-lesson-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.nn-tp-lesson-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:10px 14px;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius);cursor:pointer;transition-property:background,border-color,transform;transition-duration:140ms;transition-timing-function:var(--ease-hover)}.nn-tp-lesson-row:hover{background:var(--bg-elev);border-color:var(--border)}.nn-tp-lesson-row:active{transform:scale(.996)}.nn-tp-lesson-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nn-tp-lesson-row.is-absent,.nn-tp-lesson-row.is-cancelled{opacity:.65}.nn-tp-lesson-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:var(--fs-sm);flex-shrink:0}.nn-tp-lesson-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nn-tp-lesson-meta{display:flex;flex-direction:column;min-width:0}.nn-tp-lesson-meta strong{font-weight:600;font-size:var(--fs-base);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nn-tp-lesson-meta span{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.nn-tp-lesson-tail{display:inline-flex;align-items:center;gap:8px}.nn-tp-lesson-badge{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.nn-tp-lesson-badge.is-bad{background:var(--danger-soft);color:var(--danger)}.nn-tp-lesson-badge.is-muted{background:var(--bg-elev);color:var(--text-faint)}.nn-tp-lesson-summary-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--accent-soft);color:var(--accent);border-radius:999px;font-size:11px;font-weight:600}.nn-tp-lesson-summary-pill svg{width:12px;height:12px}.nn-tp-lesson-row.is-error{display:block;background:var(--danger-soft);border-color:var(--danger);color:var(--text);cursor:default}.nn-tp-lesson-row.is-error .nn-tp-lesson-meta strong{overflow:visible;white-space:normal;text-overflow:clip}.nn-tp-schedule-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;background:var(--bg-elev);border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-muted)}.nn-tp-schedule-empty[hidden]{display:none}.nn-tp-schedule-empty .nn-tp-h3{color:var(--text)}.nn-tp-lesson-status{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:6px 10px;border-radius:var(--radius-sm);font-size:var(--fs-sm)}.nn-tp-lesson-status.is-bad{background:var(--danger-soft);color:var(--danger)}.nn-tp-lesson-status.is-muted{background:var(--bg-elev);color:var(--text-faint)}.nn-tp-lesson-status svg{width:14px;height:14px}.nn-tp-lesson-actions{margin-bottom:16px}.nn-tp-lesson-section{margin-bottom:18px}.nn-tp-lesson-section .nn-tp-h3{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px}.nn-tp-lesson-section .nn-tp-h3 svg{width:14px;height:14px}.nn-tp-lesson-summary-body{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:12px 14px;line-height:1.55}.nn-tp-lesson-summary-body p{margin:0 0 10px}.nn-tp-lesson-summary-body p:last-child{margin-bottom:0}.nn-tp-md h1,.nn-tp-md h2,.nn-tp-md h3,.nn-tp-md h4{font-family:var(--font-header);font-weight:600;color:var(--text);margin:14px 0 6px;line-height:1.3}.nn-tp-md h1{font-size:var(--fs-md)}.nn-tp-md h2{font-size:var(--fs-base)}.nn-tp-md h3,.nn-tp-md h4{font-size:var(--fs-sm)}.nn-tp-md h1:first-child,.nn-tp-md h2:first-child,.nn-tp-md h3:first-child{margin-top:0}.nn-tp-md ol,.nn-tp-md ul{margin:6px 0 10px;padding-left:22px}.nn-tp-md li{margin-bottom:3px}.nn-tp-md strong{font-weight:600;color:var(--text)}.nn-tp-md a{color:var(--accent);text-decoration:underline}.nn-tp-md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--card);border:1px solid var(--border-soft);padding:1px 5px;border-radius:4px}.nn-tp-md pre{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:10px 12px;overflow-x:auto;margin:8px 0}.nn-tp-md pre code{background:0 0;border:0;padding:0}.nn-tp-md blockquote{margin:8px 0;padding:4px 12px;border-left:3px solid var(--border);color:var(--text-muted)}.nn-tp-md .katex-display{overflow-x:auto;overflow-y:hidden}.nn-tp-lesson-att{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-variant-numeric:tabular-nums}.nn-tp-lesson-att-row{display:flex;justify-content:space-between;padding:4px 0;font-size:var(--fs-sm);border-bottom:1px dotted var(--border-soft)}.nn-tp-lesson-att-row span{color:var(--text-muted)}@media (max-width:560px){.nn-tp-lesson-att{grid-template-columns:1fr}}.nn-tp-students{display:flex;flex-direction:column;gap:10px}.nn-tp-students-table-wrap{background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}.nn-tp-students-table{width:100%;border-collapse:collapse}.nn-tp-students-table thead th{text-align:left;padding:10px 14px;background:var(--bg-elev);border-bottom:1px solid var(--border-soft);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.nn-tp-students-table .nn-tp-tnum{font-variant-numeric:tabular-nums}.nn-tp-students-row{cursor:pointer;transition:background 120ms var(--ease-hover)}.nn-tp-students-row:hover{background:var(--bg-elev)}.nn-tp-students-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nn-tp-students-row td{padding:12px 14px;border-bottom:1px solid var(--border-soft);color:var(--text);font-size:var(--fs-sm)}.nn-tp-students-row:last-child td{border-bottom:0}.nn-tp-students-id{display:inline-flex;align-items:center;gap:10px}.nn-tp-students-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:11px;flex-shrink:0}.nn-tp-students-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nn-tp-students-name{font-weight:600;color:var(--text)}.nn-tp-students-chev{width:14px;height:14px;color:var(--text-faint)}.nn-tp-students-error td{padding:16px;background:var(--danger-soft);color:var(--text)}.nn-tp-students-error strong{display:block}.nn-tp-students-error span{color:var(--text-muted);font-size:var(--fs-sm)}.nn-tp-students-loadmore{display:flex;justify-content:center}.nn-tp-students-loadmore[hidden]{display:none}.nn-tp-students-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;background:var(--bg-elev);border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-muted)}.nn-tp-students-empty[hidden]{display:none}.nn-tp-students-empty .nn-tp-h3{color:var(--text)}@media (max-width:640px){.nn-tp-students-table thead{display:none}.nn-tp-students-table,.nn-tp-students-table tbody,.nn-tp-students-table td,.nn-tp-students-table tr{display:block}.nn-tp-students-row{padding:12px 14px;border-bottom:1px solid var(--border-soft)}.nn-tp-students-row td{padding:4px 0;border-bottom:0}.nn-tp-students-row td:nth-child(2)::before{content:'Last lesson · ';color:var(--text-faint)}.nn-tp-students-row td:nth-child(3)::before{content:'Next · ';color:var(--text-faint)}.nn-tp-students-row td:nth-child(4)::before{content:'Lessons · ';color:var(--text-faint)}.nn-tp-students-row td:last-child{display:none}}.nn-tp-student-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.nn-tp-student-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:var(--fs-base);flex-shrink:0}.nn-tp-student-avatar img{width:100%;height:100%;object-fit:cover;display:block}.nn-tp-student-header-text{display:flex;flex-direction:column;min-width:0}.nn-tp-student-header-text strong{font-weight:600;font-size:var(--fs-md);color:var(--text)}.nn-tp-student-header-text span{font-size:var(--fs-sm);color:var(--text-muted)}.nn-tp-student-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:18px}.nn-tp-student-stats>div{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:2px}.nn-tp-student-stats span{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.nn-tp-student-stats strong{font-size:var(--fs-base);color:var(--text);font-variant-numeric:tabular-nums}.nn-tp-student-stats strong.is-bad{color:var(--danger)}.nn-tp-student-section .nn-tp-h3{margin-bottom:10px}.nn-tp-student-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.nn-tp-student-lesson{display:grid;grid-template-columns:1fr auto auto 16px;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;transition:background 120ms var(--ease-hover),border-color 120ms var(--ease-hover)}.nn-tp-student-lesson:hover{border-color:var(--border)}.nn-tp-student-lesson:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nn-tp-skeleton{background:linear-gradient(90deg,var(--bg-elev) 0,var(--border-soft) 50%,var(--bg-elev) 100%);background-size:200% 100%;animation:nn-tp-skel 1.6s linear infinite;border-radius:8px}.nn-tp-skeleton-line{display:inline-block;height:12px;border-radius:4px}.nn-tp-lesson-row.is-skeleton .nn-tp-lesson-meta{gap:6px}.nn-tp-skeleton-pill{display:inline-block;width:64px;height:22px;border-radius:999px}.nn-tp-skeleton-block{display:block;width:100%;height:180px;border-radius:var(--radius)}@keyframes nn-tp-skel{0%{background-position:100% 0}100%{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.nn-tp-skeleton{animation:none}}