:root{--vvn-bg:#0b1016;--vvn-bg-soft:#121a24;--vvn-surface:#16202c;--vvn-surface-2:#1d2937;--vvn-border:#263546;--vvn-text:#e9eef5;--vvn-text-muted:#93a4b8;--vvn-accent:#f2c14e;--vvn-accent-strong:#d99e1f;--vvn-danger:#e5484d;--vvn-ok:#3fb27f;--vvn-radius:14px;--vvn-radius-sm:9px;--vvn-shadow:0 18px 44px #0000006b}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{background:radial-gradient(1100px 620px at 12% -10%, #f2c14e1f, transparent 60%), radial-gradient(900px 520px at 96% 0%, #e5484d1a, transparent 58%), var(--vvn-bg);color:var(--vvn-text);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Noto Sans,Arial,sans-serif;line-height:1.55}a{color:var(--vvn-accent)}.page{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}.page-wide .container,.page-wide .topbar-inner,.page-wide .app-nav{max-width:none}@media (min-width:1280px){.page-wide .container{padding:0 32px}.page-wide .topbar-inner{padding-left:32px;padding-right:32px}.page-wide .app-nav{padding-left:26px;padding-right:26px}}.auth-wrap{flex:1;place-items:center;padding:48px 24px;display:grid}.auth-card{background:var(--vvn-surface);border:1px solid var(--vvn-border);border-radius:var(--vvn-radius);width:100%;max-width:430px;box-shadow:var(--vvn-shadow);padding:32px}.brand{align-items:center;gap:12px;margin-bottom:26px;display:flex}.brand-mark{color:#17202b;background:linear-gradient(140deg, var(--vvn-accent), var(--vvn-accent-strong));letter-spacing:-.5px;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.brand-text strong{font-size:16px;display:block}.brand-text span{color:var(--vvn-text-muted);font-size:12.5px}.field{margin-bottom:16px;display:block}.field-label{color:var(--vvn-text-muted);margin-bottom:6px;font-size:13px;display:block}.input{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);width:100%;color:var(--vvn-text);outline:none;padding:11px 13px;font-size:14.5px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--vvn-accent);box-shadow:0 0 0 3px #f2c14e29}.input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1;color:#0000;filter:none;appearance:none;background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M8 3v4'/%3E%3Cpath d='M16 3v4'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:1.15rem 1.15rem;width:1.15rem;height:1.15rem;margin-left:4px;padding:0}.btn{border-radius:var(--vvn-radius-sm);cursor:pointer;background:linear-gradient(140deg, var(--vvn-accent), var(--vvn-accent-strong));color:#17202b;border:none;width:100%;padding:11px 16px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .12s,opacity .15s}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:progress}.btn-ghost{border:1px solid var(--vvn-border);width:auto;color:var(--vvn-text-muted);background:0 0;padding:8px 14px;font-weight:500}.btn-ghost:hover:not(:disabled){color:var(--vvn-text);border-color:var(--vvn-accent)}.alert{border-radius:var(--vvn-radius-sm);color:#ffb4b6;background:#e5484d1f;border:1px solid #e5484d66;margin-bottom:16px;padding:10px 12px;font-size:13.5px}.demo-hint{border-top:1px dashed var(--vvn-border);color:var(--vvn-text-muted);margin-top:22px;padding-top:18px;font-size:12.5px}.demo-hint code{color:var(--vvn-text);background:var(--vvn-bg-soft);border-radius:5px;padding:1px 5px}.demo-hint ul{margin:8px 0 0;padding-left:18px}.page--login{background:url(/auth/bg-edu-vvn-2.png) 50%/cover no-repeat;min-height:100vh}.page--login .auth-card{color:#17202b;background:#fafbfc;border-color:#17202b1f;box-shadow:0 18px 44px #00000047}.page--login .brand--login-logo{text-align:center;flex-direction:column;align-items:center;gap:14px;margin-bottom:26px}.page--login .login-logo-link{width:100%;max-width:260px;line-height:0;text-decoration:none;display:block}.page--login .login-logo{width:100%;max-width:260px;height:auto;display:block}.page--login .login-logo-sub{letter-spacing:.015em;color:#3a4d61;border-top:1px solid #0a254024;max-width:18.5rem;margin:0 auto;padding-top:12px;font-size:12.75px;font-weight:500;line-height:1.55;display:block}.page--login .field-label,.page--login .field-hint{color:#4a5a6a}.page--login .input{color:#17202b;background:#fff;border-color:#cfd8e3}.page--login .input::placeholder{color:#8a9aab}.page--login .input:focus{border-color:var(--vvn-accent);box-shadow:0 0 0 3px #f2c14e47}.page--login .alert{color:#8a1f24;background:#e5484d1a;border-color:#e5484d59}.page--login .btn{color:#17202b;background:linear-gradient(140deg, var(--vvn-accent), var(--vvn-accent-strong));justify-content:center;align-items:center;display:inline-flex}.page--login .password-reveal-btn{color:#4a5a6a;border-color:#cfd8e3}.page--login .password-reveal-btn:hover:not(:disabled){color:#17202b;border-color:var(--vvn-accent)}.page--login .login-slogan{width:100%;max-width:100%;height:auto;margin:22px auto 0;display:block}.topbar{border-bottom:1px solid var(--vvn-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#0b1016db;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1080px;margin:0 auto;padding:14px 24px;display:flex}.who{text-align:right;color:var(--vvn-text-muted);font-size:13px}.who strong{color:var(--vvn-text);font-size:14px;display:block}.who-name{color:inherit;text-decoration:none;display:block}.who-account{color:var(--vvn-text-muted);font-size:12px;display:block}.who-name:hover strong,.who-name:focus-visible strong,.who-name:hover .who-account,.who-name:focus-visible .who-account{text-underline-offset:2px;text-decoration:underline}.password-field-wrap{flex-direction:column;gap:4px;display:flex}.password-field{align-items:stretch;gap:8px;display:flex}.password-field .input{flex:1;min-width:0}.password-reveal-btn{-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;min-width:40px;padding-inline:10px;display:inline-flex}.password-reveal-icon{flex-shrink:0;display:block}.topbar-actions{align-items:center;gap:14px;display:flex}main.content{flex:1;padding:34px 0 56px}.page-head{margin-bottom:26px}.page-head h1{letter-spacing:-.3px;margin:0 0 6px;font-size:25px}.page-head p{color:var(--vvn-text-muted);margin:0;font-size:14.5px}.badge{letter-spacing:.4px;text-transform:uppercase;color:var(--vvn-accent);background:#f2c14e1f;border:1px solid #f2c14e66;border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:600;display:inline-block}.grid{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:14px;margin-bottom:26px;display:grid}.card{background:var(--vvn-surface);border:1px solid var(--vvn-border);border-radius:var(--vvn-radius);box-sizing:border-box;min-width:0;max-width:100%;padding:18px}.card h2{margin:0 0 12px;font-size:15px}.quiz-question-card{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius);background:var(--vvn-surface-2);margin-top:12px;overflow:hidden}.quiz-question-card-warn{border-color:#e5484d73}.quiz-question-head{background:var(--vvn-bg-soft);border-bottom:1px solid var(--vvn-border);flex-wrap:nowrap;align-items:center;gap:10px;padding:0;display:flex}.quiz-question-card-collapsed .quiz-question-head{border-bottom:none}.quiz-question-card-open{border-color:#f2c14e73;box-shadow:0 0 0 1px #f2c14e1f}.quiz-question-card-open .quiz-question-head{border-bottom-color:#f2c14e59}.quiz-question-card-collapsed{background:var(--vvn-surface)}.quiz-question-toggle{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:10px;margin:0;padding:12px 16px;transition:background .12s;display:flex}.quiz-question-toggle:hover{background:#f2c14e14}.quiz-question-toggle:focus-visible{outline:2px solid var(--vvn-accent);outline-offset:-2px}.quiz-question-toggle:after{color:var(--vvn-text-muted);flex:none;margin-left:auto;font-size:11px;transition:transform .15s}.quiz-question-toggle[aria-expanded=false]:after{content:"▸"}.quiz-question-toggle[aria-expanded=true]:after{content:"▾";color:var(--vvn-accent)}.quiz-question-index{flex:none;font-size:14px;font-weight:700}.quiz-question-prompt-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--vvn-text);flex:1;font-size:13px;overflow:hidden}.quiz-question-prompt-preview-empty{color:var(--vvn-text-muted);font-style:italic}.quiz-question-warn-chip{color:#ffb4b6;white-space:nowrap;flex:none;font-size:11.5px}.quiz-question-remove{flex:none;margin:0 12px 0 0}.quiz-question-body{padding:14px 16px 16px}.quiz-question-body-warn{color:#ffb4b6;margin-top:10px}.quiz-question-body .field:last-child{margin-bottom:0}.quiz-editor{flex-direction:column;gap:4px;display:flex}.quiz-editor-settings{background:var(--vvn-surface-2);border:1px solid var(--vvn-border);border-radius:var(--vvn-radius);margin-bottom:8px;padding:16px 18px}.quiz-editor-settings-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.quiz-editor-settings h3{margin:0;font-size:15px;font-weight:700}.quiz-editor-stats{flex-wrap:wrap;gap:8px;display:flex}.quiz-stat-pill{border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);color:var(--vvn-text-muted);border-radius:999px;align-items:center;gap:4px;padding:5px 11px;font-size:12.5px;display:inline-flex}.quiz-stat-pill strong{color:var(--vvn-text);font-weight:700}.quiz-stat-pill-accent{color:var(--vvn-accent);background:#f2c14e1a;border-color:#f2c14e73}.quiz-stat-pill-ok{color:#9ce0bd;background:#3fb27f1a;border-color:#3fb27f66}.quiz-ask-row{gap:6px;display:grid}.quiz-ask-field{max-width:280px;margin-bottom:0}.quiz-ask-hint{max-width:520px;margin:0}.quiz-ask-stepper{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-bg-soft);align-items:stretch;width:100%;max-width:160px;display:inline-flex;overflow:hidden}.quiz-stepper-btn{background:var(--vvn-surface);color:var(--vvn-text);cursor:pointer;border:none;flex:0 0 40px;font-size:18px;line-height:1;transition:background .12s,color .12s}.quiz-stepper-btn:hover:not(:disabled){color:var(--vvn-accent);background:#f2c14e24}.quiz-stepper-btn:disabled{opacity:.35;cursor:not-allowed}.quiz-ask-input{text-align:center;border:none;border-left:1px solid var(--vvn-border);border-right:1px solid var(--vvn-border);-moz-appearance:textfield;border-radius:0;flex:1;min-width:0}.quiz-ask-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.quiz-ask-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.quiz-options{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.quiz-option-row{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.quiz-option-row-correct{background:#3fb27f14;border-color:#3fb27f80}.quiz-option-label{flex:200px;margin-bottom:0}.quiz-option-check{white-space:nowrap;flex:none;padding-bottom:11px}.quiz-option-row-selectable{cursor:pointer;margin-bottom:0}.quiz-option-row-selectable:hover{border-color:#f2c14e59}.quiz-add-question{width:100%;margin-top:12px}.quiz-editor-save{margin:8px 0 12px;padding:0}.quiz-editor-save .btn{width:100%;box-shadow:var(--vvn-shadow)}.quiz-player-progress{color:var(--vvn-text-muted);margin:0 0 12px;font-size:13.5px}.quiz-player-progress strong{color:var(--vvn-accent)}.quiz-media-hint{margin:0 0 12px}.quiz-question-media{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-surface-2,#ffffff08);margin:12px 0 16px;padding:12px}.quiz-media-preview{border-radius:var(--vvn-radius-sm);background:#111;width:100%;max-width:100%;margin:0 0 10px;display:block}.quiz-media-preview-image{object-fit:contain;max-height:280px}.quiz-media-preview-video{max-height:240px}.quiz-media-actions{flex-wrap:wrap;gap:8px;display:flex}.stat-value{letter-spacing:-1px;font-size:30px;font-weight:700;line-height:1.1}.stat-label{color:var(--vvn-text-muted);margin-top:4px;font-size:13px}.kv{grid-template-columns:minmax(0,min(240px,40%)) minmax(0,1fr);gap:8px 16px;font-size:14px;display:grid}.kv.observe-kv{grid-template-columns:minmax(0,min(340px,45%)) minmax(0,1fr);align-items:start}.kv dt,.kv dd{overflow-wrap:anywhere;min-width:0}.kv dt{color:var(--vvn-text-muted)}.kv dd{margin:0}@media (max-width:640px){.kv,.kv.observe-kv{grid-template-columns:1fr}}.list-parked{color:var(--vvn-text-muted);margin:0;padding-left:18px;font-size:14px}.list-parked li{margin-bottom:5px}.note{color:var(--vvn-text-muted);border-left:2px solid var(--vvn-accent);margin-top:4px;padding-left:12px;font-size:13px}.cols-2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:14px;display:grid}@media (max-width:640px){.cols-2{grid-template-columns:1fr}}.pct-bar-row{margin-bottom:12px}.pct-bar-meta{justify-content:space-between;gap:12px;margin-bottom:4px;font-size:13px;display:flex}.pct-bar-track{background:color-mix(in srgb, var(--vvn-border) 70%, transparent);border-radius:999px;height:8px;overflow:hidden}.pct-bar-fill{background:var(--vvn-accent);border-radius:999px;min-width:0;height:100%;transition:width .2s}.topbar-nav{border-top:1px solid var(--vvn-border);overflow-x:auto}.app-nav{gap:4px;max-width:1080px;margin:0 auto;padding:0 18px;display:flex}.nav-link{color:var(--vvn-text-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:11px 12px;font-size:13.5px;text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--vvn-text)}.nav-link-active{color:var(--vvn-accent);border-bottom-color:var(--vvn-accent)}.nav-badge{text-align:center;background:var(--vvn-danger);color:#fff;border-radius:999px;min-width:19px;padding:1px 6px;font-size:11.5px;font-weight:700}.page-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head-actions{gap:10px;display:flex}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.card-head h2{margin:0}.stack{gap:14px;display:grid}.stack-sm{gap:8px;display:grid}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:14px;display:grid}.stat{flex-direction:column;min-width:0;display:flex}.stat .stat-label,.stat .field-hint,.stat .stat-value{overflow-wrap:anywhere;min-width:0}@media (max-width:640px){.stat-grid{grid-template-columns:1fr}}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px 18px;margin:0 0 14px;font-size:14px;display:grid}.detail-grid dt{color:var(--vvn-text-muted);font-size:12.5px}.detail-grid dd{margin:2px 0 0}.detail-wide{grid-column:1/-1}.table-wrap{margin:0 -4px;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:13.5px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--vvn-border);vertical-align:top;white-space:nowrap;padding:9px 10px}table.data th{color:var(--vvn-text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:12.5px;font-weight:600}table.data tbody tr:hover{background:var(--vvn-surface-2)}table.data td.wrap{white-space:normal;min-width:220px}.inbox-row{cursor:pointer}.inbox-row:focus-visible{outline:2px solid var(--vvn-accent,#c45c26);outline-offset:-2px}.inbox-row td:first-child{border-left:3px solid #0000}.inbox-row-unread td:first-child{border-left-color:var(--vvn-accent,#c45c26)}.inbox-row:not(.inbox-row-unread) td strong{font-weight:500}.inbox-preview{-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.num{text-align:right;font-variant-numeric:tabular-nums}.empty{color:var(--vvn-text-muted);padding:22px 4px;font-size:14px}.muted{color:var(--vvn-text-muted)}.session-card-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.session-card{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-bg-soft);gap:10px;padding:14px;display:grid}.session-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.session-card-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.session-card-when{flex-wrap:wrap;align-items:baseline;gap:9px;margin:0;display:flex}.session-card-when strong{letter-spacing:-.2px;font-variant-numeric:tabular-nums;font-size:18px}.session-card-date{color:var(--vvn-text-muted);font-variant-numeric:tabular-nums;font-size:13px}.session-card-title{overflow-wrap:anywhere;margin:0;font-size:15.5px;line-height:1.4}.session-card-meta{gap:8px 18px;margin:0;font-size:13.5px;display:grid}.session-card-meta dt{letter-spacing:.3px;text-transform:uppercase;color:var(--vvn-text-muted);font-size:11.5px}.session-card-meta dd{overflow-wrap:anywhere;margin:2px 0 0}.session-card-meta-wide{grid-column:1/-1}.session-card-inline{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.session-card-actions{border-top:1px solid var(--vvn-border);flex-direction:column;gap:8px;padding-top:10px;display:flex}.session-card-action-block{gap:6px;width:100%;display:grid}.session-card-cta{justify-content:center;align-items:center;width:100%;min-height:44px;text-decoration:none;display:inline-flex}.session-card-cta:focus-visible{outline:2px solid var(--vvn-text);outline-offset:2px}@media (min-width:560px){.session-card{padding:16px}.session-card-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.session-card-actions{flex-direction:row;justify-content:flex-end;align-items:stretch}.session-card-action-block{width:auto}.session-card-cta{width:auto;padding:11px 26px}}.profile-dialog{box-sizing:border-box;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--vvn-text);box-shadow:none;cursor:pointer;background:0 0;border:none;margin:0;padding:12px;overflow:auto}.profile-dialog[open]{place-items:center;display:grid}.profile-dialog::backdrop{background:#080c128c}.profile-dialog-panel{box-sizing:border-box;overflow-wrap:anywhere;border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-bg);width:min(560px,100%);min-width:0;max-height:min(88vh,820px);color:var(--vvn-text);cursor:default;gap:14px;padding:16px;display:grid;overflow:auto;box-shadow:0 18px 48px #00000047}.profile-dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.profile-dialog h2,.profile-dialog .muted{overflow-wrap:anywhere;min-width:0}.late-attendance-dialog .profile-dialog-panel{width:min(560px,100%)}.late-attendance-dialog .row-actions{flex-direction:column;display:flex}.late-attendance-dialog .row-actions .btn{width:100%}.student-avatar{object-fit:cover;background:color-mix(in srgb, var(--vvn-accent,#c45c26) 18%, transparent);border-radius:50%;flex-shrink:0;width:48px;height:48px;display:inline-block}.student-avatar-sm{width:36px;height:36px}.student-avatar-lg{width:96px;height:96px}.student-avatar-fallback{letter-spacing:.02em;color:var(--vvn-text);justify-content:center;align-items:center;font-size:.75em;font-weight:700;display:inline-flex}.student-avatar-row{align-items:center;gap:14px;min-width:0;display:flex}.student-avatar-row>div{overflow-wrap:anywhere;min-width:0}.student-avatar-upload{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.student-avatar-upload-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.session-card-identity{align-items:center;gap:10px;min-width:0;display:flex}.profile-dialog-title{overflow-wrap:anywhere;margin:0;font-size:1.15rem;line-height:1.35}.profile-dialog-badge{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.school-assign-dialog .profile-dialog-panel{width:min(640px,100%)}.school-assign-cell{flex-wrap:wrap;align-items:center;gap:8px;max-width:420px;display:flex}.school-assign-chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.school-chip{border:1px solid var(--vvn-border);background:var(--vvn-surface-2);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.school-chip-more{color:var(--vvn-text-muted);font-weight:500}.school-chip-lead{border-color:color-mix(in srgb, var(--vvn-accent,#c45c26) 45%, var(--vvn-border));background:color-mix(in srgb, var(--vvn-accent,#c45c26) 12%, var(--vvn-surface-2))}.school-chip-role{color:var(--vvn-text-muted);font-weight:500}.instructor-name-link{appearance:none;color:var(--vvn-accent,#c45c26);font:inherit;text-align:left;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;margin:0;padding:0;font-weight:600;text-decoration:underline}.instructor-name-link:hover{opacity:.85}.instructor-staff-line{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.profile-section-title{margin:0 0 8px;font-size:.95rem;font-weight:700}.credential-list{gap:6px;margin:0;padding-left:1.1rem;display:grid}.credential-list li{flex-direction:column;gap:2px;display:flex}.credential-editor-row{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-surface);gap:8px;padding:10px;display:grid}@media (min-width:720px){.credential-editor-row{grid-template-columns:140px 1fr 90px 1fr auto;align-items:end}}.lead-school-fieldset{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);margin:0;padding:12px}.handoff-item{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-surface);padding:10px 12px}.handoff-item-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.school-assign{gap:10px;display:grid}.school-assign-search{margin-bottom:0}.school-assign-meta{font-size:12.5px}.school-assign-list{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-surface);gap:4px;max-height:min(42vh,360px);padding:4px;display:grid;overflow:auto}.school-assign-item{cursor:pointer;border-radius:6px;align-items:flex-start;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.school-assign-item:hover{background:var(--vvn-surface-2)}.school-assign-item-on{background:#f2c14e1a}.school-assign-item input{flex-shrink:0;margin-top:3px}.school-assign-codes{gap:2px;min-width:0;display:grid}.school-assign-codes strong{font-size:13px}.status{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.status-neutral{border-color:var(--vvn-border);background:var(--vvn-surface-2);color:var(--vvn-text-muted)}.status-ok{color:#7fd6ac;background:#3fb27f24;border-color:#3fb27f73}.status-warn{color:var(--vvn-accent);background:#f2c14e24;border-color:#f2c14e73}.status-danger{color:#ffb4b6;background:#e5484d24;border-color:#e5484d73}.form-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.form-row.form-row-fields{align-items:stretch;gap:14px}.form-row-fields>.field{flex:200px;min-width:0;margin-bottom:0}.form-actions-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.form-actions-bar .btn{width:auto}.list-pager{border-top:1px solid color-mix(in srgb, var(--vvn-border) 80%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-top:14px;padding-top:12px;display:flex}.list-pager-controls{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.list-pager-sizes{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.list-pager-nav{align-items:center;gap:8px;display:inline-flex}.check{color:var(--vvn-text);align-items:center;gap:8px;font-size:14px;display:inline-flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px;display:grid}.form-grid .field-wide{grid-column:1/-1}.field-hint{color:var(--vvn-text-muted);margin-top:5px;font-size:12.5px}select.input,textarea.input{font-family:inherit}textarea.input{resize:vertical;min-height:76px}.form-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.btn-auto{width:auto}.btn-sm{width:auto;padding:6px 11px;font-size:13px}.btn-danger{color:#ffb4b6;background:0 0;border:1px solid #e5484d80}.btn-danger:hover:not(:disabled){border-color:var(--vvn-danger);color:#fff}.btn-seeing{color:#fff;background:#0047ab}.btn-bamboy{color:#fff;background:#e5484d}.btn-bamboy:hover:not(:disabled){color:#fff;background:#c5363b}.btn-seeing:hover:not(:disabled){background:#003a8c}.lesson-player-actions{gap:10px;margin-top:8px;display:flex}.lesson-player-actions .btn{flex:1;width:auto}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.alert-ok{border-radius:var(--vvn-radius-sm);color:#9ce0bd;background:#3fb27f1f;border:1px solid #3fb27f66;margin-bottom:16px;padding:10px 12px;font-size:13.5px}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.toolbar .field{min-width:150px;margin-bottom:0}.chip{border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);color:var(--vvn-text-muted);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:13px;text-decoration:none;display:inline-block}.chip:hover{color:var(--vvn-text);border-color:var(--vvn-accent)}.chip-active{border-color:var(--vvn-accent);color:var(--vvn-accent);background:#f2c14e24;font-weight:600}button.chip{cursor:pointer;font-family:inherit;line-height:1.2}.field-check{align-items:flex-start;gap:9px;margin-bottom:16px;font-size:14px;display:flex}.field-check input{margin-top:4px}.code-block{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);color:var(--vvn-text-muted);white-space:pre;margin:0;padding:11px 13px;font-family:Cascadia Mono,Consolas,monospace;font-size:12.5px;overflow-x:auto}.qr-panel{align-items:start;gap:20px;display:grid}@media (min-width:720px){.qr-panel{grid-template-columns:280px 1fr}}.qr-canvas{border-radius:var(--vvn-radius-sm);background:#fff;width:280px;max-width:100%;height:auto}.qr-guide{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-surface-2,#94a3b814);gap:8px;padding:12px;font-size:13px;display:grid}.qr-guide ul{gap:6px;margin:0;padding-left:18px;display:grid}.qr-guide .alert{margin:0}.code-token{word-break:break-all;resize:vertical;font-family:Cascadia Mono,Consolas,monospace;font-size:12px}.scan-video{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:#000;width:100%;max-width:420px}.scan-video--idle{opacity:0;pointer-events:none;background:0 0;border:0;width:1px;height:1px;position:absolute;overflow:hidden}.scan-video--active{opacity:1;position:static}.auth-card--enroll{max-width:520px}.enroll-form{flex-direction:column;gap:4px;display:flex}.enroll-form .field-label{color:var(--vvn-text);font-weight:650}.enroll-school-line{align-items:flex-start;gap:10px;margin:0 0 18px;font-size:13.5px;line-height:1.45;display:flex}.enroll-school-chip{color:var(--vvn-accent);letter-spacing:.02em;background:#f2c14e1f;border:1px solid #f2c14e59;border-radius:999px;flex-shrink:0;align-items:center;padding:3px 8px;font-size:11.5px;font-weight:700;display:inline-flex}.enroll-section{border-top:1px solid var(--vvn-border);margin-bottom:8px;padding-top:4px}.enroll-section:first-of-type{border-top:0;padding-top:0}.enroll-section__title{letter-spacing:.06em;text-transform:uppercase;color:var(--vvn-text-muted);margin:14px 0 12px;font-size:12px;font-weight:700}.enroll-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:420px){.enroll-row{grid-template-columns:1fr}}.enroll-gender{border:0;margin:0 0 16px;padding:0}.enroll-gender__options{grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;display:grid}.enroll-gender__option{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:550;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.enroll-gender__option input{opacity:0;pointer-events:none;position:absolute}.enroll-gender__option--on{background:#f2c14e1f;border-color:#f2c14e8c;box-shadow:0 0 0 3px #f2c14e1f}.field-error{color:#e57373;margin-top:6px;font-size:12.5px;display:block}.input--error{border-color:#e57373d9;box-shadow:0 0 0 3px #e5737329}.input--error:focus{border-color:#e57373f2;box-shadow:0 0 0 3px #e5737338}.enroll-gender__options--error{border-radius:var(--vvn-radius-sm);outline:1px solid #e57373d9;box-shadow:0 0 0 3px #e5737329}.enroll-done{flex-direction:column;gap:12px;display:flex}.card-capture__stage{flex-direction:column;gap:10px;display:flex}.card-capture__viewport{aspect-ratio:85.6/53.98;border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:#0a0d12;width:100%;position:relative;overflow:hidden}.card-capture__viewport--avatar{aspect-ratio:1;max-width:280px;margin-left:auto;margin-right:auto}.card-capture__frame--avatar{aspect-ratio:1;border-color:#4db6c8e6;border-radius:50%;width:78%}.card-capture__video{object-fit:cover;width:100%;height:100%;display:block}.card-capture__mask{pointer-events:none;background:#080c1247;place-items:center;display:grid;position:absolute;inset:0}.card-capture__frame{aspect-ratio:85.6/53.98;border:1.5px solid #f2c14ed9;border-radius:10px;width:88%;position:relative;box-shadow:0 0 0 999px #080c1273}.card-capture__corner{border-color:var(--vvn-accent);border-style:solid;width:18px;height:18px;position:absolute}.card-capture__corner--tl{border-width:3px 0 0 3px;border-radius:4px 0 0;top:-1px;left:-1px}.card-capture__corner--tr{border-width:3px 3px 0 0;border-radius:0 4px 0 0;top:-1px;right:-1px}.card-capture__corner--bl{border-width:0 0 3px 3px;border-radius:0 0 0 4px;bottom:-1px;left:-1px}.card-capture__corner--br{border-width:0 3px 3px 0;border-radius:0 0 4px;bottom:-1px;right:-1px}.card-capture__guide{color:#f5f7fa;white-space:nowrap;background:#0000008c;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.enroll-section--media{flex-direction:column;gap:18px;display:flex}.enroll-media{margin-bottom:4px;position:relative}.enroll-media__head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.enroll-media__badge{color:var(--vvn-text-muted);font-size:11.5px;font-weight:600}.enroll-media__badge--req{color:var(--vvn-accent);font-weight:650}.enroll-media__actions{flex-wrap:wrap;gap:8px;display:flex}.enroll-media__actions .btn{flex:auto;width:auto;min-width:0}.btn-enroll-card{background:linear-gradient(140deg, var(--vvn-accent), var(--vvn-accent-strong));color:#17202b}.btn-enroll-avatar{color:#041218;background:linear-gradient(140deg,#4db6c8,#2a8fa0)}.btn-enroll-avatar:hover:not(:disabled){filter:brightness(1.05)}.enroll-media__preview{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:#0a0d12;margin-bottom:10px;position:relative;overflow:hidden}.enroll-media__preview--card{aspect-ratio:85.6/53.98}.enroll-media__preview--avatar{border-radius:50%;width:132px;height:132px;margin-left:auto;margin-right:auto}.enroll-media__preview img{object-fit:cover;width:100%;height:100%;display:block}.enroll-media__clear{color:#fff;cursor:pointer;background:#0c1016d1;border:none;border-radius:50%;place-items:center;width:28px;height:28px;font-size:18px;line-height:1;display:grid;position:absolute;top:6px;right:6px;box-shadow:0 0 0 1px #ffffff2e}.enroll-media__preview--avatar .enroll-media__clear{top:4px;right:4px}.enroll-media__clear:hover:not(:disabled){background:#b42828eb}.enroll-media__meta{color:#e8ecf2;background:#0000008c;border-radius:999px;padding:2px 8px;font-size:11px;position:absolute;bottom:8px;left:8px}.enroll-media__preview--avatar .enroll-media__meta{bottom:8px;left:50%;right:auto;transform:translate(-50%)}.enroll-media__file{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.enroll-media--error .enroll-media__preview,.enroll-media--error .btn-enroll-card,.enroll-media--error .btn-enroll-avatar{box-shadow:0 0 0 3px #e5737329}.enroll-media--error .enroll-media__preview{border-color:#e57373d9}.img-crop{z-index:80;background:#04080eb8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.img-crop__panel{border-radius:var(--vvn-radius);border:1px solid var(--vvn-border);background:var(--vvn-surface);width:min(420px,100%);padding:14px;box-shadow:0 18px 48px #00000073}.img-crop__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.img-crop__x{width:32px;height:32px;color:var(--vvn-text);cursor:pointer;background:0 0;border:none;border-radius:8px;font-size:22px}.img-crop__viewport{aspect-ratio:1;border-radius:var(--vvn-radius-sm);touch-action:none;cursor:grab;background:#0a0d12;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.img-crop__img{-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;position:relative}.img-crop__mask{pointer-events:none;border-radius:inherit;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #f2c14ed9}.img-crop__zoom{color:var(--vvn-text-muted);align-items:center;gap:10px;margin:12px 0;font-size:12.5px;display:flex}.img-crop__zoom input{flex:1}.img-crop__actions{gap:8px;display:flex}.img-crop__actions .btn{flex:1}@media (prefers-reduced-motion:reduce){.enroll-gender__option,.input,.btn{transition:none}}.alert-ok{border-radius:var(--vvn-radius-sm);color:var(--vvn-ok);background:#3fb27f1f;border:1px solid #3fb27f73;margin:0 0 12px;padding:10px 12px}.session-govern-bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.session-govern-bar .muted{margin:0;font-size:13px}.session-govern-dialog .profile-dialog-panel{width:min(920px,100%);max-height:min(90vh,900px);overflow:hidden}.session-govern-panel{grid-template-rows:auto minmax(0,1fr);max-height:min(90vh,900px)}.session-govern-body{padding-right:4px;overflow-y:auto}.govern-fold{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius);background:var(--vvn-surface)}.govern-fold>summary{cursor:pointer;color:var(--vvn-text);align-items:center;gap:8px;padding:12px 14px;font-size:15px;font-weight:600;list-style:none;display:flex}.govern-fold>summary::-webkit-details-marker{display:none}.govern-fold>summary:before{content:"▸";color:var(--vvn-text-muted);font-size:12px}.govern-fold[open]>summary:before{content:"▾"}.govern-fold>summary .muted{font-size:13px;font-weight:400}.govern-fold-body{padding:0 14px 14px}.govern-fold-body>.card{background:0 0;border:0;padding:0}.govern-fold-body>.card>.card-head{display:none}.school-assign-note{display:block}.catalog-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px;display:grid}.catalog-stat{background:var(--vvn-surface);border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);padding:14px 16px;transition:border-color .2s,box-shadow .2s}.catalog-stat:hover{border-color:#f2c14e59;box-shadow:0 8px 24px #00000038}.catalog-stat .stat-value{font-size:26px}.catalog-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.catalog-toolbar .field{flex:200px;min-width:160px;margin-bottom:0}.catalog-toolbar .chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.catalog-list{gap:10px;display:grid}.catalog-row{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);color:inherit;grid-template-columns:1fr auto;align-items:start;gap:12px 16px;padding:14px 16px;text-decoration:none;transition:border-color .2s,transform .15s,background .2s,box-shadow .2s;display:grid}a.catalog-row{cursor:pointer}.catalog-row-interactive{cursor:default}.catalog-row-draggable{cursor:grab}.catalog-row-dragging{opacity:.55}a.catalog-row:hover,.catalog-row-interactive:hover{background:#f2c14e0f;border-color:#f2c14e73;transform:translateY(-1px);box-shadow:0 10px 28px #00000047}a.catalog-row:focus-visible{border-color:var(--vvn-accent);outline:none;box-shadow:0 0 0 3px #f2c14e47}.catalog-row-main-link{min-width:0;color:inherit;text-decoration:none;display:block}.catalog-row-main-link:focus-visible{border-radius:6px;outline:none;box-shadow:0 0 0 3px #f2c14e47}.catalog-row-main{min-width:0}.catalog-row-title{letter-spacing:-.2px;color:var(--vvn-text);margin:0 0 4px;font-size:15.5px;font-weight:600}.catalog-row-meta{color:var(--vvn-text-muted);margin:0;font-size:13px}.catalog-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tag{border:1px solid var(--vvn-border);background:var(--vvn-surface);color:var(--vvn-text-muted);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.tag-ok{color:#9ce0bd;background:#3fb27f1f;border-color:#3fb27f73}.tag-warn{color:var(--vvn-accent);background:#f2c14e1f;border-color:#f2c14e66}.tag-muted{opacity:.85}.catalog-row-aside{color:var(--vvn-text-muted);white-space:nowrap;flex-direction:column;align-items:flex-end;gap:8px;font-size:13px;display:flex}.catalog-row-cta{color:var(--vvn-accent);font-size:13px;font-weight:600}.empty-panel{text-align:center;border:1px dashed var(--vvn-border);border-radius:var(--vvn-radius);background:#16202c8c;padding:36px 20px}.empty-panel h3{margin:0 0 8px;font-size:17px}.empty-panel p{max-width:420px;color:var(--vvn-text-muted);margin:0 auto 18px;font-size:14px}.form-section{border-top:1px solid var(--vvn-border);margin-top:4px;padding-top:4px}.form-section:first-child{border-top:none;margin-top:0;padding-top:0}.form-section-title{letter-spacing:.04em;text-transform:uppercase;color:var(--vvn-text-muted);margin:0 0 12px;font-size:13px;font-weight:700}.pathway{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pathway-item{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .2s,background .2s;display:grid}.pathway-item:hover{border-color:#f2c14e4d}.pathway-index{color:#17202b;background:linear-gradient(140deg, var(--vvn-accent), var(--vvn-accent-strong));border-radius:10px;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.pathway-title{margin:0;font-size:14.5px;font-weight:600}.pathway-hint{color:var(--vvn-text-muted);margin:2px 0 0;font-size:12.5px}.lecture-list{margin:0;padding:0;list-style:none}.lecture-row{border-radius:var(--vvn-radius-sm);border:1px solid var(--vvn-border);background:var(--vvn-bg-soft);grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .2s,background .2s;display:grid}.lecture-list-numbered{counter-reset:none}.lecture-index{color:#17202b;background:linear-gradient(140deg, var(--vvn-accent), var(--vvn-accent-strong));border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.lecture-row:hover{border-color:#f2c14e4d}.lecture-row-main{flex:200px;min-width:0}.lecture-row .row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn-lecture{font-weight:700;text-decoration:none!important}.lecture-row .row-actions .btn-lecture{width:auto;min-width:7rem;padding:9px 18px;font-size:14px}.lecture-row .row-actions .btn-seeing.btn-lecture{min-width:11rem}.bamboy-key-picker{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);flex-direction:column;gap:6px;max-height:240px;margin-top:8px;padding:8px 10px;display:flex;overflow:auto}.bamboy-frame{border-radius:var(--vvn-radius-sm);background:#000;border:0;width:100%;min-height:70vh}.lecture-dialog-panel{max-width:min(720px,92vw)}.lecture-dialog-body{margin-top:4px}.lecture-dialog-body .lesson-player-actions .btn{flex:0 auto;min-width:10rem}.lecture-seeing-block{text-align:center;margin-top:16px}.lecture-seeing-block .muted,.lecture-seeing-block .status,.lecture-seeing-block .alert-ok{max-width:36rem;margin-left:auto;margin-right:auto}.lecture-seeing-block .lesson-player-actions{justify-content:stretch;width:100%;margin-top:0}.lecture-seeing-block .lesson-player-actions .btn{flex:auto;width:100%;min-width:0;max-width:none}.pathway-preview{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.pathway-preview-step{background:var(--vvn-surface);border:1px solid var(--vvn-border);color:var(--vvn-text-muted);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;max-width:160px;padding:4px 8px;font-size:12px;display:inline-flex;overflow:hidden}.pathway-preview-step strong{color:var(--vvn-accent);font-weight:700}.video-drop{border-radius:var(--vvn-radius-sm);border:1px dashed var(--vvn-border);background:var(--vvn-bg-soft);padding:14px}.video-drop-ready{background:#3fb27f14;border-style:solid;border-color:#3fb27f66}@media (max-width:720px){.catalog-row{grid-template-columns:1fr}.catalog-row-aside{flex-direction:row;justify-content:space-between;align-items:flex-start;width:100%}.pathway-item{grid-template-columns:32px 1fr}.pathway-item .row-actions{grid-column:1/-1;justify-content:flex-end}.lecture-row{grid-template-columns:32px 1fr}.lecture-row .row-actions{grid-column:1/-1;justify-content:stretch}.lecture-row .row-actions .btn-lecture{flex:auto;min-width:0}}.curriculum-suggest{gap:10px;margin-bottom:14px;display:grid}.curriculum-suggest-title{margin:0;font-size:.95rem;font-weight:700}.curriculum-suggest-list{border:1px solid var(--vvn-border);border-radius:var(--vvn-radius-sm);background:var(--vvn-surface);gap:6px;max-height:min(36vh,280px);padding:4px;display:grid;overflow:auto}.curriculum-suggest-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;margin:0;padding:10px 12px;display:flex}.curriculum-suggest-item:hover:not(:disabled){background:var(--vvn-surface-2)}.curriculum-suggest-item:focus-visible{outline:2px solid var(--vvn-accent,#f2c14e);outline-offset:1px}.curriculum-suggest-item-on{border-color:color-mix(in srgb, var(--vvn-accent,#f2c14e) 45%, var(--vvn-border));background:#f2c14e1a}.curriculum-suggest-radio{color:var(--vvn-accent,#f2c14e);flex-shrink:0;width:1.1em;font-size:12px}.curriculum-suggest-copy{flex:1;gap:2px;min-width:0;display:grid}.curriculum-suggest-copy strong{font-size:13.5px}.assign-lesson-dialog .profile-dialog-panel{width:min(640px,100%)}@media (prefers-reduced-motion:reduce){.catalog-row,.catalog-stat,.pathway-item{transition:none}a.catalog-row:hover,.catalog-row-interactive:hover{transform:none}}.observe-banner{border-radius:var(--vvn-radius-sm);background:#f2c14e1a;border:1px solid #f2c14e66;margin-bottom:16px;padding:14px 16px}.observe-banner p{color:var(--vvn-text);margin:0;font-size:14.5px}.observe-dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}.observe-dot-up{background:var(--vvn-ok);box-shadow:0 0 0 3px #3fb27f40}.observe-dot-down{background:var(--vvn-danger);box-shadow:0 0 0 3px #e5484d40}.observe-dot-pending,.observe-dot-unknown{background:var(--vvn-accent);box-shadow:0 0 0 3px #f2c14e40}.observe-name-cell{white-space:normal;min-width:280px}.observe-name-copy{vertical-align:middle;max-width:calc(100% - 22px);display:inline-block}.observe-name-copy strong{font-weight:650}.observe-note{color:var(--vvn-text-muted);margin-top:3px;font-size:12.5px;font-weight:400;line-height:1.4;display:block}.observe-card-note{color:var(--vvn-text-muted);margin:0 0 12px;font-size:12.5px;font-weight:400;line-height:1.45}.observe-kv-label{white-space:normal;flex-direction:column;gap:3px;display:flex}.observe-kv-label strong{color:var(--vvn-text);font-weight:650}.observe-kv-label .observe-note{margin-top:0}table.data.observe-runbook th,table.data.observe-runbook td{white-space:normal}table.data.observe-runbook th:first-child,table.data.observe-runbook td:first-child{min-width:160px}.observe-runbook code,.observe-forbid code,.observe-runbook-card .observe-card-note code{background:var(--vvn-bg-soft);border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.observe-forbid{color:var(--vvn-text);margin:12px 0 0;font-size:13.5px;line-height:1.45}.observe-grafana-frame{border:1px solid var(--vvn-border);background:#0b1220;border-radius:8px;width:100%;min-height:720px;display:block}.observe-grafana-card{padding-bottom:16px}.observe-tunnel-runbook summary{cursor:pointer;color:var(--vvn-text-muted);font-weight:600}.observe-runbook-list{margin:10px 0 0 18px;font-size:13.5px;line-height:1.5}.observe-runbook-list code{word-break:break-all;font-size:12.5px}
