.alert-error,.alert-success,.alert-info,.alert-warning{border-radius:var(--corner-control);font-size:var(--type-body-sm);padding:11px 13px}.alert-error{background:var(--danger-wash);border:1px solid var(--danger-border);color:var(--danger)}.alert-success{background:var(--success-wash);border:1px solid var(--success-border);color:var(--success)}.alert-info{background:var(--surface-sunk);border:1px solid var(--border);color:var(--teal-deep)}.alert-warning{background:var(--warning-wash);border:1px solid var(--warning-border);color:var(--warning)}.alert-warning strong{font-weight:800}.role-badge{font-size:var(--type-small);background:var(--surface-sunk);color:var(--teal);border-radius:999px;align-items:center;padding:4px 9px;font-weight:600;display:inline-flex}.dashboard-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;padding:4px 0 24px;display:flex}.dashboard-title{letter-spacing:-.018em;color:var(--ink-900);margin-top:6px;font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700;line-height:1.12}.dashboard-subtitle{max-width:68ch;color:var(--ink-500);margin-top:10px;line-height:1.6}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-heading h2{color:var(--ink-800);margin-top:4px;font-size:1.22rem;font-weight:700}.bulk-select-box{width:17px;height:17px;accent-color:var(--teal);cursor:pointer;flex-shrink:0}.status-positive{border:1px solid var(--success-border);background:var(--success-wash);color:var(--success)}.metric-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);flex-direction:column;min-height:132px;padding:18px 20px;display:flex}.metric-card>span{font-size:var(--type-small);color:var(--ink-500);font-weight:600}.metric-card strong{color:var(--ink-900);font-variant-numeric:tabular-nums;margin-top:10px;font-size:2rem;font-weight:700;line-height:1}.metric-card small{color:var(--ink-500);margin-top:auto;padding-top:14px;line-height:1.45}.detail-list{gap:14px;display:grid}.detail-list>div{border-bottom:1px solid var(--surface-sunk);padding-bottom:12px}.detail-list>div:last-child{border-bottom:0;padding-bottom:0}.detail-list dt{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.detail-list dd{font-size:var(--type-body-sm);color:var(--ink-700);margin-top:4px;font-weight:600}.course-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:20px}.access-panel{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);padding:clamp(24px,4vw,38px);position:relative;overflow:hidden}.access-panel-head h2{letter-spacing:-.015em;color:var(--ink-900);margin:8px 0 0;font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:800}.access-panel-head p{max-width:62ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:12px 0 0;line-height:1.7}.access-form{gap:20px;margin-top:26px;display:grid}.access-field{max-width:26rem}.access-required,.access-optional{font-size:var(--type-caption);border-radius:999px;margin-left:6px;padding:1px 8px;font-weight:600}.access-required{background:var(--teal-wash);color:var(--teal-deep)}.access-optional{background:var(--surface-sunk);color:var(--ink-500)}.access-hint{font-size:var(--type-ui);color:var(--ink-500);margin:0;line-height:1.6}.access-courses{border:0;margin:0;padding:0}.access-course-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-top:10px;display:grid}.access-course{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);font-size:var(--type-ui);color:var(--ink-700);cursor:pointer;align-items:center;gap:10px;padding:11px 14px;font-weight:600;transition:border-color .14s,background .14s;display:flex}.access-course input{accent-color:var(--teal);margin:0}.access-course:hover{border-color:var(--teal-light)}.access-course:has(input:checked){border-color:var(--teal);background:var(--teal-wash);color:var(--teal-deep)}.access-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.access-reply-note{font-size:var(--type-small);color:var(--ink-500);margin:0}.access-contact{border-top:1px solid var(--border);margin-top:26px;padding-top:18px}.access-contact p{font-size:var(--type-ui);color:var(--ink-600);margin:6px 0 0}.access-contact a{color:var(--teal-deep);text-underline-offset:3px;font-weight:700;text-decoration:underline}.access-contact-phone{font-weight:600}.access-panel.is-sent .access-contact-phone a{color:var(--teal-deep);text-underline-offset:3px;font-weight:700;text-decoration:underline}.access-panel.is-sent{text-align:center}.access-panel.is-sent h2{color:var(--ink-900);margin:14px 0 0;font-size:1.35rem;font-weight:800}.access-panel.is-sent p{max-width:48ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:10px auto 0;line-height:1.7}.access-tick{background:var(--success-wash);width:52px;height:52px;color:var(--success);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.access-tick svg{width:26px;height:26px}.rating-details>summary{cursor:pointer;border:1px solid var(--border);font-size:var(--type-small);color:var(--teal-deep);background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-weight:700;list-style:none;display:inline-flex}.rating-details>summary::-webkit-details-marker{display:none}.rating-details>summary:before{content:"▸";font-size:.8em;transition:transform .15s}.rating-details[open]>summary:before{transform:rotate(90deg)}.rating-details[open]>summary{margin-bottom:14px}.rating-summary{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.rating-summary-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:16px}.rating-summary-card header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.rating-summary-card h3{font-size:var(--type-body);color:var(--ink-800);font-weight:800}.rating-scores{gap:8px;margin:14px 0 0;display:grid}.rating-scores div{grid-template-columns:5.6rem minmax(0,1fr);align-items:center;gap:10px;display:grid}.rating-scores dt{font-size:var(--type-caption);color:var(--ink-500);font-weight:700}.rating-scores dd{align-items:center;gap:8px;margin:0;display:flex}.rating-scores dd strong{text-align:right;min-width:2rem;font-size:var(--type-small);color:var(--ink-800);font-weight:800}.rating-bar{background:var(--surface-sunk);border-radius:999px;flex:1;height:7px;overflow:hidden}.rating-bar>span{background:var(--teal);border-radius:999px;height:100%;display:block}.rating-detail-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.rating-detail{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:14px 16px}.rating-detail-who strong{font-size:var(--type-body-sm);color:var(--ink-800);font-weight:800;display:block}.rating-detail-who a{font-size:var(--type-small);color:var(--teal-deep);text-underline-offset:3px;text-decoration:underline}.rating-detail-who span{font-size:var(--type-caption);color:var(--ink-500);margin-top:3px;display:block}.rating-detail-scores{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.rating-chip{background:var(--surface-sunk);font-size:var(--type-caption);color:var(--ink-500);border-radius:999px;padding:3px 10px}.rating-chip strong{color:var(--gold-deep)}.rating-detail-note{font-size:var(--type-ui);color:var(--ink-500);margin:10px 0 0;font-style:italic;line-height:1.6}.course-below-stack{gap:clamp(20px,3vw,30px);margin-top:clamp(20px,3vw,30px);display:grid}.course-below-stack>*{margin-top:0}.rating-panel{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);padding:clamp(24px,4vw,36px)}.rating-head h2{color:var(--ink-900);margin:8px 0 0;font-size:clamp(1.25rem,2.4vw,1.55rem);font-weight:800}.rating-head p{max-width:58ch;font-size:var(--type-body-sm);color:var(--ink-500);margin:8px 0 0;line-height:1.7}.rating-form{gap:20px;margin-top:22px;display:grid}.rating-rows{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface-sunk);gap:4px;padding:6px;display:grid}.star-row{border-radius:var(--corner-surface);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.star-row-label{font-size:var(--type-body-sm);color:var(--ink-700);font-weight:700}.star-row-stars{align-items:center;gap:4px;display:flex}.star input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.star{color:var(--border);cursor:pointer;padding:2px;transition:color .12s,transform .12s;display:inline-flex}.star svg{fill:currentColor;width:26px;height:26px}.star.is-on{color:var(--gold)}.star:hover{transform:scale(1.12)}.star:has(input:focus-visible){outline:2px solid var(--teal);outline-offset:2px;border-radius:var(--corner-mark)}.star-row-value{text-align:right;min-width:2.4rem;font-size:var(--type-caption);color:var(--ink-500);font-weight:700}.star-row-value.is-set{color:var(--gold-deep)}.rating-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.rating-remaining{font-size:var(--type-small);color:var(--ink-500)}.rating-panel.is-done{text-align:center}.rating-panel.is-done h2{color:var(--ink-900);margin:14px 0 0;font-size:1.3rem;font-weight:800}.rating-panel.is-done p{max-width:44ch;font-size:var(--type-body-sm);color:var(--ink-500);margin:8px auto 0;line-height:1.7}.rating-tick{background:var(--gold-wash);width:50px;height:50px;color:var(--gold-deep);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.rating-tick svg{width:25px;height:25px}@media (max-width:560px){.star-row{flex-direction:column;align-items:flex-start}.star svg{width:30px;height:30px}}.request-open-dot{background:var(--danger);width:9px;height:9px;box-shadow:0 0 0 4px var(--danger-wash);border-radius:999px;margin-right:8px;display:inline-block}.request-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.request-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px;display:flex}.request-card.is-open{border-color:var(--danger-border)}.request-main{flex:1;min-width:0}.request-who strong{font-size:var(--type-body);color:var(--ink-800);font-weight:800;display:block}.request-email{font-size:var(--type-small);color:var(--teal-deep);text-underline-offset:3px;text-decoration:underline}.request-meta{font-size:var(--type-caption);color:var(--ink-500);margin:6px 0 0}.request-kind{background:var(--blue-wash);color:var(--blue-deep);font-size:var(--type-micro);letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-weight:800;display:inline-flex}.request-facts{gap:7px;margin-top:10px;display:grid}.request-fact{align-items:baseline;gap:12px;margin:0;display:flex}.request-fact-label{min-width:76px;font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.request-fact>strong{font-size:var(--type-body);color:var(--teal-deep);font-weight:800}.request-fact .request-courses{margin:0}.request-courses{flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.request-courses li{background:var(--surface-sunk);font-size:var(--type-caption);color:var(--ink-600);border-radius:999px;padding:3px 10px;font-weight:700}.request-note{font-size:var(--type-ui);color:var(--ink-500);margin:10px 0 0;font-style:italic;line-height:1.6}.request-side{justify-items:end;gap:4px;display:grid}.request-check{white-space:nowrap;font-size:var(--type-small);color:var(--ink-600);cursor:pointer;align-items:center;gap:8px;font-weight:700;display:inline-flex}.request-check input{accent-color:var(--success)}.request-when{font-size:var(--type-micro);color:var(--ink-500)}.request-delete{font-size:var(--type-caption);color:var(--ink-500);cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;font-weight:600}.request-delete:hover{color:var(--danger);text-decoration:underline}.request-delete:disabled{opacity:.5;cursor:default}.request-collapsed{border-top:1px solid var(--border-soft);padding-top:18px}.request-collapsed>summary{cursor:pointer;font-size:var(--type-body-sm);color:var(--ink-500);font-weight:700;list-style:none}.request-collapsed>summary::-webkit-details-marker{display:none}.request-collapsed>summary:before{content:"▸ ";color:var(--teal)}.request-collapsed[open]>summary:before{content:"▾ "}.catalog-new{border:1px dashed var(--border);border-radius:var(--corner-surface);background:var(--surface-sunk);flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px;padding:14px;display:flex}.catalog-new .form-input{width:15rem}.catalog-new .form-select{width:11rem}.catalog-slug-preview{width:100%;font-size:var(--type-caption);color:var(--ink-500);margin:0}.catalog-slug-preview code{border-radius:var(--corner-mark);background:var(--surface);font-size:var(--type-micro);color:var(--ink-600);padding:1px 5px}.catalog-slug-preview em{color:var(--warning);font-style:normal}.catalog-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.catalog-row{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:12px 14px}.catalog-row form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.catalog-row .form-input{width:14rem}.catalog-active{font-size:var(--type-small);color:var(--ink-600);align-items:center;gap:6px;font-weight:700;display:inline-flex}.catalog-slug{border-radius:var(--corner-mark);background:var(--surface-sunk);font-size:var(--type-micro);color:var(--ink-500);padding:2px 7px}.catalog-courses{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.catalog-courses-label{font-size:var(--type-caption);color:var(--ink-500);font-weight:700}.catalog-courses .chip-option{font-size:var(--type-caption);padding:5px 10px}.icon-button{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);width:34px;height:34px;color:var(--ink-600);cursor:pointer;flex:none;justify-content:center;align-items:center;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.icon-button:hover:not(:disabled){border-color:var(--teal);background:var(--teal-wash);color:var(--teal-deep)}.icon-button.is-primary:hover:not(:disabled){border-color:var(--teal-deep);background:var(--teal-deep);color:#fff}.icon-button.is-danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger-wash);color:var(--danger)}.icon-button:disabled{opacity:.4;cursor:default}.admin-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.admin-icon.is-spinning{animation:.7s linear infinite admin-spin}@media (prefers-reduced-motion:reduce){.admin-icon.is-spinning{opacity:.5;animation:none}}.admin-inline-form{align-items:center;gap:8px;display:flex}.opt-pill{border:1px solid var(--border);background:var(--surface-sunk);font-size:var(--type-caption);color:var(--ink-500);border-radius:999px;padding:2px 10px;font-weight:700;display:inline-flex}.opt-pill.is-on{border-color:var(--success-border);background:var(--success-wash);color:var(--success)}.admin-users-table td{vertical-align:top}.admin-users-table .admin-inline-form{margin-top:2px}.admin-users-table td:first-child,.admin-users-table th:first-child{min-width:310px}.admin-name-form{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.admin-name-form .form-input{width:7.5rem}.form-static{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface-sunk);font-size:var(--type-body-sm);color:var(--ink-700);margin:0;padding:11px 14px;font-weight:700}.chip-choice{border:0;margin:0;padding:0}.chip-choice-options{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.chip-option{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);font-size:var(--type-small);color:var(--ink-600);cursor:pointer;align-items:center;gap:8px;padding:8px 13px;font-weight:700;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.chip-option input{accent-color:var(--chip-ink,var(--teal));margin:0}.chip-option:hover{border-color:var(--chip-ink,var(--teal-light))}.chip-option:has(input:checked){border-color:var(--chip-ink,var(--teal));background:var(--surface-sunk);color:var(--ink-800)}.chip-option.is-empty{color:var(--ink-500)}.chip-dot{background:var(--chip-ink,var(--ink-300));border-radius:999px;flex:none;width:8px;height:8px}.audience-section>summary{cursor:pointer;align-items:center;gap:10px;padding:6px 0;list-style:none;display:flex}.audience-section>summary::-webkit-details-marker{display:none}.audience-section>summary:before{content:"";border-top:6px solid var(--ink-400);border-left:5px solid #0000;border-right:5px solid #0000;flex:none;width:0;height:0;transition:transform .15s}.audience-section:not([open])>summary:before{transform:rotate(-90deg)}.audience-section-count{background:var(--surface-sunk);font-size:var(--type-caption);color:var(--ink-500);border-radius:999px;padding:1px 9px;font-weight:700}.group-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.group-tag{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface-sunk);font-size:var(--type-micro);color:var(--ink-600);align-items:center;gap:6px;padding:2px 9px;font-weight:700;display:inline-flex}.group-tag.is-subject{background:var(--surface)}.group-tag-dot{background:var(--subject-ink,var(--ink-400));border-radius:999px;width:7px;height:7px}.group-member-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.group-member{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px 16px;padding:10px 12px;display:grid}.group-member-who{min-width:0}.group-member-who strong{font-size:var(--type-ui);color:var(--ink-800);font-weight:800;display:block}.group-member-who span{font-size:var(--type-micro);color:var(--ink-500)}.group-member-dates{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.group-member-dates .form-input{width:9.5rem}.group-member-start{font-size:var(--type-caption);white-space:nowrap;color:var(--ink-500)}.group-member-actions{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:860px){.group-member{grid-template-columns:minmax(0,1fr)}.group-member-dates{justify-content:flex-start}}.audience-visitor{--audience-ink:var(--blue-deep);--audience-wash:var(--blue-wash);--audience-line:var(--blue)}.audience-student{--audience-ink:var(--teal-deep);--audience-wash:var(--teal-wash);--audience-line:var(--teal)}.audience-premium-student{--audience-ink:#6e6041;--audience-wash:var(--gold-wash);--audience-line:var(--gold)}.audience-badge-stack{flex-direction:column;align-items:flex-end;gap:5px;display:inline-flex}.audience-badge-until{color:var(--ink-500);font-size:var(--type-micro);letter-spacing:.01em;white-space:nowrap;font-weight:700}.audience-badge{border:1px solid var(--audience-line);background:var(--audience-wash);color:var(--audience-ink);font-size:var(--type-micro);letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-weight:800;display:inline-flex}.audience-dot{background:var(--audience-ink);border-radius:999px;flex:none;width:7px;height:7px}.course-card.is-audience{border-left:4px solid var(--audience-line)}.audience-choice{border:0;margin:0;padding:0}.audience-choice-options{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.audience-option{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);font-size:var(--type-ui);color:var(--ink-600);cursor:pointer;align-items:center;gap:8px;padding:9px 14px;font-weight:700;transition:border-color .14s,background .14s,color .14s;display:inline-flex}.audience-option:hover{border-color:var(--audience-line)}.audience-option input{accent-color:var(--audience-ink);margin:0}.audience-option:has(input:checked){border-color:var(--audience-line);background:var(--audience-wash);color:var(--audience-ink)}.audience-choice-note{font-size:var(--type-caption);color:var(--ink-500);margin:8px 0 0}.flashcard-controls{width:min(100%,860px);margin-inline:auto}.flashcard-shortcuts{font-size:var(--type-micro);color:var(--ink-500);flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;margin:14px 0 0;display:flex}.flashcard-shortcuts kbd{border:1px solid var(--border);border-radius:var(--corner-mark);background:var(--surface);font-family:inherit;font-size:var(--type-micro);color:var(--ink-600);border-bottom-width:2px;padding:1px 6px;font-weight:700}@media (hover:none) and (pointer:coarse){.flashcard-shortcuts{display:none}}.flashcard-mark{border-radius:var(--corner-control);width:30px;height:30px;color:inherit;cursor:pointer;background:#ffffff24;border:0;justify-content:center;align-items:center;transition:background .15s,transform .15s,color .15s;display:inline-flex}.flashcard-mark svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linejoin:round;width:17px;height:17px}.flashcard-mark:hover{background:#ffffff42;transform:scale(1.06)}.flashcard-mark.is-marked{color:var(--gold)}.flashcard-mark.is-marked svg{fill:currentColor}.flashcard-mark:disabled{opacity:.6;cursor:default}.stat-bars{gap:10px;display:grid}.stat-bar{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) auto;align-items:center;gap:14px;display:grid}.stat-bar-label{font-size:var(--type-ui);color:var(--ink-700);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.stat-bar-label em{color:var(--ink-500);font-style:normal}.stat-bar-track{background:var(--surface-sunk);border-radius:999px;height:10px;overflow:hidden}.stat-bar-track>span{background:var(--teal);border-radius:999px;height:100%;display:block}.stat-bar-value{text-align:right;font-size:var(--type-body-sm);color:var(--ink-800);font-weight:800}.stat-bar-value small{font-size:var(--type-micro);color:var(--ink-500);font-weight:600;display:block}.stat-rows{gap:8px;display:grid}.stat-row{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.stat-row-count{border-radius:var(--corner-control);background:var(--gold-wash);min-width:34px;height:34px;color:var(--gold-deep);font-size:var(--type-ui);flex:none;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.stat-row-count.is-percent{font-size:var(--type-small);padding:0 8px}.stat-row-question{font-size:var(--type-ui);color:var(--ink-800);margin:0;line-height:1.5}.stat-row-meta{font-size:var(--type-caption);color:var(--ink-500);margin:4px 0 0}.stat-row-question.is-clamped{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.stats-split{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px 32px;display:grid}.stats-split .stat-bar{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto}.stats-split-title{font-size:var(--type-small);color:var(--ink-500);margin:0;font-weight:600}@media (max-width:640px){.stat-bar{grid-template-columns:minmax(0,1fr) auto}.stat-bar-track{order:3;grid-column:1/-1}}.question-mark{border-radius:var(--corner-control);width:26px;height:26px;color:var(--ink-500);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:inline-flex}.question-mark svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linejoin:round;width:16px;height:16px}.question-mark:hover{background:var(--gold-wash);color:var(--gold-deep);transform:scale(1.06)}.question-mark.is-marked{color:var(--gold)}.question-mark.is-marked svg{fill:currentColor}.question-mark:disabled{opacity:.6;cursor:default}.practice-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.practice-source{font-size:var(--type-ui);color:var(--ink-700);margin:3px 0 0;font-weight:700}.practice-progress{text-align:right}.practice-progress strong{color:var(--ink-800);font-size:1.1rem;font-weight:800;display:block}.practice-progress small{font-size:var(--type-caption);color:var(--ink-500)}.practice-card{padding:clamp(20px,4vw,30px)}.practice-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.practice-image{border-radius:var(--corner-surface);width:auto;max-width:100%;max-height:320px;margin:16px auto 0;display:block}.practice-question{color:var(--ink-900);margin:16px 0 0;font-size:clamp(1.05rem,2.2vw,1.3rem);font-weight:800;line-height:1.45}.practice-options{gap:8px;margin:20px 0 0;padding:0;list-style:none;display:grid}.practice-option{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);width:100%;color:var(--ink-700);font-size:var(--type-body-sm);text-align:left;cursor:pointer;align-items:flex-start;gap:12px;padding:13px 15px;line-height:1.5;transition:border-color .14s,background .14s;display:flex}.practice-option:hover:not(:disabled){border-color:var(--teal-light)}.practice-option:disabled{cursor:default}.practice-option-letter{border-radius:var(--corner-control);background:var(--surface-sunk);width:26px;height:26px;font-size:var(--type-caption);color:var(--ink-600);flex:none;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.practice-option.is-picked{border-color:var(--teal);background:var(--teal-wash)}.practice-option.is-picked .practice-option-letter{background:var(--teal);color:#fff}.practice-option.is-correct{border-color:var(--success-border);background:var(--success-wash)}.practice-option.is-correct .practice-option-letter{background:var(--success);color:#fff}.practice-option.is-wrong{border-color:var(--danger-border);background:var(--danger-wash)}.practice-option.is-wrong .practice-option-letter{background:var(--danger);color:#fff}.practice-verdict{font-size:var(--type-ui);color:var(--danger);margin:16px 0 0;font-weight:700}.practice-verdict.is-right{color:var(--success)}.practice-actions{margin-top:20px}.practice-complete{text-align:center;padding:clamp(26px,6vw,46px)}.practice-complete h2{color:var(--ink-900);margin:6px 0 0;font-size:1.3rem;font-weight:800}.practice-score{margin:18px 0 0}.practice-score strong{color:var(--teal-deep);font-size:2.4rem;font-weight:800;display:block}.practice-score span{font-size:var(--type-ui);color:var(--ink-500)}.practice-note{max-width:42ch;font-size:var(--type-small);color:var(--ink-500);margin:12px auto 22px;line-height:1.6}.difficult-entry{border:1px solid var(--gold);border-radius:var(--corner-surface);background:var(--gold-wash);align-items:center;gap:12px;padding:12px 16px;transition:transform .15s,box-shadow .15s;display:inline-flex}.difficult-entry:hover{transform:translateY(-1px)}.difficult-entry svg{width:24px;height:24px;fill:var(--gold);stroke:var(--gold-deep);stroke-width:1.4px;stroke-linejoin:round;flex:none}.difficult-entry strong{font-size:var(--type-body-sm);color:var(--ink-800);font-weight:800;display:block}.difficult-entry small{font-size:var(--type-caption);color:var(--ink-500);margin-top:2px;display:block}.difficult-hero{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:4px 0 24px;display:flex}.difficult-hero h1{color:var(--ink-900);margin:6px 0 0;font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700}.difficult-hero p{max-width:46ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:10px 0 0;line-height:1.65}.difficult-hero-stats{gap:26px;margin:0;display:flex}.difficult-hero-stats dt{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.difficult-hero-stats dd{color:var(--ink-800);margin:2px 0 0;font-size:1.7rem;font-weight:800}.difficult-decks{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px 16px;margin-top:26px;display:grid}.difficult-deck-card{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);flex-direction:column;align-items:flex-start;gap:6px;min-height:168px;padding:20px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex;position:relative}.difficult-deck-card:hover{border-color:var(--gold);transform:translateY(-3px)}.difficult-deck-stack{height:10px;display:block;position:absolute;bottom:-9px;left:16px;right:16px}.difficult-deck-stack i{border:1px solid var(--border);border-radius:0 0 var(--corner-surface) var(--corner-surface);background:var(--surface-sunk);border-top:0;height:6px;display:block;position:absolute}.difficult-deck-stack i:first-child{top:0;left:0;right:0}.difficult-deck-stack i:nth-child(2){opacity:.7;top:4px;left:11px;right:11px}.difficult-deck-stack i:nth-child(3){display:none}.difficult-deck-card strong{font-size:var(--type-body);color:var(--ink-800);margin-top:6px;font-weight:800;line-height:1.3}.difficult-deck-card small{font-size:var(--type-caption);color:var(--ink-500)}.difficult-deck-go{font-size:var(--type-small);color:var(--teal-deep);margin-top:auto;padding-top:12px;font-weight:700}.difficult-deck-card.is-mixed{border-color:var(--gold-deep);background:var(--surface)}.difficult-deck-card.is-mixed .difficult-deck-stack i{border-color:var(--gold);background:var(--gold-wash)}.difficult-deck-card.is-mixed .difficult-deck-go{color:var(--gold-deep)}.difficult-deck-card.is-personal{border-color:var(--teal);background:var(--surface)}.difficult-deck-card.is-personal .difficult-deck-stack i{border-color:var(--teal-light);background:var(--teal-wash)}.review-eyebrow{font-size:var(--type-caption);color:var(--teal);font-weight:600;display:block}.review-entry{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px 18px;padding:16px 18px;display:grid}.review-entry-icon{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);width:54px;height:54px;color:var(--teal);place-items:center;display:grid}.review-entry-icon svg{width:30px;height:30px}.review-entry-copy{gap:3px;min-width:0;display:grid}.review-entry-copy strong{color:var(--ink-900);font-size:1.1rem;font-weight:800;line-height:1.25}.review-entry-copy small{font-size:var(--type-small);color:var(--ink-500)}.review-entry-copy:hover strong{color:var(--teal-deep)}.review-entry-go,.review-start{border:1px solid var(--teal);border-radius:var(--corner-control);background:var(--teal);font-size:var(--type-body-sm);color:#fff;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;transition:background .15s;display:inline-flex}.review-entry-go:hover,.review-start:hover{background:var(--teal-deep)}.review-entry-go svg,.review-start svg{width:17px;height:17px;transition:transform .2s}.review-entry-go:hover svg,.review-start:hover svg{transform:translate(3px)}.review-entry-go.is-quiet,.review-start.is-quiet{border:1px solid var(--border);background:var(--surface);color:var(--teal-deep);box-shadow:none}.review-entry-go.is-quiet:hover,.review-start.is-quiet:hover{border-color:var(--teal-light);background:var(--teal-wash)}@media (max-width:640px){.review-entry{grid-template-columns:auto minmax(0,1fr);padding:14px}.review-entry-icon{border-radius:var(--corner-surface);width:46px;height:46px}.review-entry-icon svg{width:26px;height:26px}.review-entry-go{grid-column:1/-1}}.review-hero{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);align-items:end;gap:clamp(18px,4vw,40px);padding:4px 0 28px;display:grid}.review-hero h1{letter-spacing:-.018em;color:var(--ink-900);margin:6px 0 0;font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700;line-height:1.15}.review-hero-lead{font-size:var(--type-body-sm);color:var(--ink-600);margin:8px 0 0;line-height:1.6}.review-today{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.review-count{border:1px solid var(--border);background:var(--surface);font-size:var(--type-small);color:var(--ink-600);border-radius:999px;align-items:baseline;gap:6px;padding:5px 13px;font-weight:700;display:inline-flex}.review-count strong{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:800}.review-count.is-due strong{color:var(--teal-deep)}.review-count.is-new{background:var(--blue-wash);color:var(--blue-deep);border-color:#0000}.review-count.is-done{color:var(--ink-500);border-style:dashed}.review-count.is-waiting{color:var(--ink-500);cursor:help;border-style:dashed}.review-count.is-waiting strong{color:var(--ink-700)}.review-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.review-actions:empty{display:none}.review-start{font-size:var(--type-body);padding:13px 26px}@media (max-width:480px){.review-actions .review-start{width:100%}}.review-forecast{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:16px 18px 12px}.review-forecast h2{font-size:var(--type-caption);color:var(--ink-500);margin:0;font-weight:600}.review-forecast ol{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.review-forecast li{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:112px;display:flex}.review-forecast-value{min-height:1em;font-size:var(--type-micro);color:var(--ink-700);font-variant-numeric:tabular-nums;font-weight:800}.review-forecast-bar{border-radius:var(--corner-mark) var(--corner-mark) 3px 3px;background:var(--teal);width:100%;max-width:24px}.review-forecast-day{font-size:var(--type-micro);color:var(--ink-500);font-weight:700}@media (max-width:820px){.review-hero{grid-template-columns:1fr}}.review-panel{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);margin-top:20px;padding:clamp(16px,3vw,26px)}.review-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 18px;display:flex}.review-panel-head h2{color:var(--ink-900);margin:0;font-size:1.1rem;font-weight:800}.review-legend{font-size:var(--type-caption);color:var(--ink-500);flex-wrap:wrap;gap:4px 14px;margin:0;display:flex}.review-legend i{vertical-align:-1px;border-radius:3px;width:9px;height:9px;margin-right:5px;display:inline-block}.review-empty{font-size:var(--type-ui);color:var(--ink-500);margin:12px 0 0}.review-chapters{margin:12px 0 0;padding:0;list-style:none;display:grid}.review-chapters li+li{border-top:1px solid var(--border-soft)}.review-chapter{border-radius:var(--corner-surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 20px;margin:0 -10px;padding:13px 10px;transition:background .15s;display:grid}a.review-chapter:hover{background:var(--teal-wash)}.review-chapter-main{gap:7px;min-width:0;display:grid}.review-chapter-main strong{font-size:var(--type-body-sm);color:var(--ink-800);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.review-chapter.is-idle .review-chapter-main strong{color:var(--ink-500)}.review-chapter-main small{font-size:var(--type-caption);color:var(--ink-500)}.review-chapter-bar,.review-legend i.is-fresh{background:var(--surface-sunk)}.review-chapter-bar{border-radius:999px;height:7px;display:flex;overflow:hidden}.review-chapter-bar .is-known,.review-legend i.is-known{background:var(--teal-deep)}.review-chapter-bar .is-learning,.review-legend i.is-learning{background:#42747a6b}.review-chapter-counts{gap:6px;display:flex}.review-chapter-counts>span{font-variant-numeric:tabular-nums;justify-items:center;min-width:64px;display:grid}.review-chapter-counts strong{font-size:1.15rem;font-weight:800;line-height:1.2}.review-chapter-counts small{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.review-chapter-counts .is-due strong{color:var(--teal-deep)}.review-chapter-counts .is-new strong{color:var(--blue)}.review-chapter-counts .is-zero strong{color:var(--ink-500)}@media (max-width:480px){.review-chapter-counts>span{min-width:52px}.review-chapter-counts small{font-size:var(--type-micro);letter-spacing:.02em}}.review-session-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px 20px;margin-bottom:14px;display:flex}.review-session-head h1{color:var(--ink-900);margin:4px 0 0;font-size:clamp(1.35rem,3vw,1.8rem);font-weight:800;line-height:1.2}.review-session-counts{font-size:var(--type-small);color:var(--ink-500);gap:14px;margin:0;font-weight:700;display:flex}.review-session-counts strong{font-size:var(--type-lead);font-variant-numeric:tabular-nums;font-weight:800}.review-session-counts .is-due strong{color:var(--teal-deep)}.review-session-counts .is-new strong{color:var(--blue)}.flashcard-scene.is-tappable{cursor:pointer}.review-stage .flashcard-scene,.review-stage .flashcard-flipper{min-height:clamp(260px,100vh - 420px,510px);min-height:clamp(260px,100svh - 420px,510px)}.review-stage .flashcard-content{min-height:0}.review-controls{width:min(100%,860px);margin:18px auto 0}.review-answers{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.review-answer{border-radius:var(--corner-surface);cursor:pointer;border:1px solid;flex-direction:column;justify-content:center;align-items:center;min-height:72px;padding:10px 6px;transition:transform .1s,filter .15s;display:flex}.review-answer span{font-size:var(--type-body);font-weight:800}.review-answer small{font-size:var(--type-caption);white-space:nowrap;opacity:.8;margin-top:3px;font-weight:600}.review-answer:hover{filter:brightness(.97)}.review-answer:active{transform:translateY(1px)}.review-answer.is-again{border-color:var(--danger-border);background:var(--danger-wash);color:var(--danger)}.review-answer.is-hard{border-color:var(--warning-border);background:var(--warning-wash);color:var(--warning)}.review-answer.is-good{border-color:var(--success-border);background:var(--success-wash);color:var(--success)}.review-answer.is-easy{background:var(--blue-wash);color:var(--blue-deep);border-color:#4a649159}@media (max-width:480px){.review-answers{gap:6px}.review-answer{border-radius:var(--corner-surface);min-height:64px;padding:8px 2px}.review-answer span{font-size:var(--type-ui)}.review-answer small{font-size:var(--type-micro)}}.review-unsaved{text-align:center;font-size:var(--type-small);color:var(--warning);margin:12px 0 0}.review-done{text-align:center;padding:clamp(26px,6vw,46px)}.review-done h1{color:var(--ink-900);margin:16px 0 0;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800}.review-done>p{max-width:46ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:8px auto 0;line-height:1.6}.review-tally{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:560px;margin:22px auto 0;display:grid}.review-tally>div{border-radius:var(--corner-surface);background:var(--ground);padding:12px 6px}.review-tally dt{font-size:var(--type-micro);color:var(--ink-500);font-weight:700}.review-tally dd{color:var(--ink-800);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.4rem;font-weight:800}.review-tally .is-good dd{color:var(--success)}.review-tally .is-again dd{color:var(--danger)}.review-done-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 20px;margin-top:24px;display:flex}.review-link{font-size:var(--type-ui);color:var(--teal-deep);font-weight:700}.review-link:hover{text-decoration:underline}.review-session-counts .is-learning strong{color:var(--danger)}.review-session-counts .is-current strong{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.review-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;width:min(100%,860px);margin:12px auto 0;display:flex}.review-note{min-height:1.4em;font-size:var(--type-small);color:var(--ink-600);margin:0;font-weight:600}.review-tools-actions{flex-wrap:wrap;gap:6px;display:flex}.review-tool{border:1px solid var(--border);background:var(--surface);min-height:36px;font-size:var(--type-small);color:var(--ink-600);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 13px;font-weight:700;transition:background .15s,border-color .15s;display:inline-flex}.review-tool svg{width:15px;height:15px}.review-tool:hover:not(:disabled){border-color:var(--teal-light);background:var(--teal-wash);color:var(--teal-deep)}.review-tool:disabled{cursor:default;opacity:.5}button.review-link{cursor:pointer;background:0 0;border:0;padding:0}@media (max-width:480px){.review-tools{justify-content:center}.review-note{text-align:center;width:100%}.review-tool{min-height:44px}}.review-options{flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:16px;display:flex}.review-setting{font-size:var(--type-small);color:var(--ink-600);flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;display:inline-flex}.review-setting select{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);min-height:36px;font:inherit;color:var(--ink-800);padding:4px 10px}.review-setting-status{color:var(--success);font-weight:600}.review-setting-hint{max-width:52ch;font-size:var(--type-caption);color:var(--ink-500);flex-basis:100%;font-weight:500;line-height:1.5}.review-aside-note{font-size:var(--type-small);color:var(--ink-500);text-underline-offset:3px;font-weight:700;text-decoration:underline}.review-pace{max-width:62ch;font-size:var(--type-small);color:var(--ink-600);flex-basis:100%;margin:2px 0 0;line-height:1.6}.review-pace strong{color:var(--ink-800);font-weight:700}.review-pace-set{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);font:inherit;color:var(--teal-deep);cursor:pointer;margin-left:10px;padding:3px 10px;font-weight:700;transition:background .15s,border-color .15s}.review-pace-set:hover:not(:disabled){border-color:var(--teal-light);background:var(--teal-wash)}.review-pace-set:disabled{cursor:default;opacity:.6}.review-setting-status.is-error{color:var(--danger)}.review-aside-note:hover{color:var(--teal-deep)}.review-stats{gap:0;display:grid}.review-stats>*{min-width:0}.review-stats .review-panel h2{color:var(--ink-900);margin:0;font-size:1.1rem;font-weight:800}.review-stats-lead{max-width:70ch;font-size:var(--type-small);color:var(--ink-500);margin:6px 0 0;line-height:1.55}.review-stats-tally{max-width:none;margin:14px 0 0}.review-stats-tally dd small{font-size:var(--type-small);font-weight:700}.review-stages-bar{background:var(--surface-sunk);border-radius:999px;height:14px;margin-top:14px;display:flex;overflow:hidden}.review-stages{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px 20px;margin:14px 0 0;padding:0;list-style:none;display:grid}.review-stages li{font-size:var(--type-small);color:var(--ink-600);align-items:center;gap:8px;display:flex}.review-stages li strong{font-variant-numeric:tabular-nums;color:var(--ink-800);margin-left:auto}.review-stages i{border-radius:3px;flex:none;width:10px;height:10px}.review-stages .is-fresh,.review-stages-bar .is-fresh{background:var(--blue)}.review-stages .is-learning,.review-stages-bar .is-learning{background:var(--danger)}.review-stages .is-young,.review-stages-bar .is-young{background:#66979e}.review-stages .is-mature,.review-stages-bar .is-mature{background:#264a50}.review-stages .is-aside,.review-stages-bar .is-aside{background:var(--ink-300)}.review-month{grid-template-columns:repeat(31,minmax(0,1fr));gap:3px;margin:14px 0 0;padding:0;list-style:none;display:grid}.review-month li{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:140px;display:flex}.review-month .review-forecast-value{font-size:var(--type-micro)}.review-month .review-forecast-bar.is-today{background:var(--danger)}.review-month .review-forecast-day{font-size:var(--type-micro);white-space:nowrap;overflow:visible}@media (max-width:640px){.review-month .review-forecast-value{display:none}.review-month .review-forecast-day{font-size:var(--type-micro);writing-mode:vertical-rl;transform:rotate(180deg)}}.review-retention{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:520px;margin-top:14px;display:grid}.review-retention>div{border-radius:var(--corner-surface);background:var(--ground);gap:2px;padding:14px 16px;display:grid}.review-retention span{font-size:var(--type-small);color:var(--ink-600);font-weight:700}.review-retention strong{color:var(--ink-900);font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:800}.review-retention small{font-size:var(--type-caption);color:var(--ink-500)}.review-year{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;grid-auto-flow:column;gap:3px;margin-top:14px;padding-bottom:4px;display:grid;overflow-x:auto}.review-year-cell{background:var(--surface-sunk);border-radius:2px}.review-year-cell.is-1{background:#94b9be}.review-year-cell.is-2{background:#66979e}.review-year-cell.is-3{background:#407279}.review-year-cell.is-4{background:#264a50}.review-year-cell.is-future{background:0 0}.review-stats-foot{font-size:var(--type-caption);color:var(--ink-500);margin:8px 0 0}.review-stats-cards{margin:12px 0 0;padding:0;list-style:none;display:grid}.review-stats-cards li{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:12px 0;display:grid}.review-stats-cards li+li{border-top:1px solid var(--border-soft)}.review-stats-cards li>div{gap:3px;min-width:0;display:grid}.review-stats-cards strong{font-size:var(--type-body-sm);color:var(--ink-800);overflow-wrap:anywhere;font-weight:700}.review-stats-cards span{font-size:var(--type-small);color:var(--ink-600);overflow-wrap:anywhere}.review-stats-cards small{font-size:var(--type-caption);color:var(--ink-500)}.review-stats-flag{font-weight:700}.review-stats-action{justify-items:end;gap:2px;display:inline-grid}@media (max-width:480px){.review-stats-cards li{grid-template-columns:1fr}.review-stats-action{justify-items:start}.review-retention{grid-template-columns:1fr}.review-tally{grid-template-columns:repeat(2,minmax(0,1fr))}}.difficulty-picker{gap:6px;max-width:680px;display:grid}.difficulty-picker>span{font-size:var(--type-caption);color:var(--ink-500);font-weight:700}.difficulty-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.difficulty-metrics .metric-card{min-height:128px}.level-chip{width:-moz-fit-content;width:fit-content;font-size:var(--type-micro);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:2px 10px;font-weight:800;display:inline-flex}.level-chip.is-1{background:var(--success-wash);color:var(--success)}.level-chip.is-2{background:var(--teal-wash);color:var(--teal-deep)}.level-chip.is-3{background:var(--warning-wash);color:var(--warning)}.level-chip.is-4{background:var(--danger-wash);color:var(--danger)}.level-chip.is-unknown{background:var(--surface-sunk);color:var(--ink-500)}.level-chip.is-estimated{background:0 0;border-style:dashed;border-color:currentColor}.difficulty-rating{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:14px;padding:10px 12px;display:flex}.difficulty-rating-prompt{font-size:var(--type-small);color:var(--ink-600);font-weight:700}.difficulty-rating-prompt small{color:var(--danger);font-weight:700}.difficulty-rating-scale{flex:300px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-width:460px;display:grid}.difficulty-rating-option{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);min-height:46px;color:var(--ink-500);font:inherit;cursor:pointer;align-content:center;justify-items:center;gap:1px;padding:4px 3px;transition:background-color .15s,border-color .15s,color .15s;display:grid}.difficulty-rating-option b{font-size:var(--type-body);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.1}.difficulty-rating-option span{font-size:var(--type-micro);text-align:center;font-weight:700;line-height:1.15}.difficulty-rating-option:disabled{cursor:progress}.difficulty-rating-option:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.difficulty-rating-option.is-1:hover,.difficulty-rating-option.is-1.is-selected{border-color:var(--success);color:var(--success)}.difficulty-rating-option.is-2:hover,.difficulty-rating-option.is-2.is-selected{border-color:var(--teal-light);color:var(--teal-deep)}.difficulty-rating-option.is-3:hover,.difficulty-rating-option.is-3.is-selected{border-color:var(--warning);color:var(--warning)}.difficulty-rating-option.is-4:hover,.difficulty-rating-option.is-4.is-selected{border-color:var(--danger);color:var(--danger)}.difficulty-rating-option.is-1.is-selected{background:var(--success-wash)}.difficulty-rating-option.is-2.is-selected{background:var(--teal-wash)}.difficulty-rating-option.is-3.is-selected{background:var(--warning-wash)}.difficulty-rating-option.is-4.is-selected{background:var(--danger-wash)}.difficulty-rating-option.is-selected{box-shadow:inset 0 0 0 1px}.deck-csv-note.is-shared{color:var(--teal-deep);font-weight:700}.rating-summary{font-size:var(--type-caption);color:var(--ink-500);white-space:nowrap;align-items:baseline;gap:4px;font-weight:700;display:inline-flex}.rating-summary strong{font-size:var(--type-small);color:var(--ink-700);font-variant-numeric:tabular-nums}.difficulty-card-rating{font-size:var(--type-caption);color:var(--ink-500);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;display:flex}.level-fill{flex-basis:0;min-width:0}.level-fill.is-1{background:var(--success)}.level-fill.is-2{background:var(--teal-light)}.level-fill.is-3{background:var(--gold)}.level-fill.is-4{background:var(--danger)}.level-fill.is-unknown{background:var(--border)}.level-stack{background:var(--surface-sunk);border-radius:999px;height:14px;display:flex;overflow:hidden}.level-groups{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.level-group.is-unknown{background:var(--surface);border-style:dashed}.level-group{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--ground);align-content:start;gap:5px;padding:14px;display:grid}.level-group strong{color:var(--ink-900);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:800;line-height:1.1}.level-group small{font-size:var(--type-caption);color:var(--ink-500)}.level-group p{font-size:var(--type-caption);color:var(--ink-600);margin:2px 0 0;line-height:1.5}@media (max-width:980px){.level-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.level-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.difficulty-chapters{gap:8px;display:grid}.difficulty-chapter{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface)}.difficulty-chapter[open]{background:var(--ground)}.difficulty-chapter>summary{cursor:pointer;grid-template-columns:minmax(0,1.3fr) minmax(90px,1fr) auto;grid-template-areas:"name bar chip""meta meta meta";align-items:center;gap:6px 14px;padding:12px 14px;list-style:none;display:grid}.difficulty-chapter>summary::-webkit-details-marker{display:none}.difficulty-chapter>summary:hover .difficulty-chapter-name{color:var(--teal-deep)}.difficulty-chapter-name{font-size:var(--type-body-sm);color:var(--ink-800);text-overflow:ellipsis;white-space:nowrap;grid-area:name;font-weight:800;overflow:hidden}.difficulty-chapter-name:before{content:"▸ ";color:var(--ink-400)}.difficulty-chapter[open] .difficulty-chapter-name:before{content:"▾ "}.difficulty-chapter-bar{background:var(--surface-sunk);border-radius:999px;grid-area:bar;height:8px;display:flex;overflow:hidden}.difficulty-chapter>summary .level-chip{grid-area:chip}.difficulty-chapter-meta{font-size:var(--type-caption);color:var(--ink-500);grid-area:meta}.difficulty-decks{margin:0;padding:0 14px 8px;list-style:none;display:grid}.difficulty-decks li{border-top:1px solid var(--border-soft);grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"title chip grade""meta meta grade";align-items:center;gap:4px 12px;padding:10px 0;display:grid}.difficulty-deck-title{font-size:var(--type-ui);color:var(--ink-700);grid-area:title;font-weight:700}.difficulty-decks .level-chip{grid-area:chip}.difficulty-deck-meta{font-size:var(--type-caption);color:var(--ink-500);grid-area:meta}.deck-grade{grid-area:grade;justify-items:end;gap:4px;display:grid}.deck-grade-select{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);font-size:var(--type-small);color:var(--ink-600);padding:7px 10px;font-weight:700}.deck-grade-select.is-1{border-color:var(--success-border);background:var(--success-wash);color:var(--success)}.deck-grade-select.is-2{border-color:var(--teal-light);background:var(--teal-wash);color:var(--teal-deep)}.deck-grade-select.is-3{border-color:var(--warning-border);background:var(--warning-wash);color:var(--warning)}.deck-grade-select.is-4{border-color:var(--danger-border);background:var(--danger-wash);color:var(--danger)}@media (max-width:560px){.difficulty-chapter>summary{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name chip""bar bar""meta meta"}.difficulty-decks li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title chip""meta meta""grade grade"}.deck-grade{justify-items:start}}.difficulty-legend{font-size:var(--type-caption);color:var(--ink-500);flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;display:flex}.difficulty-legend .grade-chip{border-radius:var(--corner-mark);width:20px;height:20px;font-size:var(--type-micro);cursor:default;place-items:center;display:inline-grid}.difficulty-filters{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px;display:flex}.difficulty-filters .form-select{width:auto;min-width:170px;padding:8px 10px}.difficulty-toggle{font-size:var(--type-small);color:var(--ink-600);align-items:center;gap:8px;display:inline-flex}.difficulty-toggle input{accent-color:var(--teal)}.difficulty-empty{font-size:var(--type-ui);color:var(--ink-500);margin:0}.difficulty-cards{gap:8px;margin:0;padding:0;list-style:none;display:grid}.difficulty-cards>li{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);grid-template-columns:96px minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px 14px;display:grid}.difficulty-cards>li>.level-chip{justify-self:start;margin-top:2px}.difficulty-card-question{font-size:var(--type-ui);color:var(--ink-800);margin:0;line-height:1.5}.difficulty-card-meta{font-size:var(--type-caption);color:var(--ink-500);margin:4px 0 0;line-height:1.5}.question-answers{font-size:var(--type-caption);gap:4px;margin:8px 0 0;line-height:1.5;display:grid}.question-answer{color:var(--ink-700);padding:2px 0 2px 16px;position:relative}.question-answer:before{content:"";background:var(--border);border-radius:50%;width:7px;height:7px;position:absolute;top:calc(.75em - 2px);left:3px}.question-answer b{font-size:var(--type-caption);margin-right:4px;font-weight:600}.question-answer small{color:var(--ink-500)}.question-answer.is-right:before{background:var(--success)}.question-answer.is-right b{color:var(--success)}.question-answer.is-wrong:before{background:var(--danger)}.question-answer.is-wrong b{color:var(--danger)}@media (max-width:640px){.difficulty-cards>li{grid-template-columns:minmax(0,1fr);gap:8px}}.grade-chips{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.grade-chip{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);width:30px;height:30px;font-size:var(--type-small);color:var(--ink-500);cursor:pointer;font-weight:800;transition:background .15s,color .15s,border-color .15s}.grade-chip:hover{border-color:var(--teal-light);color:var(--ink-800)}.grade-chip:disabled{cursor:progress;opacity:.6}.grade-chip.is-inherited{border-style:dashed}.grade-chip.is-1.is-inherited{border-color:var(--success);color:var(--success)}.grade-chip.is-2.is-inherited{border-color:var(--teal);color:var(--teal-deep)}.grade-chip.is-3.is-inherited{border-color:var(--gold-deep);color:var(--gold-deep)}.grade-chip.is-4.is-inherited{border-color:var(--danger);color:var(--danger)}.grade-chip.is-1.is-on{border-color:var(--success);background:var(--success);color:#fff}.grade-chip.is-2.is-on{border-color:var(--teal);background:var(--teal);color:#fff}.grade-chip.is-3.is-on{border-color:var(--gold-deep);background:var(--gold-deep);color:#fff}.grade-chip.is-4.is-on{border-color:var(--danger);background:var(--danger);color:#fff}.grade-error{font-size:var(--type-micro);color:var(--danger);flex-basis:100%}.learner-map-wrap{overflow-x:auto}.learner-map{width:100%;min-width:520px;height:auto;display:block}.learner-map-band.is-1{fill:var(--success-wash)}.learner-map-band.is-2{fill:var(--teal-wash)}.learner-map-band.is-3{fill:var(--warning-wash)}.learner-map-band.is-4{fill:var(--danger-wash)}.learner-map-band-label{font-family:var(--font-body);fill:var(--ink-500);font-size:11px;font-weight:700}.learner-map-axis{font-family:var(--font-body);fill:var(--ink-400);font-size:11px}.learner-map-axis.is-title{fill:var(--ink-500);font-weight:700}.learner-map-tick{stroke:var(--ink-300)}.learner-dot{stroke:#fff;stroke-width:2px;cursor:pointer}.learner-dot.is-on-track{fill:var(--success)}.learner-dot.is-struggling{fill:var(--danger)}.learner-dot.is-light{fill:var(--gold)}.learner-dot.is-little-data{fill:var(--ink-300)}.learner-dot.is-selected{stroke:var(--ink-900);stroke-width:2.5px}.learner-clusters{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.learner-cluster{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--ground);gap:3px;padding:10px 12px;display:grid}.learner-cluster strong{font-size:var(--type-ui);color:var(--ink-800);align-items:center;gap:7px;font-weight:800;display:flex}.learner-cluster i{border-radius:999px;width:10px;height:10px}.learner-cluster small{font-size:var(--type-caption);color:var(--ink-500);line-height:1.45}.learner-cluster.is-on-track i{background:var(--success)}.learner-cluster.is-struggling i{background:var(--danger)}.learner-cluster.is-light i{background:var(--gold)}.learner-cluster.is-little-data i{background:var(--ink-300)}.cluster-tag{font-size:var(--type-micro);white-space:nowrap;border-radius:999px;padding:2px 9px;font-weight:800;display:inline-flex}.cluster-tag.is-on-track{background:var(--success-wash);color:var(--success)}.cluster-tag.is-struggling{background:var(--danger-wash);color:var(--danger)}.cluster-tag.is-light{background:var(--gold-wash);color:var(--gold-deep)}.cluster-tag.is-little-data{background:var(--surface-sunk);color:var(--ink-500)}.difficulty-table-wrap{overflow-x:auto}.difficulty-table{border-collapse:collapse;width:100%;font-size:var(--type-small)}.difficulty-table th,.difficulty-table td{border-bottom:1px solid var(--border-soft);text-align:left;white-space:nowrap;padding:10px}.difficulty-table thead th{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.difficulty-table tbody th{font-size:var(--type-ui);letter-spacing:normal;text-transform:none}.difficulty-table tbody th a{color:var(--teal-deep);font-weight:800}.difficulty-table tbody th a:hover{text-decoration:underline}.difficulty-table small{color:var(--ink-500)}.difficulty-table tr.is-selected{background:var(--teal-wash)}.learner-detail{border:1px solid var(--teal-light);border-radius:var(--corner-surface);background:var(--surface);padding:18px}.learner-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.learner-detail h3{color:var(--ink-900);margin:0;font-size:1.15rem;font-weight:800}.learner-detail-head p{font-size:var(--type-small);color:var(--ink-500);margin:2px 0 0}.learner-detail-lead{font-size:var(--type-ui);color:var(--ink-700);margin:12px 0 0;line-height:1.6}.learner-detail-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:18px;margin-top:16px;display:grid}.learner-detail h4{font-size:var(--type-small);color:var(--ink-500);margin:0 0 8px;font-weight:600}.learner-chapters,.learner-hardest{gap:8px;margin:0;padding:0;list-style:none;display:grid}.learner-chapters li{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 10px;display:grid}.learner-chapters li>span:first-child{font-size:var(--type-ui);color:var(--ink-800);font-weight:700}.learner-chapters small{font-size:var(--type-caption);color:var(--ink-500);grid-column:1/-1}.learner-hardest li{border-bottom:1px solid var(--border-soft);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:2px 10px;padding-bottom:8px;display:grid}.learner-hardest p{font-size:var(--type-ui);color:var(--ink-800);margin:0;line-height:1.45}.learner-hardest small{font-size:var(--type-caption);color:var(--ink-500);grid-column:2}.learner-rate{font-size:var(--type-ui);color:var(--ink-800);font-variant-numeric:tabular-nums;font-weight:800}.deck-difficulty{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--ground);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px 24px;margin-top:16px;padding:16px 18px;display:grid}.deck-difficulty-title{font-size:var(--type-small);color:var(--teal-deep);margin:0;font-weight:600}.deck-difficulty-lead{max-width:62ch;font-size:var(--type-ui);color:var(--ink-600);margin:6px 0 0;line-height:1.6}.deck-difficulty-controls{justify-items:end;gap:10px;display:grid}.deck-difficulty-deck{align-items:center;gap:10px;display:flex}.deck-difficulty-deck>span{font-size:var(--type-small);color:var(--ink-600);white-space:nowrap;font-weight:700}@media (max-width:760px){.deck-difficulty{grid-template-columns:minmax(0,1fr)}.deck-difficulty-controls{justify-items:start}}.deck-csv{justify-items:end;gap:8px;display:grid}.deck-csv-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.deck-csv-pick{cursor:pointer;position:relative}.deck-csv-pick input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.deck-csv-preview{border:1px solid var(--teal-light);border-radius:var(--corner-surface);background:var(--surface);width:100%;max-width:460px;padding:14px 16px}.deck-csv-file{font-size:var(--type-ui);color:var(--ink-700);overflow-wrap:anywhere;margin:0}.deck-csv-counts{font-size:var(--type-small);color:var(--ink-500);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:10px 0 0;padding:0;list-style:none;display:grid}.deck-csv-counts strong{font-size:var(--type-body);color:var(--ink-800);font-variant-numeric:tabular-nums;margin-right:4px;font-weight:800}.deck-csv-counts .is-change strong{color:var(--teal-deep)}.deck-csv-counts .is-warning strong{color:var(--warning)}.deck-csv-note{font-size:var(--type-small);color:var(--ink-600);margin:10px 0 0;line-height:1.55}.deck-csv-remove{font-size:var(--type-small);color:var(--ink-700);align-items:flex-start;gap:8px;margin-top:10px;font-weight:700;display:flex}.deck-csv-remove input{accent-color:var(--danger);margin-top:3px}.deck-csv-remove small{color:var(--danger);margin-top:2px;font-weight:400;display:block}.deck-csv-confirm{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}@media (max-width:760px){.deck-csv,.deck-csv-actions{justify-content:flex-start;justify-items:start}}.deck-difficulty.is-stacked{grid-template-columns:minmax(0,1fr)}.deck-difficulty.is-stacked .deck-difficulty-controls,.deck-difficulty.is-stacked .deck-csv{justify-items:start}.deck-difficulty.is-stacked .deck-csv-actions{justify-content:flex-start}.deck-difficulty.is-stacked .deck-csv-preview{max-width:none}.card-difficulty{border-top:1px dashed var(--border-soft);flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:12px;padding-top:10px;display:flex}.card-difficulty-part{flex-wrap:wrap;align-items:center;gap:6px 8px;display:inline-flex}.card-difficulty-label{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.card-difficulty-part small{font-size:var(--type-caption);color:var(--ink-500)}.card-difficulty .grade-chip{width:28px;height:28px;font-size:var(--type-caption)}.bulk-review-update{border:1px solid var(--teal-light);border-radius:var(--corner-surface);background:var(--teal-wash);gap:6px;margin-top:8px;padding:10px 12px;display:grid}.bulk-review-update label{font-size:var(--type-small);color:var(--ink-800);cursor:pointer;align-items:flex-start;gap:8px;font-weight:700;display:flex}.bulk-review-update input{accent-color:var(--teal);margin-top:3px}.bulk-review-update small{color:var(--ink-600);margin-top:2px;font-weight:400;line-height:1.5;display:block}.personal-cards{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);padding:clamp(20px,4vw,28px)}.personal-cards-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.personal-cards-head h2{color:var(--ink-800);margin:4px 0 0;font-size:1.25rem;font-weight:800}.personal-cards-head p{max-width:56ch;font-size:var(--type-ui);color:var(--ink-500);margin:8px 0 0;line-height:1.65}.personal-cards-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.personal-cards-form textarea{resize:vertical;line-height:1.6}.personal-cards-actions{grid-column:1/-1;justify-content:flex-end;align-items:center;gap:12px;display:flex}.personal-cards-saved{font-size:var(--type-small);color:var(--success);font-weight:700}.personal-cards-notice{max-width:56ch;font-size:var(--type-caption);color:var(--ink-500);margin:10px 0 0;line-height:1.6}.review-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.review-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.review-card-body{min-width:0}.review-card-question{font-size:var(--type-body-sm);color:var(--ink-800);margin:0;font-weight:700;line-height:1.55}.review-card-answer{font-size:var(--type-ui);color:var(--ink-600);margin:5px 0 0;line-height:1.6}.review-card-meta{font-size:var(--type-caption);color:var(--ink-500);margin:8px 0 0}.personal-cards-empty{border-top:1px solid var(--border-soft);font-size:var(--type-ui);color:var(--ink-500);margin:20px 0 0;padding-top:18px}.personal-cards-list{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.personal-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.personal-card-text{min-width:0}.personal-card-question{font-size:var(--type-body-sm);color:var(--ink-800);margin:0;font-weight:700;line-height:1.55}.personal-card-answer{font-size:var(--type-ui);color:var(--ink-500);margin:5px 0 0;line-height:1.6}.personal-card-tools{flex:none;gap:4px;display:flex}.personal-card-tool{border-radius:var(--corner-control);width:32px;height:32px;color:var(--ink-500);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.personal-card-tool svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.personal-card-tool:hover{background:var(--surface-sunk);color:var(--ink-700)}.personal-card-tool.is-danger:hover{background:var(--danger-wash);color:var(--danger)}.personal-card-tool:disabled{opacity:.5;cursor:default}.personal-card-edit{gap:10px;width:100%;display:grid}.personal-card-edit-actions{justify-content:flex-end;gap:8px;display:flex}@media (max-width:720px){.personal-cards-form{grid-template-columns:minmax(0,1fr)}.personal-card{flex-direction:column}.personal-card-tools{align-self:flex-end}}.difficult-session-badge{background:var(--gold-wash);font-size:var(--type-caption);color:var(--gold-deep);border-radius:999px;padding:5px 12px;font-weight:700}.difficult-manage>summary{cursor:pointer;font-size:var(--type-ui);color:var(--ink-600);font-weight:700}.difficult-manage>summary span{background:var(--surface-sunk);font-size:var(--type-caption);color:var(--ink-500);border-radius:999px;margin-left:6px;padding:1px 8px}.difficult-manage>summary:hover{color:var(--teal-deep)}.difficult-tabs{flex-wrap:wrap;gap:8px;display:flex}.difficult-tab{border:1px solid var(--border);background:var(--surface);color:var(--ink-600);font-size:var(--type-small);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.difficult-tab span{background:var(--surface-sunk);font-size:var(--type-micro);color:var(--ink-500);border-radius:999px;padding:1px 7px}.difficult-tab:hover{border-color:var(--gold)}.difficult-tab.is-active{border-color:var(--gold-deep);background:var(--gold-deep);color:#fff}.difficult-tab.is-active span{color:#fff;background:#ffffff38}.difficult-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px;display:grid}.difficult-card{border:1px solid var(--gold);border-radius:var(--corner-surface);background:var(--surface);flex-direction:column;gap:10px;padding:16px;transition:box-shadow .16s,transform .16s;display:flex}.difficult-card:hover{transform:translateY(-1px)}.difficult-card header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.difficult-card-path{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.difficult-card-remove{border-radius:var(--corner-control);color:var(--ink-500);cursor:pointer;background:0 0;border:0;flex:none;padding:2px 6px;font-size:1.1rem;line-height:1}.difficult-card-remove:hover{background:var(--danger-wash);color:var(--danger)}.difficult-card-question{font-size:var(--type-body-sm);color:var(--ink-800);margin:0;font-weight:600;line-height:1.55}.difficult-card-answer{border-top:1px dashed var(--border);font-size:var(--type-ui);color:var(--ink-600);margin:0;padding-top:10px;line-height:1.6}.difficult-card-reveal{color:var(--teal-deep);font-size:var(--type-small);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-self:flex-start;padding:0;font-weight:700;text-decoration:underline}.difficult-empty{border:1px dashed var(--border);border-radius:var(--corner-surface);background:var(--surface);text-align:center;padding:clamp(30px,6vw,52px)}.difficult-empty svg{fill:none;width:42px;height:42px;stroke:var(--gold);stroke-width:1.4px;stroke-linejoin:round}.difficult-empty h2{color:var(--ink-800);margin:14px 0 0;font-size:1.15rem;font-weight:800}.difficult-empty p{max-width:44ch;font-size:var(--type-ui);color:var(--ink-500);margin:8px auto 0;line-height:1.65}@media (max-width:640px){.difficult-hero-stats{gap:18px}.difficult-hero-stats dd{font-size:1.35rem}}.description-import-intro{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface-sunk);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.description-import-intro p{max-width:46ch;font-size:var(--type-small);color:var(--ink-600);margin:0;line-height:1.6}.description-import-preview{border-left:1px solid var(--border);font-size:var(--type-small);color:var(--ink-600);margin:0;padding-left:10px;line-height:1.6}.lesson-calendar{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);overflow:hidden}.lesson-calendar-bar{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.lesson-calendar-bar strong{font-size:var(--type-body);font-weight:700}.lesson-calendar-step{border-radius:var(--corner-control);width:34px;height:34px;color:inherit;cursor:pointer;background:#ffffff1f;border:0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.lesson-calendar-step:hover{background:#ffffff3d}.lesson-calendar-step svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.lesson-calendar-weekdays,.lesson-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.lesson-calendar-weekdays{text-align:center;font-size:var(--type-micro);letter-spacing:.04em;color:var(--ink-500);padding:10px 8px 2px;font-weight:700}.lesson-calendar-grid{padding:4px 8px 10px}.lesson-calendar-day{border-radius:var(--corner-control);min-height:46px;color:var(--ink-700);font-size:var(--type-ui);background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-weight:600;display:flex;position:relative}.lesson-calendar-day.is-outside{color:var(--ink-300)}.lesson-calendar-day:disabled{cursor:default;opacity:1}.lesson-calendar-day.has-lessons{cursor:pointer}.lesson-calendar-day.has-lessons:hover{background:var(--teal-wash)}.lesson-calendar-day.is-today{border-color:var(--teal);color:var(--teal-deep)}.lesson-calendar-day.is-selected{background:var(--teal);border-color:var(--teal);color:#fff}.lesson-calendar-dots{gap:3px;height:5px;display:flex}.lesson-calendar-dots i{background:var(--teal);border-radius:999px;width:5px;height:5px}.lesson-calendar-day.is-selected .lesson-calendar-dots i{background:#fff}.lesson-calendar-detail{border-top:1px solid var(--border-soft);background:var(--ground);padding:14px 16px 16px}.lesson-calendar-detail h3{font-size:var(--type-ui);color:var(--ink-800);margin:0 0 10px;font-weight:800}.lesson-calendar-detail ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.lesson-calendar-detail li{align-items:baseline;gap:12px;display:flex}.lesson-calendar-detail strong{font-size:var(--type-ui);color:var(--ink-800);display:block}.lesson-calendar-detail small{font-size:var(--type-caption);color:var(--ink-500);margin-top:2px;display:block}.lesson-calendar-time{background:var(--teal-wash);font-size:var(--type-caption);color:var(--teal-deep);border-radius:999px;flex:none;padding:3px 9px;font-weight:700}.lesson-calendar-hint{font-size:var(--type-small);color:var(--ink-500);margin:0;line-height:1.6}@media (max-width:480px){.lesson-calendar-day{min-height:40px;font-size:var(--type-small)}.lesson-calendar-detail li{flex-direction:column;gap:4px}}.course-description-form{gap:12px;margin-top:12px;display:grid}.course-description-form textarea{resize:vertical;min-height:120px;line-height:1.6}.course-description-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.course-description-actions>span{font-size:var(--type-caption);color:var(--ink-500)}.course-card.is-compact{flex-direction:column;gap:14px;padding:18px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.course-card.is-compact:hover{border-color:var(--border);transform:translateY(-1px)}.course-card-head{align-items:flex-start;gap:14px;display:flex}.course-card-head>div{flex:auto;min-width:0}.course-card-head h3{font-size:var(--type-lead);color:var(--ink-800);margin:0;font-weight:800;line-height:1.3}.course-card-facts{flex-wrap:wrap;gap:6px 8px;margin-top:8px;display:flex}.course-card-fact{background:var(--surface-sunk);font-size:var(--type-caption);color:var(--ink-500);border-radius:999px;align-items:baseline;gap:5px;padding:4px 10px;display:inline-flex}.course-card-fact strong{color:var(--ink-700);font-weight:700}.course-hero-title{align-items:center;gap:16px;min-width:0;display:flex}.course-space-hero-side{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;display:flex}@media (max-width:640px){.course-space-hero{flex-wrap:wrap}.course-space-hero-side{justify-content:flex-start}}.course-hero-main{min-width:0}.list-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:14px 15px;display:flex}.recommendation-card{border-radius:var(--corner-surface);background:var(--ground);padding:15px 16px}.recommendation-card h3{color:var(--ink-800);font-weight:600}.recommendation-card p{font-size:var(--type-ui);color:var(--ink-500);margin-top:7px;line-height:1.6}.recommendation-card small{color:var(--ink-500);margin-top:9px;display:block}.progress-track{background:var(--border-soft);border-radius:999px;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--teal);height:100%;display:block}@media (max-width:700px){.dashboard-hero{flex-direction:column;padding:22px}}.library-rows{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);display:grid;overflow:hidden}.library-row{border-top:1px solid var(--border-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 24px;padding:16px 20px;display:grid}.library-row:first-child{border-top:0}.library-row-main{min-width:0}.library-row-title{font-size:var(--type-body);color:var(--ink-900);margin:0;font-weight:700;line-height:1.4}.library-row-title a{text-underline-offset:.2em;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.library-row-title a:hover{color:var(--teal-deep);text-decoration-color:currentColor}.library-row-desc{max-width:72ch;font-size:var(--type-small);color:var(--ink-500);margin:4px 0 0;line-height:1.55}.library-row-meta{font-size:var(--type-small);color:var(--ink-500);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;display:flex}.library-row-meta .is-going{color:var(--warning);font-weight:600}.library-row-meta .is-done{color:var(--success);font-weight:600}.library-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.library-row-actions :is(.button-primary,.button-secondary){min-height:38px;font-size:var(--type-ui);padding:0 14px}@media (max-width:640px){.library-row{grid-template-columns:minmax(0,1fr);padding:14px 16px}.library-row-actions{justify-content:flex-start}}.library-item-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);flex-direction:column;padding:22px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex}.library-item-card:hover{border-color:var(--teal-light);transform:translateY(-2px)}.library-item-card h2,.library-item-card h3{color:var(--ink-900);margin-top:14px;font-size:1.18rem;font-weight:800}.library-item-card>p{font-size:var(--type-ui);color:var(--ink-500);margin-top:9px;line-height:1.65}.library-item-card dt{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.library-item-card dd{font-size:var(--type-small);color:var(--ink-600);margin-top:3px;font-weight:600}.flashcard-scene{perspective:1500px;width:min(100%,860px);min-height:510px;margin-inline:auto}.flashcard-flipper{min-height:510px;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.75,.25,1);position:relative}.flashcard-scene.is-flipped .flashcard-flipper{transform:rotateY(180deg)}.flashcard-face{border:1px solid var(--border-soft);border-radius:var(--corner-surface);box-shadow:var(--shadow-object);-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#fff;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.flashcard-front{background:var(--surface)}.flashcard-back{background:var(--surface);transform:rotateY(180deg)}.flashcard-face-header{border-bottom:1px solid var(--border-soft);font-size:var(--type-small);color:var(--ink-500);justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;font-weight:600;display:flex}.flashcard-face-header small{text-overflow:ellipsis;white-space:nowrap;max-width:50%;color:var(--ink-500);overflow:hidden}.flashcard-content{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:25px;min-height:430px;padding:36px clamp(24px,7vw,74px);display:flex;overflow-y:auto}.flashcard-content>p{white-space:pre-wrap;text-align:center;letter-spacing:-.018em;max-width:720px;color:var(--ink-800);font-size:clamp(1.35rem,3vw,2.15rem);font-weight:600;line-height:1.42}.flashcard-answer>p{color:var(--success);font-size:clamp(1.2rem,2.6vw,1.9rem)}.flashcard-image{border-radius:var(--corner-surface);object-fit:contain;width:auto;max-width:100%;max-height:260px;display:block}.flashcard-missing-image{border:1px dashed var(--danger-border);border-radius:var(--corner-surface);text-align:center;max-width:600px;font-size:var(--type-ui);color:var(--danger);background:var(--warning-wash);padding:13px 16px}.flashcard-button-know,.flashcard-button-miss{border-radius:var(--corner-surface);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;min-height:78px;padding:13px 18px;transition:transform .1s,filter .15s;display:flex}.flashcard-button-know{border:1px solid var(--success-border);background:var(--success-wash);color:var(--success)}.flashcard-button-miss{border:1px solid var(--danger-border);background:var(--danger-wash);color:var(--danger)}.flashcard-button-know:hover,.flashcard-button-miss:hover{filter:brightness(.98)}.flashcard-button-know:active,.flashcard-button-miss:active{transform:translateY(1px)}.flashcard-button-know span,.flashcard-button-miss span{font-size:var(--type-body);font-weight:700}.flashcard-button-know small,.flashcard-button-miss small{font-size:var(--type-caption);opacity:.75;margin-top:4px}.flashcard-complete{text-align:center}.upload-status{border:1px solid var(--border-soft);border-radius:var(--corner-surface);font-size:var(--type-small);background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:11px 13px;display:flex}.upload-status strong{color:var(--ink-700);display:block}.upload-status small{color:var(--ink-500);margin-top:2px;display:block}.upload-status>span{text-align:right;color:var(--ink-500)}.upload-status-success{border-color:var(--success-border);background:var(--success-wash)}.upload-status-success>span{color:var(--success)}.upload-status-error{border-color:var(--danger-border);background:var(--danger-wash)}.upload-status-error>span{color:var(--danger)}.upload-status-uploading{border-color:var(--border);background:var(--ground)}.upload-status-uploading>span{color:var(--teal)}.flashcard-media-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:#fff;overflow:hidden}.flashcard-media-preview{background:var(--ground);height:180px;color:var(--ink-500);font-size:var(--type-small);justify-content:center;align-items:center;display:flex}.flashcard-media-preview img{object-fit:contain;width:100%;height:100%}.flashcard-media-card h3{color:var(--ink-800);font-weight:700}.flashcard-media-card p{text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-caption);color:var(--ink-500);margin-top:4px;overflow:hidden}@media (max-width:700px){.flashcard-scene,.flashcard-flipper{min-height:475px}.flashcard-content{min-height:395px;padding:28px 20px}.flashcard-content>p{font-size:1.35rem}.flashcard-face{border-radius:var(--corner-surface)}.upload-status{flex-direction:column;align-items:flex-start}.upload-status>span{text-align:left}}.live-present-page{background:var(--ground);min-height:calc(100vh - 64px)}.live-present-stage{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:#fffffff5;width:min(1500px,100% - 32px);min-height:calc(100vh - 105px);margin:16px auto 0;padding:clamp(24px,4vw,58px)}.live-present-lobby{grid-template-columns:minmax(0,1fr) minmax(320px,480px);align-items:center;gap:clamp(30px,6vw,90px);display:grid}.live-kicker{background:var(--surface-sunk);color:var(--teal);font-size:var(--type-caption);letter-spacing:.12em;border-radius:999px;padding:7px 12px;font-weight:700;display:inline-flex}.live-present-copy h1,.live-present-finished h1{letter-spacing:-.018em;max-width:900px;color:var(--ink-900);margin-top:18px;font-size:clamp(2.5rem,6vw,6.5rem);font-weight:700;line-height:.98}.live-present-copy>p,.live-present-finished>p{max-width:760px;color:var(--ink-500);margin-top:24px;font-size:clamp(1rem,2vw,1.45rem);line-height:1.6}.live-join-code{border:2px solid var(--teal);border-radius:var(--corner-surface);background:var(--ground);flex-direction:column;margin-top:30px;padding:18px 28px;display:inline-flex}.live-join-code small{font-size:var(--type-small);color:var(--ink-500);font-weight:600}.live-join-code strong{letter-spacing:.12em;color:var(--teal-deep);margin-top:3px;font-size:clamp(2.4rem,5vw,4.6rem);font-weight:700}.live-join-code.compact{text-align:center;margin:24px 0;display:flex}.live-join-code.compact strong{font-size:3rem}.live-participant-count{color:var(--ink-600);margin-top:24px;font-weight:700}.live-participant-chips{flex-wrap:wrap;gap:8px;margin-top:13px;display:flex}.live-participant-chips span{border:1px solid var(--border);font-size:var(--type-small);color:var(--ink-600);background:#fff;border-radius:999px;padding:7px 11px;font-weight:600}.live-qr-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);text-align:center;background:#fff;padding:clamp(22px,3vw,36px)}.live-qr-card img{border-radius:var(--corner-surface);width:min(100%,400px)}.live-qr-card p{color:var(--ink-500);margin:15px 0 20px}.live-question-header{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:20px;padding-bottom:20px;display:flex}.live-question-header div:first-child{flex-direction:column;gap:4px;display:flex}.live-question-header span{font-size:var(--type-small);color:var(--teal);font-weight:600}.live-question-header strong{color:var(--ink-600)}.live-response-pill{background:var(--ink-900);color:#fff;font-size:var(--type-ui);border-radius:999px;padding:10px 15px;font-weight:700}.live-question-body{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:250px;padding:34px 10px;display:flex}.live-question-body h1{letter-spacing:-.018em;max-width:1100px;color:var(--ink-900);font-size:clamp(1.8rem,4vw,4.1rem);font-weight:700;line-height:1.12}.live-question-image{border-radius:var(--corner-surface);object-fit:contain;max-width:min(760px,100%);max-height:290px;display:block}.live-option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.live-present-option,.live-student-option{border-radius:var(--corner-surface);color:#fff;border:0;padding:20px}.live-option-0{background:var(--danger)}.live-option-1{background:var(--teal)}.live-option-2{background:var(--warning)}.live-option-3{background:var(--success)}.live-option-4{background:var(--teal-light)}.live-option-5{background:var(--teal)}.live-present-option.is-correct,.live-student-option.is-correct{outline:6px solid var(--success);outline-offset:3px}.live-student-option.is-wrong{opacity:.56;outline:5px solid var(--danger);outline-offset:2px}.live-option-label{align-items:center;gap:15px;min-height:70px;display:flex}.live-option-label span,.live-student-option>span{border-radius:var(--corner-surface);width:42px;height:42px;font-size:var(--type-lead);background:#fff3;flex:0 0 42px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.live-option-label strong{font-size:clamp(1rem,2vw,1.5rem);line-height:1.25}.live-result-bar-wrap{border-radius:var(--corner-control);background:#0000002b;min-height:36px;margin-top:13px;position:relative;overflow:hidden}.live-result-bar{border-radius:inherit;background:#ffffff47;transition:transform .4s;position:absolute;inset:0;transform:translate(-100%)}.live-result-bar-wrap b{z-index:1;justify-content:flex-end;align-items:center;min-height:36px;padding:0 11px;display:flex;position:relative}.live-present-controls{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.live-present-finished{text-align:center}.live-present-finished h1{margin-inline:auto}.live-scoreboard{width:min(850px,100%);margin:35px auto 0}.live-scoreboard article{border-bottom:1px solid var(--border-soft);text-align:left;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:14px 8px;display:grid}.live-scoreboard article>span{background:var(--surface-sunk);width:34px;height:34px;color:var(--teal);border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.live-scoreboard strong{font-size:var(--type-body)}.live-scoreboard b{color:var(--success);font-size:1.1rem}.live-code-join-card{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--ground);grid-template-columns:1fr auto;align-items:center;gap:30px;padding:25px;display:grid}.live-code-join-card h2{margin-top:4px;font-size:1.6rem;font-weight:700}.live-code-join-card p{color:var(--ink-500);margin-top:6px}.live-code-form{gap:10px;display:flex}.live-code-input{border:2px solid var(--teal-light);border-radius:var(--corner-surface);text-align:center;letter-spacing:.15em;text-transform:uppercase;width:180px;color:var(--teal-deep);background:#fff;padding:10px 14px;font-size:1.5rem;font-weight:700}.live-session-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:#fff;flex-direction:column;min-height:280px;padding:20px;display:flex}.live-session-card h3{color:var(--ink-900);margin-top:18px;font-size:1.35rem;font-weight:700}.live-session-card>p{color:var(--ink-500);margin-top:8px;line-height:1.55}.live-session-card>small{color:var(--ink-500);margin-top:auto;padding-top:20px}.live-dot{background:var(--success);border-radius:999px;width:10px;height:10px;box-shadow:0 0 0 6px #2f7a6221}.live-join-page-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);text-align:center;background:#fff;width:min(520px,100%);margin:0 auto;padding:35px}.live-join-page-card h1{color:var(--ink-900);margin-top:15px;font-size:2.5rem;font-weight:700}.live-join-page-card>p{color:var(--ink-500);margin-top:14px;line-height:1.6}.live-student-waiting,.live-student-finished{border:1px solid var(--border-soft);border-radius:var(--corner-surface);text-align:center;background:#fff;width:min(720px,100%);margin:30px auto;padding:clamp(30px,7vw,65px)}.live-student-waiting h1,.live-student-finished h1{color:var(--ink-900);margin-top:13px;font-size:clamp(2rem,5vw,3.6rem);font-weight:700}.live-student-waiting p{color:var(--ink-500);margin:15px 0 22px}.live-pulse{background:var(--success);border-radius:999px;width:24px;height:24px;margin:0 auto 24px;animation:1.8s infinite livePulse;box-shadow:0 0 #2f7a6266}@media (prefers-reduced-motion:reduce){.live-pulse{animation:none}}.live-final-score{flex-direction:column;margin:25px auto;display:flex}.live-final-score strong{color:var(--success);font-size:4rem;font-weight:700}.live-final-score span{color:var(--ink-500)}.live-student-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:#fff;width:min(920px,100%);margin:0 auto;overflow:hidden}.live-student-card>header{border-bottom:1px solid var(--border-soft);font-size:var(--type-small);color:var(--ink-500);justify-content:space-between;gap:15px;padding:17px 22px;display:flex}.live-student-card>header span{color:var(--teal);font-weight:700}.live-student-question{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:270px;padding:30px;display:flex}.live-student-question h1{max-width:790px;color:var(--ink-900);font-size:clamp(1.5rem,4vw,2.8rem);font-weight:700;line-height:1.2}.live-student-question img{border-radius:var(--corner-surface);object-fit:contain;max-width:100%;max-height:260px}.live-student-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 22px 22px;display:grid}.live-student-options form{display:flex}.live-student-option{cursor:pointer;text-align:left;align-items:center;gap:13px;width:100%;min-height:96px;transition:transform .12s,filter .12s,opacity .12s;display:flex}.live-student-option:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-2px)}.live-student-option:disabled{cursor:default}.live-student-option.is-selected{outline:5px solid var(--ink-900);outline-offset:2px}.live-student-option strong{font-size:var(--type-body);line-height:1.35}.live-student-status{border-top:1px solid var(--border-soft);text-align:center;color:var(--ink-600);background:var(--ground);padding:17px 22px;font-weight:600}.live-manage-question{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);grid-template-columns:46px 1fr;gap:15px;padding:17px;display:grid}.live-manage-number{border-radius:var(--corner-control);background:var(--surface-sunk);width:38px;height:38px;color:var(--teal);justify-content:center;align-items:center;font-weight:700;display:flex}.live-manage-question h3{color:var(--ink-800);font-weight:700}.live-manage-option{border:1px solid var(--border-soft);border-radius:var(--corner-control);font-size:var(--type-ui);color:var(--ink-600);align-items:center;gap:9px;padding:9px 11px;display:flex}.live-manage-option span{color:var(--teal);font-weight:700}.live-manage-option.is-correct{border-color:var(--success-border);background:var(--success-wash);color:var(--success)}.live-review-page{background:#fff}.live-review-header{border-bottom:3px solid var(--ink-900);justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:25px;display:flex}.live-review-header h1{color:var(--ink-900);margin-top:5px;font-size:clamp(2rem,4vw,3.3rem);font-weight:700}.live-review-header>div>p:last-child{color:var(--ink-500);margin-top:8px}.live-review-score{flex-direction:column;align-items:flex-end;display:flex}.live-review-score strong{color:var(--success);font-size:2.7rem;font-weight:700}.live-review-score span{color:var(--ink-500)}.live-review-list{space-y:20px;margin-top:32px}.live-review-question{break-inside:avoid;border:1px solid var(--border-soft);border-radius:var(--corner-surface);margin-bottom:22px;padding:22px}.live-review-question>header{grid-template-columns:38px 1fr;align-items:start;gap:12px;display:grid}.live-review-question>header span{border-radius:var(--corner-control);background:var(--ink-900);color:#fff;justify-content:center;align-items:center;width:34px;height:34px;font-weight:700;display:flex}.live-review-question h2{color:var(--ink-900);font-size:1.25rem;font-weight:700;line-height:1.35}.live-review-question>img{border-radius:var(--corner-surface);object-fit:contain;max-width:100%;max-height:300px;margin:20px auto;display:block}.live-review-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px;display:grid}.live-review-options>div{border:1px solid var(--border-soft);border-radius:var(--corner-control);grid-template-columns:30px 1fr;align-items:center;gap:8px;padding:10px;display:grid}.live-review-options>div>span{color:var(--teal);font-weight:700}.live-review-options>div>small{color:var(--ink-500);grid-column:2}.live-review-options>div.is-correct{border-color:var(--success-border);background:var(--success-wash)}.live-review-options>div.is-wrong{border-color:var(--danger-border);background:var(--danger-wash)}.live-no-answer{color:var(--warning);margin-top:12px;font-weight:600}.live-review-footer{border-top:1px solid var(--border-soft);text-align:center;font-size:var(--type-caption);color:var(--ink-500);margin-top:35px;padding-top:15px}@media (max-width:850px){.live-present-lobby,.live-option-grid,.live-student-options,.live-review-options,.live-code-join-card{grid-template-columns:1fr}.live-code-form{flex-direction:column}.live-code-input{width:100%}.live-question-header{flex-direction:column;align-items:flex-start}.live-present-controls{flex-wrap:wrap;justify-content:stretch}.live-present-controls form,.live-present-controls button{width:100%}.live-review-header{flex-direction:column}.live-review-score{align-items:flex-start}}@media print{.live-review-page{width:100%;max-width:none;padding:0}.live-review-question{box-shadow:none;page-break-inside:avoid}.live-review-options{grid-template-columns:repeat(2,minmax(0,1fr))}}.course-space-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding:4px 0 24px;display:flex}.course-group-space-hero h1{margin:0;font-size:clamp(1.8rem,3.2vw,2.4rem);line-height:1.12}.module-hero{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding:4px 0 24px;display:flex}.module-hero h1{letter-spacing:-.018em;color:var(--ink-900);margin:0;font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700;line-height:1.15}.module-hero p{max-width:60ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:8px 0 0;line-height:1.65}.course-description-panel{background:var(--surface)}.course-description-panel p{max-width:68ch;font-size:var(--type-body-sm);color:var(--ink-700);margin:8px 0 0;line-height:1.75}.course-space-hero.is-preview{background:0 0}.course-space-hero h1{letter-spacing:-.018em;max-width:850px;color:var(--ink-900);margin-top:6px;font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700;line-height:1.12}.course-space-hero p{font-size:var(--type-body);color:var(--ink-500);margin-top:8px;font-weight:500}.course-preview-badge{border:1px solid var(--border);background:var(--surface-sunk);color:var(--teal);font-size:var(--type-caption);border-radius:999px;align-items:center;padding:7px 11px;font-weight:600;display:inline-flex}.course-space-layout{grid-template-columns:minmax(0,1fr) minmax(310px,380px);align-items:start;gap:26px;margin-top:26px;display:grid}.course-space-layout.is-single{grid-template-columns:minmax(0,1fr)}.course-description-panel,.course-membership-panel,.course-activity-panel,.course-admin-panel,.course-preview-callout{padding:clamp(22px,3vw,32px)}.course-description-panel h2,.course-membership-panel h2,.course-activity-panel h2,.course-admin-panel h2,.course-preview-callout h2{letter-spacing:-.018em;color:var(--ink-900);margin-top:7px;font-size:clamp(1.45rem,3vw,2.05rem);font-weight:700}.course-description-panel>p,.course-admin-panel p,.course-preview-callout p{max-width:780px;color:var(--ink-500);font-size:var(--type-body);margin-top:14px;line-height:1.8}.course-module-rail{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);margin-top:26px;overflow:hidden}.course-module-rail-heading{border-bottom:1px solid var(--border-soft);background:0 0;justify-content:space-between;align-items:center;gap:14px;padding:22px clamp(18px,3vw,26px);display:flex}.course-module-rail-heading h2{letter-spacing:-.016em;color:var(--ink-900);font-size:clamp(1.2rem,2.2vw,1.5rem);font-weight:800}.course-module-count{background:var(--surface);border:1px solid var(--border-soft);color:var(--ink-500);font-size:var(--type-micro);white-space:nowrap;border-radius:999px;padding:6px 12px;font-weight:700}.course-module-list{grid-template-columns:minmax(0,1fr);display:grid}.course-module-item{border-top:1px solid var(--border-soft);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px clamp(18px,3vw,26px);transition:background .15s;display:grid;position:relative}.course-module-item:first-child{border-top:0}.course-module-item.is-enabled:hover{background:var(--ground)}.course-module-item.is-disabled{opacity:.6}.course-module-item.is-enabled:after{content:"";background:var(--ink-400);width:18px;height:18px;transition:background .15s,transform .15s;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") 50%/contain no-repeat}.course-module-item.is-enabled:hover:after{background:var(--teal);transform:translate(3px)}.course-module-icon{border-radius:var(--corner-surface);background:var(--teal-wash);width:44px;height:44px;color:var(--teal-deep);justify-content:center;align-items:center;display:inline-flex}.course-module-icon svg{width:22px;height:22px}.course-module-item.is-disabled .course-module-icon{background:var(--surface-sunk);color:var(--ink-400)}.course-module-copy{min-width:0}.course-module-copy strong{color:var(--ink-900);font-size:var(--type-body);letter-spacing:-.01em;font-weight:700;display:block}.course-module-copy small{color:var(--ink-500);font-size:var(--type-small);margin-top:2px;line-height:1.5;display:block}.course-module-state{background:var(--surface-sunk);color:var(--ink-500);font-size:var(--type-micro);white-space:nowrap;border-radius:999px;padding:4px 10px;font-weight:700}.course-module-rail.is-sidebar{margin-top:0;position:sticky;top:88px}.course-module-rail.is-sidebar .course-module-list{grid-template-columns:minmax(0,1fr)}.course-module-rail.is-sidebar .course-module-item{min-height:0}.course-module-monogram{border-radius:var(--corner-surface);background:var(--teal);min-width:52px;height:52px;color:var(--surface);font-size:var(--type-caption);letter-spacing:.04em;justify-content:center;align-items:center;padding:0 10px;font-weight:800;display:inline-flex}.course-module-promo-note{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--ground);color:var(--ink-600);font-size:var(--type-caption);margin:0 clamp(16px,2.4vw,22px) clamp(16px,2.4vw,22px);padding:13px;line-height:1.55}.course-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px;display:grid}.course-detail-grid>div{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:15px}.course-detail-grid dt,.course-preview-facts small,.course-card-stats small,.course-activity-list small{color:var(--ink-500);font-size:var(--type-caption);font-weight:600;display:block}.course-detail-grid dd{color:var(--ink-800);margin-top:5px;font-weight:600}.course-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.course-activity-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.course-activity-list article{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:16px}.course-activity-list strong,.course-activity-list span{display:block}.course-activity-list strong{color:var(--ink-800);margin-top:7px}.course-activity-list span{color:var(--ink-500);font-size:var(--type-small);margin-top:5px;line-height:1.5}.course-teaching-list{margin-top:20px}.course-teaching-list article{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:18px;padding:16px 0;display:flex}.course-teaching-list article:last-child{border-bottom:0;padding-bottom:0}.course-teaching-list h3{color:var(--ink-800);margin-top:7px;font-weight:700}.course-teaching-list p{color:var(--ink-500);font-size:var(--type-small);margin-top:4px}.course-admin-panel,.course-preview-callout{justify-content:space-between;align-items:center;gap:24px;display:flex}.course-preview-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.course-preview-facts>div{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:16px}.course-preview-facts strong{color:var(--ink-800);margin-top:7px;line-height:1.45;display:block}.course-card-featured{background:var(--surface)}.course-card-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.course-card-stats>div{border-radius:var(--corner-surface);background:var(--ground);text-align:center;padding:11px}.course-card-stats strong{color:var(--ink-800);margin-top:3px;font-size:1.15rem;display:block}@media (max-width:980px){.course-space-layout{grid-template-columns:1fr}.course-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.course-space-hero{flex-direction:column;align-items:flex-start}.course-detail-grid,.course-progress-grid,.course-activity-list,.course-preview-facts{grid-template-columns:1fr}.course-teaching-list article,.course-admin-panel,.course-preview-callout{flex-direction:column;align-items:flex-start}.course-teaching-list .button-secondary,.course-admin-panel .button-primary,.course-preview-callout .button-secondary{width:100%}}.course-group-empty{border:1px dashed var(--border);border-radius:var(--corner-surface);color:var(--ink-500);font-size:var(--type-ui);text-align:center;margin:8px;padding:22px;line-height:1.65}.course-structure-copy{color:var(--ink-500);margin-top:18px;line-height:1.75}.group-context-callout{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface-sunk);padding:18px}.group-context-callout strong,.group-context-callout p{display:block}.group-context-callout strong{color:var(--ink-800);font-size:var(--type-body);margin-top:7px}.group-context-callout p{color:var(--ink-500);font-size:var(--type-ui);margin-top:7px;line-height:1.65}.notes-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;padding:4px 0 24px;display:flex}.notes-hero.is-manage{background:0 0}.notes-hero h1{letter-spacing:-.018em;color:var(--ink-900);margin-top:6px;font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700;line-height:1.12}.notes-hero p{max-width:68ch;color:var(--ink-500);margin-top:10px;line-height:1.6}.library-text-action,.library-text-danger{font-size:var(--type-caption);cursor:pointer;background:0 0;border:0;padding:4px 0;font-weight:700}.library-text-action{color:var(--teal)}.library-text-danger{color:var(--danger)}.library-text-action:hover,.library-text-danger:hover{text-decoration:underline}.notes-manage-grid{grid-template-columns:minmax(260px,.72fr) minmax(0,1.6fr);align-items:start;gap:24px;margin-top:26px;display:grid}.notes-upload-dropzone{border:1.5px dashed var(--border);border-radius:var(--corner-surface);background:var(--ground);padding:22px}.notes-upload-dropzone p{color:var(--ink-500);font-size:var(--type-small);margin-top:12px;line-height:1.65}.notes-file-input{width:100%;color:var(--ink-600);font-size:var(--type-small);display:block}.notes-file-input::file-selector-button{border-radius:var(--corner-control);background:var(--teal);color:#fff;cursor:pointer;border:0;margin-right:14px;padding:10px 14px;font-weight:600}.notes-publish-toggle{color:var(--ink-600);font-size:var(--type-small);align-items:center;gap:10px;font-weight:600;display:inline-flex}.notes-publish-toggle input{width:17px;height:17px}.secure-document-shell{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);-webkit-user-select:none;user-select:none;margin-top:18px;overflow:hidden}.secure-document-toolbar{border-bottom:1px solid var(--border-soft);background:var(--surface);justify-content:space-between;align-items:center;gap:22px;padding:19px 22px;display:flex}.secure-document-toolbar h1{color:var(--ink-800);margin-top:4px;font-size:1.2rem;font-weight:700}.secure-document-controls{align-items:center;gap:8px;display:flex}.secure-document-controls .button-secondary{min-width:38px;min-height:36px;padding:0 10px}.secure-document-controls span{text-align:center;min-width:66px;font-size:var(--type-small);color:var(--ink-600);font-weight:700}.secure-document-stage{background:var(--border-soft);min-height:620px;padding:28px;overflow:auto}.secure-document-shell{position:relative}.secure-document-stage{-webkit-touch-callout:none}.secure-document-stage.is-obscured canvas,.secure-document-stage.is-obscured .secure-docx-content{visibility:hidden}.secure-document-veil{z-index:30;background:color-mix(in srgb, var(--surface) 86%, transparent);text-align:center;font-size:var(--type-body-sm);color:var(--ink-600);cursor:pointer;border:0;place-content:center;gap:6px;padding:24px;display:grid;position:absolute;inset:0}.secure-document-veil strong{color:var(--teal-deep);font-weight:800}.secure-document-loading{min-height:480px;color:var(--ink-500);place-items:center;font-weight:600;display:grid}.secure-pdf-page,.secure-docx-page{border-radius:var(--corner-mark);width:-moz-fit-content;width:fit-content;max-width:100%;box-shadow:var(--shadow-object);background:#fff;margin:0 auto;position:relative;overflow:hidden}.secure-pdf-page canvas{background:#fff;max-width:100%;display:block;height:auto!important}.secure-docx-page{width:min(860px,100%);min-height:980px}.secure-docx-content{z-index:1;color:var(--ink-800);font-family:var(--font-body);font-size:var(--type-body);-webkit-user-select:text;user-select:text;padding:70px 76px;line-height:1.75;position:relative}.secure-docx-content h1,.secure-docx-content h2,.secure-docx-content h3{margin:1.3em 0 .55em;line-height:1.25}.secure-docx-content p{margin:.8em 0}.secure-docx-content img{max-width:100%;height:auto}.secure-docx-content table{border-collapse:collapse;margin:1em 0}.secure-docx-content td,.secure-docx-content th{border:1px solid var(--border);padding:7px}.document-watermark-grid{z-index:3;pointer-events:none;flex-direction:column;justify-content:space-around;display:flex;position:absolute;inset:-12%;overflow:hidden;transform:rotate(-20deg)scale(1.18)}.document-watermark-row{justify-content:space-around;align-items:center;display:flex}.document-watermark-row.is-offset{transform:translate(16%)}.document-watermark-tile{opacity:.1;align-items:center;gap:12px;display:flex}.document-watermark-tile img{width:clamp(40px,5.4vw,66px);height:auto}.document-watermark-copy{flex-direction:column;line-height:1.15;display:flex}.document-watermark-copy strong{color:var(--navy);letter-spacing:-.01em;white-space:nowrap;font-size:clamp(1.05rem,2.5vw,1.7rem);font-weight:800}.document-watermark-copy small{color:var(--teal-deep);letter-spacing:.02em;white-space:nowrap;margin-top:2px;font-size:clamp(.74rem,1.6vw,1.05rem);font-weight:700}.secure-document-print-block{display:none}@media (max-width:900px){.notes-manage-grid{grid-template-columns:1fr}}@media (max-width:700px){.notes-hero,.secure-document-toolbar{flex-direction:column;align-items:stretch}.secure-document-controls{flex-wrap:wrap;justify-content:center}.secure-document-stage{min-height:480px;padding:12px}.secure-docx-content{padding:42px 26px}.document-watermark-grid{grid-template-columns:repeat(2,minmax(145px,1fr))}}@media print{.secure-document-print-block,.secure-document-print-block *{visibility:visible!important}.secure-document-print-block{color:var(--ink-800);text-align:center;background:#fff;padding:80px;font-size:22px;font-weight:700;display:block;position:fixed;inset:0}}.page-loading{color:var(--ink-500);flex-direction:column;align-items:center;gap:16px;padding:48px 0;display:flex}.page-loading-spinner{border:3px solid var(--border);border-top-color:var(--teal-deep);border-radius:999px;width:30px;height:30px;animation:.8s linear infinite pageLoadingSpin}@media (prefers-reduced-motion:reduce){.page-loading-spinner{animation-duration:2.4s}}.paper-admin-row{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:20px;display:grid}.paper-admin-edit{gap:10px;min-width:0;display:grid}.paper-admin-title{align-items:center;gap:12px;display:flex}.paper-admin-title input{flex:auto}.paper-admin-meta{flex-wrap:wrap;gap:10px;display:flex}.paper-admin-meta select{max-width:240px}.paper-admin-meta input{max-width:120px}.paper-admin-url{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--type-caption);color:var(--ink-500);word-break:break-all}.paper-admin-actions{flex-direction:column;gap:8px;display:flex}.paper-group{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);overflow:hidden}.paper-group-head{background:var(--surface-sunk);cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 18px;list-style:none;display:flex}.paper-group-head::-webkit-details-marker{display:none}.paper-group-head:before{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid var(--ink-400);flex:none;width:0;height:0;transition:transform .15s}.paper-group[open]>.paper-group-head:before{transform:rotate(90deg)}.paper-group-head:hover{background:var(--teal-wash)}.paper-group-name{font-size:var(--type-body);color:var(--ink-800);margin-right:auto;font-weight:800}.paper-group-size{font-size:var(--type-caption);color:var(--ink-500)}.paper-group-body{gap:18px;padding:16px 18px 20px;display:grid}.paper-group-tools{justify-content:flex-end;display:flex}.paper-subgroup{border-left:1px solid var(--border-soft);gap:12px;padding-left:14px;display:grid}.paper-subgroup-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.paper-subgroup-head h3{font-size:var(--type-body-sm);color:var(--ink-700);margin:0;font-weight:700}.paper-subgroup-delete{margin-left:auto}.paper-subgroup-delete-button{font-size:var(--type-caption);color:var(--danger);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.paper-subgroup-delete-button:hover{color:var(--ink-900)}@media (max-width:900px){.paper-admin-row{grid-template-columns:1fr}.paper-admin-actions{flex-direction:row}.paper-group-body{padding:14px 12px 16px}.paper-subgroup{padding-left:10px}}.import-mode-tabs{border:1px solid var(--border-soft);background:var(--surface-sunk);border-radius:999px;place-self:start;gap:4px;width:-moz-fit-content;width:fit-content;max-width:100%;margin-top:18px;padding:4px;display:inline-flex}.import-mode-tab{color:var(--ink-500);font-size:var(--type-small);border-radius:999px;justify-content:center;align-items:center;padding:9px 18px;font-weight:700;transition:background .16s,color .16s,box-shadow .16s;display:inline-flex}.import-mode-tab:hover{color:var(--ink-700)}.import-mode-tab.is-active{background:var(--surface);color:var(--teal-deep);box-shadow:0 2px 8px #1424431a}.bulk-dropzone{border:2px dashed var(--border);border-radius:var(--corner-surface);background:var(--ground);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:clamp(24px,4vw,38px) 22px;transition:border-color .18s,background .18s;display:flex}.bulk-dropzone.is-dragging{border-color:var(--teal);background:var(--teal-wash)}.bulk-dropzone-icon{width:34px;height:34px;color:var(--teal)}.bulk-dropzone strong{color:var(--ink-800);font-size:var(--type-lead);font-weight:800}.bulk-dropzone p{max-width:46ch;color:var(--ink-500);font-size:var(--type-small);line-height:1.6}.bulk-dropzone-note{max-width:60ch;color:var(--ink-500);font-size:var(--type-caption);line-height:1.6}.bulk-dropzone-note code{color:var(--ink-600);font-weight:700}.bulk-dropzone-note a{color:var(--teal-deep);font-weight:700;text-decoration:underline}.bulk-review{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);overflow:hidden}.bulk-review-head{border-bottom:1px solid var(--border-soft);background:var(--ground);justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;display:flex}.bulk-review-head h3{font-size:var(--type-body);color:var(--ink-800);font-weight:800}.bulk-review-list{flex-direction:column;display:flex}.bulk-review-row{border-radius:var(--corner-surface);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.bulk-review-row+.bulk-review-row{border-top:1px solid var(--border-soft)}.bulk-review-row.is-blocked{background:var(--danger-wash)}.bulk-review-row.is-working{background:var(--teal-wash)}.bulk-review-row.is-done{background:var(--success-wash)}.bulk-review-row.is-failed{background:var(--warning-wash)}.bulk-review-file{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bulk-review-file code{color:var(--ink-700);font-size:var(--type-small);font-weight:700}.bulk-chip{background:var(--surface-sunk);color:var(--ink-500);font-size:var(--type-micro);border-radius:999px;padding:3px 9px;font-weight:700}.bulk-chip.is-bad{background:var(--danger-wash);color:var(--danger)}.bulk-chip.is-folder{background:var(--teal-wash);color:var(--teal-deep)}.bulk-dropzone-count{color:var(--teal-deep);font-size:var(--type-small);font-weight:700}.upload-status-replaced{border-color:var(--teal-light);background:var(--teal-wash);color:var(--teal-deep)}.bulk-progress{border:1px solid var(--teal-light);border-radius:var(--corner-surface);background:var(--teal-wash);padding:16px 18px}.bulk-progress-track{background:var(--surface);border-radius:999px;height:8px;overflow:hidden}.bulk-progress-fill{background:var(--teal);border-radius:999px;width:100%;height:100%;transition:transform .3s;transform:translate(-100%)}.bulk-progress-label{color:var(--teal-deep);font-size:var(--type-small);margin-top:9px;font-weight:700}.bulk-review-head-actions{align-items:center;gap:10px;display:flex}.bulk-review-clear{background:var(--surface);border:1px solid var(--border);color:var(--ink-500);font-size:var(--type-micro);cursor:pointer;border-radius:999px;padding:5px 11px;font-weight:700;transition:color .15s,border-color .15s}.bulk-review-clear:hover{color:var(--danger);border-color:var(--danger-border)}.bulk-review-remove{border-radius:var(--corner-control);background:var(--surface-sunk);width:24px;height:24px;color:var(--ink-500);font-size:var(--type-body);cursor:pointer;order:99;margin-left:auto;line-height:1;transition:background .15s,color .15s}.bulk-review-remove:hover{background:var(--danger-wash);color:var(--danger)}.bulk-dropzone-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.bulk-review-fields{grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr) minmax(0,1.05fr);gap:10px;display:grid}.bulk-review-fields.is-themata{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1.15fr) minmax(98px,.5fr)}.bulk-review-warning{color:var(--warning);font-size:var(--type-caption);line-height:1.5}.bulk-review-status{color:var(--ink-600);font-size:var(--type-small);font-weight:600}@media (max-width:900px){.bulk-review-fields.is-themata{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width:680px){.bulk-review-fields,.bulk-review-fields.is-themata{grid-template-columns:minmax(0,1fr)}.import-mode-tabs{width:100%;display:flex}.import-mode-tab{text-align:center;flex:1}}.danger-panel{border-color:var(--danger-border);background:var(--danger-wash);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.danger-panel h2,.danger-panel .eyebrow{color:var(--danger)}.bulk-publish-toggle{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--ground);cursor:pointer;align-items:flex-start;gap:11px;padding:14px;display:flex}.bulk-publish-toggle input{width:16px;height:16px;margin-top:3px}.bulk-publish-toggle strong{color:var(--ink-800);font-size:var(--type-ui);font-weight:700;display:block}.bulk-publish-toggle small{color:var(--ink-500);font-size:var(--type-caption);margin-top:3px;line-height:1.5;display:block}.question-remove{background:var(--surface-sunk);border:1px solid var(--border);color:var(--ink-500);font-size:var(--type-micro);cursor:pointer;border-radius:999px;padding:4px 10px;font-weight:700;transition:background .15s,color .15s,border-color .15s}.question-remove:hover{background:var(--danger-wash);border-color:var(--danger-border);color:var(--danger)}.access-email-offer{border-color:var(--gold);width:100%;color:var(--gold-deep);font-size:var(--type-small);margin-top:10px}.access-email-offer:hover{background:var(--gold-wash)}.access-email-sent{border-radius:var(--corner-control);background:var(--success-wash);color:var(--success);font-size:var(--type-caption);margin-top:10px;padding:8px 11px;font-weight:700}.email-modal-backdrop{z-index:60;background:#0d17287a;justify-content:center;align-items:flex-start;padding:32px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.email-modal{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);width:min(680px,100%);box-shadow:var(--shadow-float);padding:24px}.email-modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.email-modal-head h2{color:var(--ink-900);margin-top:2px;font-size:1.3rem;font-weight:800}.email-modal-note{color:var(--ink-500);font-size:var(--type-ui)}.email-modal-field{margin-bottom:14px;display:block}.email-template-switch{flex-wrap:wrap;gap:8px;margin:6px 0 8px;display:flex}.email-template-switch .button-primary,.email-template-switch .button-secondary{font-size:var(--type-ui);padding:8px 14px}.email-modal-to{border-radius:var(--corner-control);background:var(--ground);color:var(--ink-700);font-size:var(--type-ui);padding:9px 12px;font-weight:700}.email-modal-body{min-height:340px;font-family:var(--font-body);font-size:var(--type-ui);resize:vertical;line-height:1.65}.email-modal-actions{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.email-modal-preview{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--ground);width:100%;height:460px;margin-bottom:14px}@media (max-width:640px){.email-modal{border-radius:var(--corner-surface);padding:18px}.email-modal-actions{flex-direction:column-reverse}.email-modal-actions>*{width:100%}}.enrolment-fold>summary{flex-wrap:wrap}.enrolment-fold-title{color:var(--ink-600);font-size:var(--type-small);font-weight:600}.enrolment-fold-search{border-bottom:1px solid var(--border-soft);justify-content:flex-end;padding:12px 16px;display:flex}.enrolment-fold-search .form-input{min-width:240px;font-size:var(--type-small);padding-top:7px;padding-bottom:7px}.enrolment-fold table{font-size:var(--type-ui)}.user-role-dot{width:10px;height:10px;box-shadow:0 0 0 3px var(--ground);border-radius:50%;flex-shrink:0;display:inline-block}.user-role-dot.is-visitor{background:var(--blue)}.user-role-dot.is-student{background:var(--teal)}.user-role-dot.is-premium-student{background:var(--gold)}.user-role-dot.is-teacher{background:var(--navy-mid)}.user-role-dot.is-admin{background:var(--danger)}.user-cell{align-items:center;gap:11px;min-width:0;display:flex}.admin-search{align-items:center;gap:8px;display:flex;position:relative}.admin-search .form-input{min-width:230px;font-size:var(--type-ui);padding-top:8px;padding-bottom:8px}.admin-search-count{background:var(--ground);color:var(--ink-500);font-size:var(--type-caption);border-radius:999px;padding:3px 10px;font-weight:800}.access-cell{gap:10px;display:grid}.access-field{gap:4px;display:grid}.access-field-label{color:var(--ink-500);font-size:var(--type-caption);font-weight:600}.access-field-label em{color:var(--ink-500);letter-spacing:0;text-transform:none;font-style:normal;font-weight:600}.access-save{width:100%;min-height:38px;font-size:var(--type-small);padding:8px 14px}.access-courses{border-left:1px solid var(--border-soft);gap:6px;padding-left:12px;display:grid}.access-courses-title{color:var(--ink-500);font-size:var(--type-caption);font-weight:600}.access-course{color:var(--ink-700);font-size:var(--type-small);cursor:pointer;align-items:center;gap:8px;font-weight:600;display:flex}.access-courses-empty{color:var(--ink-500);font-size:var(--type-caption);font-style:normal}.admin-enrolment-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.admin-enrolment-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-enrolment-name{font-size:var(--type-ui);color:var(--ink-800);font-weight:700}.admin-enrolment-until{background:var(--ground);color:var(--ink-500);font-size:var(--type-micro);white-space:nowrap;border-radius:999px;padding:2px 9px;font-weight:700}.library-breadcrumbs{font-size:var(--type-ui);color:var(--ink-500);flex-wrap:wrap;align-items:center;gap:2px;margin-inline:-8px;font-weight:600;display:flex}.library-breadcrumbs a{border-radius:var(--corner-control);color:inherit;padding:4px 8px;transition:background .16s,color .16s}.library-breadcrumbs a:hover{background:var(--ground);color:var(--ink-900)}.library-breadcrumbs a[aria-current=page]{color:var(--ink-900);cursor:default}.library-breadcrumb-sep{color:var(--ink-300)}.library-section-title{color:var(--ink-800);font-size:var(--type-ui);margin-bottom:10px;font-weight:700}.library-grid{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:768px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1600px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.library-card{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);flex-direction:column;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;overflow:hidden}.library-card:hover{border-color:var(--teal-light)}.library-card-open{flex:1;align-items:center;gap:11px;padding:11px 13px;display:flex}.library-card-icon{border-radius:var(--corner-control);flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.library-card-icon svg{width:18px;height:18px}.library-card-icon.is-folder{background:var(--gold-wash);color:var(--gold-deep)}.library-card-icon.is-pdf{background:var(--danger-wash);color:var(--danger)}.library-card-icon.is-word{background:var(--blue-wash);color:var(--blue-deep)}.library-card-icon.is-video{background:var(--teal-wash);color:var(--teal-deep)}.library-card-icon.is-file{background:var(--surface-sunk);color:var(--ink-600)}.library-card-copy{flex:1;min-width:0}.library-card-copy strong{-webkit-line-clamp:2;color:var(--ink-800);font-size:var(--type-body-sm);-webkit-box-orient:vertical;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.library-card-copy small{color:var(--ink-500);font-size:var(--type-caption);margin-top:2px;display:block}.library-card-chevron{color:var(--ink-300);font-size:var(--type-lead)}.library-card:hover .library-card-chevron{color:var(--teal)}.library-card-tools{border-top:1px solid var(--border-soft);background:var(--ground)}.library-card-tools>summary{color:var(--ink-500);font-size:var(--type-caption);cursor:pointer;padding:10px 16px;font-weight:700;list-style:none}.library-card-tools>summary::-webkit-details-marker{display:none}.library-card-tools>summary:after{content:" ▾"}.library-card-tools[open]>summary:after{content:" ▴"}.library-card-tools>summary:hover{color:var(--ink-700)}.library-tool-row{gap:8px;padding:0 16px 12px;display:flex}.library-tool-row .form-input,.library-tool-row .form-select{flex:1;min-width:0}.library-tool-row .button-secondary{flex-shrink:0}.library-tool-danger{padding:0 16px 16px}.library-tool-note{color:var(--ink-500);font-size:var(--type-caption);padding:0 16px 12px;line-height:1.5}.library-tool-inline{flex-wrap:wrap;align-items:center;gap:14px;padding:0 16px 14px;display:flex}.library-empty-state{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);text-align:center;color:var(--ink-500);padding:52px 24px}.library-empty-state strong{color:var(--ink-700);font-size:var(--type-lead)}.library-empty-state p{font-size:var(--type-ui);margin-top:7px}.question-edit{border-top:1px solid var(--border-soft);margin-top:14px}.question-edit>summary{color:var(--ink-500);font-size:var(--type-caption);cursor:pointer;padding-top:11px;font-weight:700;list-style:none}.question-edit>summary::-webkit-details-marker{display:none}.question-edit>summary:after{content:" ▾"}.question-edit[open]>summary:after{content:" ▴"}.question-edit>summary:hover{color:var(--ink-700)}.question-edit-form{gap:9px;padding-top:11px;display:grid}.question-edit-option{align-items:center;gap:9px;display:flex}.question-edit-letter{border-radius:var(--corner-control);background:var(--surface-sunk);min-width:42px;height:34px;color:var(--ink-500);font-size:var(--type-caption);flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.question-edit-letter.is-correct{background:var(--success-wash);color:var(--success)}.promo-vision-solo .promo-vision-copy{max-width:70ch}.promo-vision-solo .promo-vision-copy p{max-width:none}.platform-solo{margin-top:34px}.platform-solo .platform-points ul{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:28px}.method-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.method-list li{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);font-size:var(--type-body);color:var(--ink-800);align-items:center;gap:14px;padding:14px 18px;font-weight:600;display:flex}.method-list .method-step-index{margin:0}.promo-platform{background:var(--surface);padding:72px 0}.platform-points ul{gap:20px;margin:0 0 26px;padding:0;list-style:none;display:grid}.platform-points li{gap:13px;display:flex}.platform-points .icon-check{fill:none;width:21px;height:21px;stroke:var(--teal);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:3px}.platform-points h3{font-size:var(--type-body);color:var(--ink-800);font-weight:800}.platform-points p{color:var(--ink-500);font-size:var(--type-body-sm);margin-top:4px;line-height:1.6}.school-change-row .form-select{flex:1;min-width:220px}.school-change-pending .request-open-dot{margin-top:5px}.news-editor{gap:0;display:grid}.news-editor-bar{border:1px solid var(--border);border-radius:var(--corner-surface) var(--corner-surface) 0 0;background:var(--surface-sunk);border-bottom:none;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.news-editor-bar button{border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);min-width:34px;font-size:var(--type-small);cursor:pointer;color:var(--ink-700,var(--ink-700));padding:4px 9px}.news-editor-bar button:hover{border-color:var(--teal,var(--teal))}.news-editor-bar button.is-on{background:var(--teal,var(--teal));border-color:var(--teal,var(--teal));color:#fff}.news-editor-bar button:last-of-type{margin-left:auto}.news-editor-hint{font-size:var(--type-micro);color:var(--ink-500)}.news-editor textarea.form-input{border-radius:0 0 var(--corner-surface) var(--corner-surface)}.news-editor-preview{border:1px solid var(--border);border-radius:0 0 var(--corner-surface) var(--corner-surface);background:var(--surface);border-top:none;padding:16px}.news-editor-taken{font-size:var(--type-small);color:var(--teal-deep);margin:6px 0 0;font-weight:700}.announcement-image{border-radius:var(--corner-surface);background:var(--surface-sunk);margin-top:14px;overflow:hidden}.announcement-image img{width:100%;max-width:640px;height:auto;display:block}.module-note{border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--teal-wash);color:var(--ink-600);font-size:var(--type-ui);align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;line-height:1.6;display:flex}.module-note-mark{background:var(--teal);border-radius:999px;flex:none;width:6px;height:6px;margin-top:.55em}.module-note a{color:var(--ink-800);text-underline-offset:2px;font-weight:700;text-decoration:underline}.insight-range{flex-wrap:wrap;gap:6px;display:flex}.insight-range-tab{border:1px solid var(--border);font-size:var(--type-small);color:var(--ink-500);background:var(--surface);border-radius:999px;padding:6px 14px;font-weight:700}.insight-range-tab.is-active{border-color:var(--teal);background:var(--teal);color:#fff}.insight-figures{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;display:grid}.insight-figure{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:16px 18px}.insight-figure strong{color:var(--ink-900);font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:800;line-height:1.1;display:block}.insight-figure span{font-size:var(--type-small);color:var(--ink-500);margin-top:4px;display:block}a.insight-figure.is-link{transition:border-color .15s,box-shadow .15s}a.insight-figure.is-link:hover{border-color:var(--teal-light)}.insight-columns{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;display:grid}.insight-list{gap:3px;margin:14px 0 0;padding:0;list-style:none;display:grid}.insight-list li{border-radius:var(--corner-control);align-items:center;padding:8px 10px;display:flex;position:relative;overflow:hidden}.insight-bar{border-radius:var(--corner-control);background:var(--teal-wash);position:absolute;inset:0 auto 0 0}.insight-row{width:100%;font-size:var(--type-ui);color:var(--ink-700);justify-content:space-between;align-items:baseline;gap:12px;display:flex;position:relative}.insight-row a{color:var(--ink-800);font-weight:600}.insight-row a:hover{text-decoration:underline}.insight-row b{font-variant-numeric:tabular-nums;color:var(--ink-900);white-space:nowrap}.traffic-chart svg{width:100%;height:220px;overflow:visible}.traffic-grid{stroke:var(--border-soft);stroke-width:1px}.traffic-axis{fill:var(--ink-300);font-size:10px}@media (max-width:640px){.traffic-axis{display:none}}.traffic-dot{fill:var(--gold)}.traffic-key{align-items:center;gap:6px;display:inline-flex}.traffic-key-dot{background:var(--gold);border-radius:999px;width:8px;height:8px}.traffic-readout{color:var(--ink-600);margin-left:auto}.insight-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.insight-sections{font-size:var(--type-small);flex-wrap:wrap;gap:4px 14px;font-weight:700;display:flex}.insight-sections a{color:var(--teal-deep)}.insight-sections a:hover{text-decoration:underline}.insight-figure-top{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.insight-figure .insight-figure-label{font-size:var(--type-small);color:var(--ink-600);align-items:center;gap:6px;margin-top:6px;font-weight:700;display:flex}.insight-figure small{font-size:var(--type-caption);color:var(--ink-500);margin-top:2px;display:block}.insight-figure .insight-delta,.insight-delta{font-size:var(--type-micro);font-variant-numeric:tabular-nums;color:var(--ink-500);background:var(--surface-sunk);white-space:nowrap;border-radius:999px;align-items:center;margin:0;padding:1px 7px;font-weight:800;display:inline-flex}.insight-figure .insight-delta.is-up,.insight-delta.is-up{color:var(--success);background:var(--success-wash)}.insight-figure .insight-delta.is-down,.insight-delta.is-down{color:var(--danger);background:var(--danger-wash)}.insight-figure .insight-delta.is-new,.insight-delta.is-new{color:var(--blue-deep);background:var(--blue-wash)}.channel-dot{border-radius:999px;flex:none;width:9px;height:9px;display:inline-block}.insight-footnote{font-size:var(--type-caption);color:var(--ink-500);margin:0;line-height:1.55}.insight-glance{border:1px solid var(--teal-light);border-radius:var(--corner-surface);background:var(--surface);padding:18px 22px}.insight-glance h2{font-size:var(--type-small);color:var(--teal-deep);margin:0;font-weight:600}.insight-glance ul{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.insight-glance li{font-size:var(--type-body-sm);color:var(--ink-800);padding-left:18px;line-height:1.55;position:relative}.insight-glance li:before{content:"";background:var(--teal);border-radius:999px;width:7px;height:7px;position:absolute;top:.62em;left:2px}.channel-caption{font-size:var(--type-small);color:var(--ink-500);flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:10px;display:flex}.channel-legend{flex-wrap:wrap;gap:6px 14px;display:flex}.channel-swatch{border-radius:2px;width:10px;height:10px}.channel-bar{transition:opacity .12s}.channel-bar.is-dim{opacity:.35}.channel-table th,.channel-table td,.landing-table th,.landing-table td{padding:10px}.channel-table thead th,.landing-table thead th{font-size:var(--type-caption);color:var(--ink-500);white-space:nowrap;font-weight:600}.channel-table .is-number,.landing-table .is-number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.channel-table tbody{border-top:2px solid var(--border-soft)}.channel-table tbody th,.landing-table tbody th{font-size:var(--type-ui);text-transform:none;letter-spacing:0;color:var(--ink-700)}.channel-row th{color:var(--ink-800);font-weight:800}.channel-name{align-items:flex-start;gap:9px;display:flex}.channel-name .channel-dot{margin-top:.38em}.channel-name small{font-size:var(--type-micro);color:var(--ink-500);font-weight:500;display:block}.source-row th,.source-row td{border-bottom-color:var(--border-soft);font-size:var(--type-small);color:var(--ink-600);padding-top:6px;padding-bottom:6px}.source-row th{padding-left:30px;font-weight:600}.source-row.is-rest th{font-size:var(--type-caption);color:var(--ink-500);font-weight:500}.share-track{background:var(--surface-sunk);border-radius:999px;flex:auto;height:8px;overflow:hidden}.share-track>span{border-radius:999px;height:100%;display:block}.share-value{font-size:var(--type-small);color:var(--ink-500);font-variant-numeric:tabular-nums;font-weight:700}.insight-card-title{font-size:var(--type-lead);color:var(--ink-900);margin:4px 0 0;font-weight:800}.insight-card-note{font-size:var(--type-small);color:var(--ink-500);margin:6px 0 0;line-height:1.55}.insight-card-note a{color:var(--teal-deep);font-weight:700}.insight-row-note{font-size:var(--type-micro);color:var(--ink-500);font-weight:500;display:block}.mix-bar{background:var(--surface-sunk);border-radius:999px;width:100%;min-width:120px;height:10px;display:flex;overflow:hidden}.mix-bar>span{height:100%;display:block}.landing-table th[scope=row]{color:var(--ink-800);font-weight:600}.landing-table th[scope=row] a:hover{text-decoration:underline}.landing-table th[scope=row] small{font-size:var(--type-micro);color:var(--ink-500);font-weight:500;display:block}.funnel{gap:12px;margin:18px 0 0;padding:0;list-style:none;display:grid}.funnel-bar{background:var(--surface-sunk);border-radius:999px;height:12px;display:block;overflow:hidden}.funnel-bar>span{background:var(--teal);border-radius:999px;height:100%;display:block}.funnel-text{font-size:var(--type-ui);color:var(--ink-700);margin-top:5px;display:block}.funnel-text b{font-size:var(--type-body);color:var(--ink-900);font-variant-numeric:tabular-nums}.funnel-text small{font-size:var(--type-caption);color:var(--ink-500)}.funnel-text .funnel-note{display:block}.visit-hours{gap:3px;display:grid;overflow-x:auto}.visit-hours-line{grid-template-columns:38px repeat(24,minmax(12px,1fr));gap:3px;min-width:420px;display:grid}.visit-hours-hour{font-size:var(--type-micro);color:var(--ink-500);font-variant-numeric:tabular-nums}.visit-hours-day{font-size:var(--type-caption);color:var(--ink-500);font-weight:700;line-height:20px}.visit-hours-cell{border-radius:var(--corner-mark);background:var(--surface-sunk);height:20px}.insight-columns.is-pairs{grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr))}.insight-details>summary{cursor:pointer;font-size:var(--type-small);color:var(--teal-deep);align-items:center;gap:6px;font-weight:700;list-style:none;display:inline-flex}.insight-details>summary::-webkit-details-marker{display:none}.insight-details>summary:before{content:"▸";font-size:.8em;transition:transform .15s}.insight-details[open]>summary:before{transform:rotate(90deg)}.visitor-upsell{border:1px solid var(--warning-border);border-radius:var(--corner-surface);background:var(--gold-wash);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;padding:14px 18px;display:flex}.visitor-upsell-copy .visitor-upsell-phone{font-size:var(--type-ui);color:var(--ink-600);margin:6px 0 0;font-weight:600}.visitor-upsell-copy .visitor-upsell-phone a{color:var(--teal-deep);text-underline-offset:3px;font-weight:700;text-decoration:underline}.visitor-upsell-phone a[href^=tel\:],.access-contact-phone a[href^=tel\:]{white-space:nowrap}.visitor-upsell-mark{border-radius:var(--corner-control);background:var(--surface);width:38px;height:38px;color:var(--gold-deep);flex:none;justify-content:center;align-items:center;display:inline-flex}.visitor-upsell-mark svg{width:21px;height:21px}.visitor-upsell-copy{flex:260px;min-width:0}.visitor-upsell-copy p{font-size:var(--type-body-sm);color:var(--ink-700);line-height:1.6}.visitor-upsell-cta{border:1px solid var(--border);border-radius:var(--corner-control);min-height:40px;font-size:var(--type-ui);color:var(--ink-800);background:var(--surface);align-items:center;gap:8px;padding:0 16px;font-weight:600;transition:border-color .15s,color .15s;display:inline-flex}.visitor-upsell-cta:hover{border-color:var(--teal-light);color:var(--teal-deep)}.visitor-upsell-cta svg{width:17px;height:17px}@media (max-width:620px){.visitor-upsell-cta{justify-content:center;width:100%}}.quick-course{gap:8px;display:grid}.quick-course-fields{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.quick-course-note{font-size:var(--type-small);color:var(--ink-500)}.quick-course-note code{border-radius:var(--corner-mark);background:var(--surface-sunk);padding:1px 6px;font-size:.95em}.quick-course-note.is-done{color:var(--success);font-weight:600}.quick-course-note.is-bad{color:var(--danger);font-weight:600}@media (max-width:760px){.quick-course-fields{grid-template-columns:1fr}}.usage-warn{color:var(--danger);font-variant-numeric:tabular-nums}.learner-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.learner-controls .form-input{flex:240px}.usage-bar{cursor:pointer;outline:none}.usage-bar rect{transition:opacity .12s}.usage-chart svg:hover .usage-bar:not(.is-active) rect:not([fill=transparent]){opacity:.55}.usage-bar:focus-visible rect[fill=transparent]{stroke:var(--teal);stroke-width:2px}.usage-hidden{border:1px dashed var(--border);border-radius:var(--corner-surface);background:var(--surface);flex-wrap:wrap;align-items:center;gap:6px 8px;padding:10px 14px;display:flex}.usage-hidden-title{font-size:var(--type-small);color:var(--ink-500);font-weight:700}.usage-chip{border:1px solid var(--border);font-size:var(--type-small);color:var(--ink-700);background:var(--surface-sunk);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-weight:700;display:inline-flex}.usage-chip span{color:var(--ink-500)}.usage-chip:hover{border-color:var(--teal-light)}.usage-chip.is-day{color:var(--ink-600)}.usage-reset{font-size:var(--type-small);color:var(--teal-deep);margin-left:auto;font-weight:700}.usage-reset:hover{text-decoration:underline}.sort-button{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap}.sort-button:hover{color:var(--ink-800)}.usage-table th,.usage-table td{padding:10px}.usage-table thead th{font-size:var(--type-caption);color:var(--ink-500);white-space:nowrap;font-weight:600}.usage-table tbody th{font-size:var(--type-ui);text-transform:none;letter-spacing:0;color:var(--ink-800);font-weight:600}.usage-table th small,.usage-table td small{font-size:var(--type-micro);text-transform:none;letter-spacing:0;color:var(--ink-500);font-weight:500;display:block}.usage-table .is-number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.usage-table tr.is-open th,.usage-table tr.is-open td{background:var(--ground);border-bottom-color:#0000}.usage-person{font:inherit;color:var(--teal-deep);text-align:left;font-weight:700}.usage-person:hover{text-decoration:underline}.usage-hide{border:1px solid var(--border);font-size:var(--type-caption);color:var(--ink-500);background:var(--surface);white-space:nowrap;border-radius:999px;padding:2px 10px;font-weight:700}.usage-hide:hover{border-color:var(--teal-light);color:var(--teal-deep)}.usage-detail-row td{background:var(--ground);padding-top:0}.usage-detail{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 22px;padding:4px 4px 10px;display:grid}.usage-detail h4{font-size:var(--type-caption);color:var(--ink-500);margin:0 0 6px;font-weight:600}.usage-detail ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.usage-detail li span{font-size:var(--type-small);color:var(--ink-800);display:block}.usage-detail li small{font-size:var(--type-micro);color:var(--ink-500);display:block}.usage-detail-empty{color:var(--ink-500);margin:0}.usage-hidden-list{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.usage-hidden-list li{font-size:var(--type-small);color:var(--ink-600);justify-content:space-between;align-items:center;gap:12px;display:flex}.usage-quiet{gap:2px;margin:0;padding:0;list-style:none;display:grid}.usage-quiet li{border-bottom:1px solid var(--border-soft);font-size:var(--type-ui);color:var(--ink-800);justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;display:flex}.usage-quiet small{font-size:var(--type-caption);color:var(--ink-500);display:block}.usage-quiet-when{font-size:var(--type-small);color:var(--ink-500);white-space:nowrap;flex:none;font-weight:700}.insight-more{font-size:var(--type-small);color:var(--teal-deep);margin-top:10px;font-weight:700}.insight-more:hover{text-decoration:underline}.thank-you .access-tick{margin:0 auto 14px}.thank-you-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;display:flex}.visitor-next{text-align:left}.visitor-next-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.course-module-state.is-hidden{background:var(--gold-wash);color:var(--gold-deep);border:1px dashed var(--gold)}.announcements-button{border:1px solid var(--border);background:var(--surface);color:var(--ink-800);font-size:var(--type-small);white-space:nowrap;border-radius:999px;align-items:center;gap:9px;padding:7px 12px 7px 8px;font-weight:700;transition:border-color .18s,color .18s,transform .18s,box-shadow .18s;display:inline-flex}.announcements-button:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-1px)}.announcements-button-icon{border-radius:var(--corner-control);background:var(--teal-wash);width:28px;height:28px;color:var(--teal);justify-content:center;align-items:center;display:inline-flex;position:relative}.announcements-button-icon svg{width:16px;height:16px}.announcements-button-count{background:var(--ink-900);color:#fff;min-width:22px;height:22px;font-size:var(--type-micro);font-variant-numeric:tabular-nums;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;display:inline-flex}.announcements-button.is-fresh .announcements-button-count{background:var(--gold-deep)}.announcements-button.is-fresh .announcements-button-icon:after{content:"";background:var(--gold);width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;animation:2.2s ease-out infinite announcementsPulse;position:absolute;top:-3px;right:-3px}@media (prefers-reduced-motion:reduce){.announcements-button.is-fresh .announcements-button-icon:after{animation:none}}.course-hero-note{border:1px solid var(--border);background:var(--surface);color:var(--teal-deep);font-size:var(--type-small);border-radius:999px;align-items:center;gap:8px;margin-top:12px;padding:7px 14px;font-weight:700;transition:border-color .18s,color .18s,transform .18s;display:inline-flex}.course-hero-note:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-1px)}.course-hero-note span{color:var(--gold-deep)}.form-hint{font-size:var(--type-caption);color:var(--ink-500);margin:6px 0 0;line-height:1.5}.progress-figures{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--border-soft);grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:1px;display:grid;overflow:hidden}.progress-figure{background:var(--surface);align-content:start;gap:4px;padding:16px 18px;display:grid}.progress-figure>span{font-size:var(--type-small);color:var(--ink-500);font-weight:600}.progress-figure>strong{color:var(--ink-900);font-variant-numeric:tabular-nums;font-size:clamp(1.45rem,5vw,1.9rem);font-weight:700;line-height:1.15}.progress-figure>small{font-size:var(--type-caption);color:var(--ink-500);line-height:1.5}.progress-figure b{color:var(--ink-700);font-weight:800}.progress-figure b.is-up{color:var(--success);font-weight:800}.progress-today{border:1px solid var(--teal-light);border-radius:var(--corner-surface);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:16px 18px;display:flex}.progress-today p{max-width:60ch;font-size:var(--type-body-sm);color:var(--ink-800);margin:0;font-weight:700;line-height:1.55}.progress-today.is-done{border-color:var(--border-soft);background:var(--surface)}.progress-today.is-done p{color:var(--ink-600);font-weight:600}.progress-today-actions{flex-wrap:wrap;gap:8px;display:flex}.progress-days-body{gap:24px;display:grid}@media (min-width:900px){.progress-days-body{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:40px}}.activity-calendar{--cell:17px;max-width:100%;position:relative}.activity-calendar-scroll{max-width:100%;padding:6px 4px 2px;overflow-x:auto}@media (min-width:640px){.activity-calendar{--cell:22px}}.activity-calendar-grid{grid-template-columns:32px repeat(12, var(--cell));grid-auto-rows:var(--cell);gap:4px;width:max-content;display:grid}.activity-calendar-month,.activity-calendar-weekday{font-size:var(--type-micro);font-weight:700;line-height:var(--cell);color:var(--ink-500);white-space:nowrap}.activity-cell{width:var(--cell);height:var(--cell);border-radius:var(--corner-mark);background:var(--surface-sunk)}.activity-cell.is-1{background:#94b9be}.activity-cell.is-2{background:#66979e}.activity-cell.is-3{background:#407279}.activity-cell.is-4{background:#264a50}.activity-cell.is-future{background:0 0}.activity-cell.is-today{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink-700)}span.activity-cell:not(.is-future):hover{box-shadow:0 0 0 2px var(--surface), 0 0 0 3px var(--ink-400)}span.activity-cell.is-today:hover{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink-700)}.activity-calendar-tip{z-index:5;border:1px solid var(--border);border-radius:var(--corner-control);background:var(--surface);box-shadow:var(--shadow-float);pointer-events:none;white-space:nowrap;gap:2px;padding:7px 10px;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.activity-calendar-tip strong{font-size:var(--type-small);color:var(--ink-900);font-weight:800}.activity-calendar-tip span{font-size:var(--type-micro);color:var(--ink-500)}.activity-calendar-legend{font-size:var(--type-micro);color:var(--ink-500);align-items:center;gap:4px;margin-top:10px;display:flex}.activity-calendar-legend span:first-child{margin-right:4px}.activity-calendar-legend span:last-child{margin-left:4px}.activity-calendar-legend .activity-cell{border-radius:3px;width:12px;height:12px;display:inline-block}.progress-mix-title{font-size:var(--type-ui);color:var(--ink-600);margin:0 0 8px}.progress-mix-title b{color:var(--ink-900)}.progress-mix-bar{background:var(--surface-sunk);border-radius:999px;gap:2px;height:12px;display:flex;overflow:hidden}.progress-mix-bar span{flex-basis:0;min-width:4px}.progress-mix-legend{font-size:var(--type-small);color:var(--ink-600);flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;padding:0;list-style:none;display:flex}.progress-mix-legend li{align-items:center;gap:6px;display:inline-flex}.progress-mix-legend i{border-radius:3px;width:10px;height:10px}.progress-mix-legend b{color:var(--ink-900)}.progress-list summary{cursor:pointer;font-size:var(--type-small);color:var(--teal-deep);font-weight:700}.progress-list ul{gap:4px;max-height:280px;margin:10px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.progress-list li{border-bottom:1px solid var(--border-soft);font-size:var(--type-small);color:var(--ink-600);grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:12px;padding:5px 0;display:grid}.progress-list li span:first-child{color:var(--ink-800);font-weight:700}@media (max-width:560px){.progress-list li{grid-template-columns:minmax(0,1fr);gap:2px}}.progress-peer-track{background:#e7eeef;border-radius:999px;height:12px;position:relative}.progress-peer-fill{background:#407279;border-radius:999px;position:absolute;inset:0 auto 0 0}.progress-peer-tick{background:var(--ink-800);border-radius:2px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.progress-peer-labels{font-size:var(--type-small);color:var(--ink-600);flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-top:8px;display:flex}.progress-peer-labels b{color:var(--ink-900)}.progress-peer-labels i{vertical-align:-1px;background:var(--ink-800);width:2px;height:12px;margin-right:4px;display:inline-block}.progress-courses{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;display:grid}.progress-course{align-content:start;gap:14px;padding:20px;display:grid}.progress-course-head{align-items:center;gap:12px;display:flex}.progress-course-head h3{font-size:var(--type-lead);color:var(--ink-900);margin:0;font-weight:800}.progress-course-head p{font-size:var(--type-small);color:var(--ink-500);margin:2px 0 0}.progress-mastery p,.progress-quizzes{font-size:var(--type-small);color:var(--ink-600);margin:0;line-height:1.5}.progress-mastery p span,.progress-quizzes span{min-width:116px;font-size:var(--type-caption);color:var(--ink-500);font-weight:600;display:inline-block}.progress-mastery b{color:var(--ink-900)}.progress-meter{background:#e7eeef;border-radius:999px;gap:2px;height:10px;margin-top:6px;display:flex;overflow:hidden}.progress-meter span{flex:none}.progress-meter .is-known{background:#407279}.progress-meter .is-learning{background:#94b9be}.progress-course-actions{flex-wrap:wrap;gap:8px;display:flex}.progress-visitor{border-color:var(--blue-wash)}.schools-picker{border:0;min-width:0;margin:0;padding:0}.schools-picker-chips{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.schools-picker-note{font-size:var(--type-small);color:var(--ink-500);margin:8px 0 0;line-height:1.5}.schools-picker:disabled .school-chip{cursor:default;opacity:.7}.library-banner{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--teal-wash);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;padding:18px 22px;display:flex}.library-banner h2{color:var(--ink-900);margin:2px 0 4px;font-size:1.2rem;font-weight:800}.library-banner p:not(.eyebrow){max-width:62ch;font-size:var(--type-ui);color:var(--ink-600);margin:0;line-height:1.55}.library-picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.library-pick{border:1px solid var(--border);border-radius:var(--corner-surface);font-size:var(--type-ui);color:var(--ink-700);background:var(--surface);padding:9px 14px;font-weight:800}.library-pick:hover{border-color:var(--teal-light)}.library-pick.is-active{border-color:var(--teal);background:var(--teal);color:#fff}.library-pick-more{position:relative}.library-pick-more summary{cursor:pointer;font-size:var(--type-ui);color:var(--ink-500);padding:9px 12px;font-weight:700;list-style:none}.library-pick-more summary::-webkit-details-marker{display:none}.library-pick-more>div{z-index:20;border:1px solid var(--border);border-radius:var(--corner-surface);background:var(--surface);min-width:220px;box-shadow:var(--shadow-float);margin-top:4px;padding:6px;display:grid;position:absolute}.library-pick-more>div a{border-radius:var(--corner-control);font-size:var(--type-ui);color:var(--ink-700);padding:8px 10px}.library-pick-more>div a:hover{background:var(--surface-sunk)}.library-matrix-wrap{gap:10px;display:grid}.library-matrix-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.library-matrix-search{flex:260px}.library-matrix-filter{border:1px solid var(--border);font-size:var(--type-small);color:var(--ink-600);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-weight:700;display:inline-flex}.library-matrix-filter input{accent-color:var(--warning)}.library-matrix-filter strong{color:var(--warning)}.library-matrix-filter.is-on{border-color:var(--warning-border);background:var(--warning-wash)}.library-matrix-openers{gap:6px;display:inline-flex}.library-matrix-status{border-radius:var(--corner-control);min-height:36px;font-size:var(--type-small);color:var(--ink-500);background:var(--surface-sunk);flex-wrap:wrap;align-items:center;gap:10px;padding:7px 12px;display:flex}.library-matrix-status.is-ok{color:var(--success);background:var(--success-wash)}.library-matrix-status.is-error{color:var(--danger);background:var(--danger-wash)}.library-matrix-undo{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.library-matrix-scroll{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);max-height:min(78vh,900px);overflow:auto}.library-matrix{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--type-ui)}.library-matrix th,.library-matrix td{text-transform:none;letter-spacing:normal;font-size:inherit;color:inherit;vertical-align:middle}.library-matrix thead th{z-index:3;border-bottom:1px solid var(--border);background:var(--surface);vertical-align:bottom;padding:0;position:sticky;top:0}.library-matrix thead th>button{width:100%;min-width:84px;font:inherit;color:var(--ink-700);cursor:pointer;background:0 0;border:0;justify-items:center;gap:1px;padding:10px 6px 8px;display:grid}.library-matrix thead th>button:hover{background:var(--teal-wash)}.library-matrix thead small{font-size:var(--type-caption);color:var(--ink-500);font-weight:600}.library-matrix thead span{font-size:var(--type-small);font-weight:800}.library-matrix thead em{font-style:normal;font-size:var(--type-micro);color:var(--teal);font-weight:700}.library-matrix thead th.is-visitors em{color:var(--blue)}.library-matrix thead th.library-matrix-name{z-index:4;text-align:left;font-size:var(--type-caption);color:var(--ink-500);padding:10px 14px;font-weight:600;left:0}.library-matrix tbody th,.library-matrix tbody td{border-bottom:1px solid var(--border-soft)}.library-matrix tbody td{text-align:center;padding:0}.library-matrix td.is-visitors,.library-matrix thead th.is-visitors{background:#f6f8fc}.library-matrix .library-matrix-name{z-index:2;text-align:left;background:var(--surface);min-width:min(52vw,340px);max-width:460px;box-shadow:1px 0 0 var(--border-soft);padding:0;font-weight:400;position:sticky;left:0}.library-matrix tr.is-folder .library-matrix-name,.library-matrix tr.is-folder td{background:var(--ground)}.library-matrix tr.is-folder td.is-visitors{background:#eef2f9}.library-matrix-folder{width:100%;font:inherit;color:var(--ink-800);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:9px 12px 9px .5rem;font-weight:800;display:flex}.library-matrix-folder small{font-size:var(--type-micro);color:var(--ink-500);margin-left:auto;font-weight:700}.library-matrix-caret{width:12px;color:var(--ink-400);flex:none}.library-matrix-title{overflow-wrap:anywhere;min-width:0}.library-matrix-itemname{color:var(--ink-700);gap:2px;padding:8px 12px;display:grid}.library-matrix-itemname small{font-size:var(--type-micro);color:var(--ink-500)}.library-matrix tr.is-unassigned .library-matrix-itemname small{color:var(--warning)}.library-matrix-empty{color:var(--ink-500);padding:24px}.matrix-tick{border:2px solid var(--border);border-radius:var(--corner-mark);background:var(--surface);cursor:pointer;place-items:center;width:26px;height:26px;margin:6px;padding:0;transition:background .12s,border-color .12s,opacity .12s;display:inline-grid}.matrix-tick:hover{border-color:var(--teal-light)}.matrix-tick:focus-visible{outline:2px solid var(--teal-light);outline-offset:2px}.matrix-tick.is-all{border-color:var(--teal);background:var(--teal)}.matrix-tick.is-all:after{content:"";border-bottom:2.5px solid #fff;border-left:2.5px solid #fff;width:9px;height:5px;margin-top:-2px;transform:rotate(-45deg)}.matrix-tick.is-some{border-color:var(--teal-light);background:var(--teal-wash)}.matrix-tick.is-some:after{content:"";background:var(--teal);border-radius:2px;width:10px;height:2.5px}td.is-visitors .matrix-tick.is-all{border-color:var(--blue);background:var(--blue)}td.is-visitors .matrix-tick.is-some{border-color:var(--blue);background:var(--blue-wash)}td.is-visitors .matrix-tick.is-some:after{background:var(--blue)}.matrix-tick.is-busy{opacity:.55}.matrix-tick:disabled{cursor:default;opacity:.35}.library-groups{gap:10px;margin:0;padding:0;list-style:none;display:grid}.library-groups li{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.library-groups small{font-size:var(--type-small);color:var(--ink-500);flex-basis:100%}@media (max-width:640px){.library-matrix .library-matrix-name{min-width:58vw}.library-matrix thead th>button{min-width:64px}.matrix-tick{width:24px;height:24px;margin:5px}}.admin-nav-shell{padding-top:22px}.admin-nav-shell+.container-shell{padding-top:28px}.admin-nav{gap:8px;display:grid}.admin-nav-sections,.admin-nav-pages{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;display:flex;overflow-x:auto}.admin-nav-sections::-webkit-scrollbar{display:none}.admin-nav-pages::-webkit-scrollbar{display:none}.admin-nav-sections{border-bottom:1px solid var(--border);gap:2px}.admin-nav-section{min-height:44px;font-size:var(--type-ui);color:var(--ink-600);white-space:nowrap;flex:none;align-items:center;gap:7px;padding:0 12px;font-weight:600;transition:color .15s,box-shadow .15s;display:inline-flex;box-shadow:inset 0 -2px #0000}.admin-nav-section:hover{color:var(--ink-900);box-shadow:inset 0 -2px 0 var(--border)}.admin-nav-section.is-active{color:var(--ink-900);box-shadow:inset 0 -2px 0 var(--teal)}.admin-nav-pages{border-radius:var(--corner-surface);background:var(--surface-sunk);padding:4px}.admin-nav-page{border-radius:var(--corner-control);font-size:var(--type-small);color:var(--ink-600);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:7px 12px;font-weight:700;display:inline-flex}.admin-nav-page:hover{background:var(--surface);color:var(--ink-900)}.admin-nav-page.is-active{background:var(--surface);color:var(--teal-deep);box-shadow:0 1px 3px #1424431f}.admin-nav-count{min-width:20px;height:20px;font-size:var(--type-micro);color:#fff;background:var(--danger);border-radius:999px;place-items:center;margin-left:6px;padding:0 6px;font-weight:800;line-height:1;display:inline-grid}.admin-nav-section .admin-nav-count,.admin-nav-page .admin-nav-count{margin-left:0}.admin-waiting{gap:10px;display:grid}.admin-waiting-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;display:grid}.admin-waiting-card{border:1px solid var(--warning-border);border-radius:var(--corner-surface);background:var(--warning-wash);grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;padding:16px 18px;transition:transform .15s,box-shadow .15s;display:grid}.admin-waiting-card:hover{transform:translateY(-1px)}.admin-waiting-count{color:var(--warning);grid-row:span 2;font-size:2rem;font-weight:900;line-height:1}.admin-waiting-text{gap:2px;min-width:0;display:grid}.admin-waiting-text strong{font-size:var(--type-body);color:var(--ink-900)}.admin-waiting-text small{font-size:var(--type-small);color:var(--ink-600);line-height:1.4}.admin-waiting-go{font-size:var(--type-small);color:var(--teal-deep);grid-column:2;font-weight:800}.admin-waiting-none{border-radius:var(--corner-surface);color:var(--success);background:var(--success-wash);margin:0;padding:14px 16px;font-weight:700}.admin-waiting-calm{font-size:var(--type-small);color:var(--ink-500);margin:0}.admin-glance{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px;display:grid}.admin-glance a{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);gap:2px;padding:14px 16px;display:grid}.admin-glance a:hover{border-color:var(--teal-light)}.admin-glance strong{color:var(--ink-900);font-size:1.5rem;font-weight:900}.admin-glance span{font-size:var(--type-caption);color:var(--ink-500);font-weight:700}.admin-directory{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px;display:grid}.admin-directory-section{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);padding:16px}.admin-directory-section h3{font-size:var(--type-caption);color:var(--ink-500);margin:0 0 8px;font-weight:600}.admin-directory-section ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.admin-directory-section a{border-radius:var(--corner-surface);gap:2px;padding:9px 10px;display:grid}.admin-directory-section a:hover{background:var(--teal-wash)}.admin-directory-section strong{font-size:var(--type-body-sm);color:var(--ink-900);align-items:center;gap:6px;display:inline-flex}.admin-directory-section small{font-size:var(--type-caption);color:var(--ink-500);line-height:1.45}.admin-account-line{font-size:var(--type-small);color:var(--ink-500);margin:0;line-height:1.6}.admin-account-line a{color:var(--teal-deep);font-weight:700}.library-upload{border:1px dashed var(--teal-light);border-radius:var(--corner-surface);background:var(--teal-wash);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-top:16px;padding:14px 18px;display:flex}.library-upload p{max-width:70ch;font-size:var(--type-ui);color:var(--ink-600);margin:0;line-height:1.55}.library-upload strong{color:var(--ink-900)}.access-ending-when{font-size:var(--type-body-sm);color:var(--ink-800);margin:8px 0 0;font-weight:800}.access-ending-side{min-width:220px}.access-ending-side form{width:100%}@media (max-width:640px){.access-ending-side{width:100%;min-width:0}}.access-ending-side .access-email-offer{margin-top:0}.access-ending-other{width:100%;font-size:var(--type-small)}.access-ending-undo{font:inherit;font-size:var(--type-caption);color:var(--ink-500);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}@keyframes p2a-rise{0%{opacity:0;transform:translateY(14px)}}@keyframes p2a-fill{0%{transform:scaleX(0)}}@keyframes p2a-grow{0%{transform:scaleY(0)}}@keyframes p2a-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.rise{animation:.6s cubic-bezier(.2,.7,.2,1) both p2a-rise;animation-delay:calc(var(--i,0) * 70ms + 80ms)}.today-panel{border-radius:var(--corner-surface);background:var(--navy);color:var(--surface);gap:28px;padding:clamp(24px,4vw,40px);animation:.6s cubic-bezier(.2,.7,.2,1) both p2a-rise;display:grid;overflow:hidden}@media (min-width:900px){.today-panel{grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);gap:44px}}.today-main{min-width:0}.today-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.today-date{font-size:var(--type-small);color:var(--gold);margin:0;font-weight:600}.today-badge{flex:none}.today-title{letter-spacing:-.026em;color:var(--surface);text-wrap:balance;margin:12px 0 0;font-size:clamp(1.9rem,3.6vw,2.75rem);font-weight:700;line-height:1.08}.today-line{max-width:54ch;font-size:var(--type-lead);color:color-mix(in srgb, var(--surface) 78%, var(--navy));text-wrap:pretty;margin:14px 0 0;line-height:1.6}.today-line b{color:var(--surface);font-weight:700}.today-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:26px;display:flex}.today-cta{border-radius:var(--corner-control);background:var(--surface);min-height:48px;color:var(--navy);align-items:center;gap:10px;padding:0 22px;font-weight:700;transition:background .15s,transform .15s;display:inline-flex}.today-cta:hover{background:var(--teal-wash)}.today-cta:active{transform:translateY(1px)}.today-cta .icon-arrow{transition:transform .2s}.today-cta:hover .icon-arrow{transform:translate(3px)}.today-panel :focus-visible{outline-color:var(--gold)}.today-courses{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.today-courses a{border:1px solid color-mix(in srgb, var(--surface) 22%, transparent);border-radius:var(--corner-control);min-height:40px;color:color-mix(in srgb, var(--surface) 88%, var(--navy));font-size:var(--type-small);align-items:center;gap:10px;padding:0 8px 0 12px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.today-courses a:hover{border-color:var(--gold);background:color-mix(in srgb, var(--surface) 7%, transparent)}.today-courses b{border-radius:var(--corner-mark);background:var(--gold);min-width:24px;height:24px;color:var(--navy);font-size:var(--type-caption);font-variant-numeric:tabular-nums;place-items:center;padding:0 6px;font-weight:700;display:inline-grid}.today-week{align-content:start;gap:14px;display:grid}@media (min-width:900px){.today-week{border-left:1px solid color-mix(in srgb, var(--surface) 14%, transparent);padding-left:44px}}.today-streak{align-items:baseline;gap:10px;display:flex}.today-streak strong{letter-spacing:-.03em;color:var(--gold);font-variant-numeric:tabular-nums;font-size:2.75rem;font-weight:700;line-height:1}.today-streak span{font-size:var(--type-ui);color:color-mix(in srgb, var(--surface) 80%, var(--navy));line-height:1.4}.today-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.today-days li{justify-items:center;gap:7px;display:grid}.today-bar{border-radius:var(--corner-mark);background:color-mix(in srgb, var(--surface) 9%, transparent);width:100%;max-width:30px;height:64px;display:block;position:relative;overflow:hidden}.today-bar i{border-radius:var(--corner-mark);background:color-mix(in srgb, var(--teal) 42%, var(--surface));transform-origin:bottom;animation:.7s cubic-bezier(.2,.7,.2,1) both p2a-grow;animation-delay:calc(.25s + var(--i,0) * 60ms);position:absolute;inset:auto 0 0}.today-days li.is-today .today-bar{box-shadow:inset 0 0 0 1.5px var(--gold)}.today-days li.is-today .today-bar i{background:var(--gold)}.today-days li.is-future .today-bar{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--surface) 16%, transparent);background:0 0}.today-day{font-size:var(--type-caption);color:color-mix(in srgb, var(--surface) 64%, var(--navy));font-weight:600}.today-days li.is-today .today-day{color:var(--gold)}.today-week-line{font-size:var(--type-small);color:color-mix(in srgb, var(--surface) 74%, var(--navy));margin:0;line-height:1.55}.today-week-line b{color:var(--surface)}.today-week-line .is-up{color:color-mix(in srgb, var(--success) 35%, var(--surface))}.today-more{font-size:var(--type-ui);color:var(--surface);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--surface) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--surface) 35%, transparent);text-underline-offset:.25em;justify-self:start;font-weight:600;transition:text-decoration-color .15s}.today-more:hover{-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold)}.course-shelf,.course-modules{gap:14px;display:grid}.course-modules{margin-top:30px}.shelf-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 14px;display:flex}.shelf-head h2{letter-spacing:-.02em;color:var(--ink-900);margin:0;font-size:clamp(1.3rem,2.2vw,1.55rem);font-weight:700}.shelf-head>span:not(.course-preview-badge){font-size:var(--type-small);color:var(--ink-500);font-weight:600}.shelf-note{max-width:72ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:-4px 0 4px;line-height:1.6}.shelf-note a{color:var(--teal-deep);text-underline-offset:.2em;font-weight:600;text-decoration:underline}.course-modules .course-module-rail{margin-top:2px}.course-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.course-tiles>li{display:flex}.course-tile,.module-tile{--tile-ink:var(--teal);--tile-wash:var(--teal-wash)}.course-tile.is-biology{--tile-ink:var(--success);--tile-wash:var(--success-wash)}.course-tile.is-chemistry{--tile-ink:var(--gold-deep);--tile-wash:var(--gold-wash)}.course-tile.is-general{--tile-ink:var(--ink-500);--tile-wash:var(--surface-sunk)}.course-tile{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);width:100%;box-shadow:var(--shadow-rest);flex-direction:column;gap:18px;padding:22px 22px 18px;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.course-tile:before{content:"";background:var(--tile-ink);transform-origin:0;height:3px;transition:transform .45s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0 0 auto;transform:scaleX(.14)}a.course-tile:hover{border-color:color-mix(in srgb, var(--tile-ink) 32%, var(--border-soft));box-shadow:var(--shadow-lift);transform:translateY(-3px)}a.course-tile:hover:before{transform:scaleX(1)}a.course-tile:active{transform:translateY(-1px)}.course-tile.is-closed{opacity:.7}.course-tile-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.course-tile-name h3{letter-spacing:-.015em;color:var(--ink-900);margin:0;font-size:1.15rem;font-weight:700}.course-tile-name p{font-size:var(--type-small);color:var(--ink-500);margin:3px 0 0}.course-tile-due{background:var(--tile-wash);color:var(--ink-800);font-size:var(--type-caption);white-space:nowrap;border-radius:999px;align-self:start;padding:4px 10px;font-weight:700}.course-tile-meters{gap:12px;display:grid}.course-tile-week{font-size:var(--type-small);color:var(--ink-500);flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0;display:flex}.today-wait{gap:12px;margin-top:16px;display:grid}.today-wait span,.today-wait.is-week{border-radius:var(--corner-control);background:linear-gradient(90deg, color-mix(in srgb, var(--surface) 7%, transparent) 25%, color-mix(in srgb, var(--surface) 14%, transparent) 50%, color-mix(in srgb, var(--surface) 7%, transparent) 75%);background-size:200% 100%;animation:1.3s linear infinite p2a-shimmer}.today-wait span{max-width:54ch;height:22px}.today-wait span+span{max-width:240px;height:48px;margin-top:10px}.today-wait.is-week{min-height:170px;margin-top:0}@media (prefers-reduced-motion:reduce){.today-wait span,.today-wait.is-week{animation:none}}.course-tile-go{border-top:1px solid var(--border-soft);font-size:var(--type-ui);color:var(--teal-deep);align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-weight:600;display:inline-flex}.course-tile-go .icon-arrow,.module-tile-go .icon-arrow{transition:transform .2s}a.course-tile:hover .course-tile-go .icon-arrow,.module-tile.is-enabled:hover .module-tile-go .icon-arrow{transform:translate(4px)}.course-tile.is-closed .course-tile-go{display:none}.tile-meter-head{font-size:var(--type-small);color:var(--ink-600);justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tile-meter-head b{font-size:var(--type-ui);color:var(--ink-900);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.tile-meter-head small{color:var(--ink-500);font-weight:500}.tile-meter-track{background:var(--surface-sunk);border-radius:999px;height:6px;margin-top:7px;display:block;position:relative;overflow:hidden}.tile-meter-track i{border-radius:inherit;transform-origin:0;animation:1s cubic-bezier(.2,.7,.2,1) .3s both p2a-fill;position:absolute;inset:0 auto 0 0}.tile-meter-track .is-met{background:color-mix(in srgb, var(--tile-ink) 28%, transparent)}.tile-meter-track .is-known{background:var(--tile-ink)}.module-bento{gap:16px;display:grid}@media (min-width:860px){.module-bento{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.module-bento>.module-tile:first-child{grid-row:span 2}.module-bento>.module-tile:not(:first-child){flex-direction:row}.module-bento>.module-tile:not(:first-child) .module-tile-art{aspect-ratio:auto;flex:0 0 40%}}.module-tile{border:1px solid var(--border-soft);border-radius:var(--corner-surface);background:var(--surface);box-shadow:var(--shadow-rest);flex-direction:column;transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.module-tile.is-enabled:hover{border-color:color-mix(in srgb, var(--teal) 30%, var(--border-soft));box-shadow:var(--shadow-lift);transform:translateY(-3px)}.module-tile.is-disabled{opacity:.72}.module-tile-art{aspect-ratio:16/9;background:var(--gold-wash);display:block;position:relative;overflow:hidden}.module-tile:first-child .module-tile-art{aspect-ratio:3/2}.module-tile-art img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0}.module-tile.is-enabled:hover .module-tile-art img{transform:scale(1.045)}.module-tile-body{flex-direction:column;flex:1;align-items:flex-start;gap:10px;min-width:0;padding:20px 22px 18px;display:flex}.module-tile-body h3{letter-spacing:-.018em;color:var(--ink-900);margin:0;font-size:1.25rem;font-weight:700}.module-tile:first-child .module-tile-body h3{font-size:1.5rem}.module-tile-body>p{max-width:52ch;font-size:var(--type-body-sm);color:var(--ink-600);margin:0;line-height:1.6}.module-tile-link:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.module-tile-link:focus-visible{outline:none}.module-tile-link:focus-visible:after{outline:2px solid var(--teal-deep);outline-offset:-3px;border-radius:var(--corner-surface)}.module-tile-go{font-size:var(--type-ui);color:var(--teal-deep);align-items:center;gap:8px;margin-top:auto;padding-top:6px;font-weight:600;display:inline-flex}.module-stat{align-self:stretch;gap:10px;display:grid}.module-stat-line{font-size:var(--type-small);color:var(--ink-500);margin:0;line-height:1.5}.module-stat-action{z-index:2;border-radius:var(--corner-control);background:var(--teal);min-height:38px;color:var(--surface);font-size:var(--type-ui);justify-self:start;align-items:center;padding:0 14px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex;position:relative}.module-stat-action:hover{background:var(--teal-deep)}.module-stat-action:active{transform:translateY(1px)}.review-entry-skeleton{border-radius:var(--corner-surface);background:linear-gradient(90deg, var(--surface-sunk) 25%, var(--ground) 50%, var(--surface-sunk) 75%);background-size:200% 100%;height:76px;animation:1.3s linear infinite p2a-shimmer}@media (prefers-reduced-motion:reduce){.review-entry-skeleton{animation:none}}.progress-wait{gap:16px;display:grid}.progress-wait span{border-radius:var(--corner-surface);background:linear-gradient(90deg, var(--surface-sunk) 25%, var(--ground) 50%, var(--surface-sunk) 75%);background-size:200% 100%;height:120px;animation:1.3s linear infinite p2a-shimmer;display:block}.progress-wait span:first-child{height:180px}@media (prefers-reduced-motion:reduce){.progress-wait span{animation:none}}.module-stat.is-loading{border-radius:var(--corner-control);background:linear-gradient(90deg, var(--surface-sunk) 25%, var(--ground) 50%, var(--surface-sunk) 75%);background-size:200% 100%;height:30px;animation:1.3s linear infinite p2a-shimmer;display:block}@media (prefers-reduced-motion:reduce){.rise,.today-panel,.today-bar i,.tile-meter-track i,.module-stat.is-loading{animation:none}.course-tile,.module-tile,.module-tile-art img,.course-tile:before{transition:none}}
