:root{font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#163124;background:radial-gradient(circle at top right,#d9f6e7 0,transparent 24rem),linear-gradient(180deg,#f6fbf8 0%,#edf5ef 100%);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;--color-primary: #2e9d62;--color-primary-dark: #1e7244;--color-ink: #163124;--color-muted: #5e7469;--color-border: #d7e5db;--color-panel: rgba(255, 255, 255, .82);--color-sidebar: #f4faf6;--shadow-soft: 0 18px 50px rgba(40, 83, 56, .08)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh}body{margin:0;color:var(--color-ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.auth-layout,.full-page-state{min-height:100vh;display:grid;place-items:center;padding:2rem}.auth-layout__panel,.full-page-state__card{width:min(480px,100%);display:grid;gap:1.5rem;grid-template-columns:1fr}.full-page-state__card{grid-template-columns:1fr}.auth-layout__brand,.auth-card,.panel,.stat-card{background:var(--color-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow-soft)}.auth-layout__brand{border-radius:28px;padding:2rem;display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;background:linear-gradient(150deg,rgba(46,157,98,.14),transparent 45%),var(--color-panel)}.auth-layout__eyebrow,.topbar__eyebrow,.page-badge{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-primary-dark)}.auth-layout__brand h1,.full-page-state h1,.page-header h1{margin:.4rem 0 .75rem;font-size:clamp(2rem,4vw,3.2rem);line-height:1;overflow-wrap:anywhere}.auth-layout__brand p,.page-header p,.panel p,.stat-card p,.auth-card__header p,.full-page-state p{margin:0;color:var(--color-muted)}.auth-card{border-radius:28px;padding:2rem}.auth-card__header{display:grid;gap:.5rem;margin-bottom:1.5rem}.auth-card__header h2{margin:0;font-size:1.8rem}.form-grid{display:grid;gap:1rem}.field{display:grid;gap:.45rem}.field span{font-weight:600}.field--checkbox{align-content:end}.field--checkbox input{width:1.1rem;height:1.1rem}.field input,.search-input,.textarea,.select{width:100%;padding:.9rem 1rem;border-radius:16px;border:1px solid var(--color-border);background:rgba(255,255,255,.92)}.textarea{resize:vertical;min-height:7rem}.field small,.form-error{color:#b94141}.button{border:1px solid transparent;border-radius:14px;padding:.8rem 1.05rem;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button:hover{transform:translateY(-1px)}.button--disabled,.button[aria-disabled=true]{opacity:.56;pointer-events:none;cursor:not-allowed;transform:none;box-shadow:none}.button--primary{color:#fff;background:linear-gradient(135deg,var(--color-primary) 0%,#207347 100%);box-shadow:0 14px 28px #2e9d6238}.button--completed{color:#fff;background:linear-gradient(135deg,#31433a 0%,#16241d 100%);box-shadow:0 14px 28px #16241d33}.button--info{color:#fff;background:linear-gradient(135deg,#3d7eea 0%,#2658b8 100%);box-shadow:0 14px 28px #2f6fd633}.button--ghost{background:rgba(255,255,255,.78);border-color:var(--color-border)}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr;transition:grid-template-columns .24s ease}.app-shell--sidebar-collapsed{grid-template-columns:92px 1fr}.sidebar{display:grid;align-content:start;gap:1rem;padding:1.5rem 1rem;background:rgba(244,250,246,.9);border-right:1px solid rgba(177,201,187,.45);transition:padding .24s ease}.sidebar--collapsed{padding-inline:.8rem}.sidebar__header{display:flex;justify-content:flex-end}.sidebar__toggle{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid rgba(177,201,187,.55);border-radius:14px;background:rgba(255,255,255,.8);color:var(--color-primary-dark);cursor:pointer;transition:background .2s ease,transform .2s ease}.sidebar__toggle:hover{background:#fff}.sidebar__brand{display:flex;gap:.9rem;align-items:center;padding:.5rem;min-height:4rem}.sidebar__brand-mark{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:14px;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--color-primary) 0%,#207347 100%)}.sidebar__brand-copy{min-width:0}.sidebar__brand p{margin:.2rem 0 0;color:var(--color-muted);font-size:.88rem}.sidebar__nav{display:grid;gap:.45rem}.sidebar__link{display:flex;align-items:center;gap:.85rem;padding:.9rem 1rem;border-radius:14px;color:var(--color-muted);font-weight:600;transition:background .2s ease,color .2s ease,transform .2s ease}.sidebar__link--active,.sidebar__link:hover{color:var(--color-ink);background:rgba(255,255,255,.88)}.sidebar__link--disabled{opacity:.56;cursor:default;background:transparent}.sidebar__icon{display:inline-grid;place-items:center;width:1.25rem;min-width:1.25rem}.sidebar--collapsed .sidebar__header,.sidebar--collapsed .sidebar__brand,.sidebar--collapsed .sidebar__link{justify-content:center}.sidebar--collapsed .sidebar__brand{padding-inline:0}.sidebar--collapsed .sidebar__brand-copy,.sidebar--collapsed .sidebar__link-label{display:none}.app-shell__body{display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 2rem}.topbar h2{margin:.2rem 0 0;font-size:1.2rem}.topbar__actions{display:flex;align-items:center;gap:1rem}.topbar__spacer{min-height:1px}.topbar__user{display:grid;gap:.15rem;text-align:right}.topbar__user span{color:var(--color-muted);font-size:.9rem}.app-shell__content{padding:0 2rem 2rem}.page-stack{display:grid;gap:1.25rem}.dashboard-header h1{margin:0;font-size:1.7rem;line-height:1.1}.dashboard-header__intro{max-width:980px;margin-top:.85rem;line-height:1.7}.dashboard-header--with-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}.page-header{display:flex;justify-content:space-between;align-items:end;gap:1rem}.page-header__content{flex:1 1 auto;min-width:0}.page-header h1{margin:0;font-size:1.7rem;line-height:1.1}.page-header__actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.panel,.stat-card{border-radius:24px;padding:1.4rem}.panel--compact{padding:1.1rem 1.4rem}.stack-sm{display:grid;gap:.8rem}.panel h2,.stat-card strong{margin:0 0 .8rem}.panel-cta{display:flex;justify-content:space-between;align-items:center;gap:1rem}.panel-cta h2{margin:0 0 .35rem}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-title-row h2{margin:0 0 .25rem}.panel-grid,.stats-grid{display:grid;gap:1rem}.dashboard-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.dashboard-grid--compact .stat-card{padding:1.05rem 1.1rem}.panel-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.panel-grid--lesson-details{grid-template-columns:minmax(0,3fr) minmax(280px,1fr)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.stats-grid--participant-primary,.stats-grid--participant-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card span{display:block;color:var(--color-muted);margin-bottom:.6rem}.stat-card--link{position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.stat-card--link:hover{transform:translateY(-3px);border-color:#2e9d6238;box-shadow:0 22px 42px #2853381f}.stat-card__icon{display:inline-grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:16px;background:rgba(46,157,98,.12);color:var(--color-primary-dark);margin-bottom:.9rem}.stat-card--disabled{opacity:.72;border-color:#b1c9bba6;box-shadow:none}.stat-card--disabled .stat-card__icon{background:rgba(177,201,187,.16);color:var(--color-muted)}.stat-card strong{display:block;font-size:2rem}.stat-card--compact{padding:1.1rem 1rem}.stat-card--compact strong{font-size:1.45rem}.stat-card--compact p{font-size:.9rem}.stat-card__value--course-title{font-size:clamp(1rem,1vw + .7rem,1.45rem)!important;line-height:1.18;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.list{margin:0;padding-left:1.1rem}.list li+li{margin-top:.45rem}.table-shell{display:grid;gap:1rem}.table-shell__toolbar{display:flex;justify-content:space-between}.table-shell__actions{display:flex;justify-content:flex-end}.table-responsive{width:100%;overflow-x:auto}.inline-state{display:grid;gap:.35rem;padding:1rem 1.1rem;border-radius:18px;border:1px dashed var(--color-border);background:rgba(255,255,255,.7)}.inline-state p{margin:0;color:var(--color-muted)}.inline-state--success{border-style:solid;border-color:#2e9d6252;background:rgba(224,247,233,.72)}.module-card{display:grid;gap:.35rem;padding:1rem 1.1rem;border-radius:18px;border:1px solid var(--color-border);background:rgba(255,255,255,.72)}.module-card p{margin:0;color:var(--color-muted)}.table--participant-courses th,.table--participant-courses td{vertical-align:top}.table--participant-courses tbody tr:hover{background:rgba(255,255,255,.58)}.course-listing{display:grid;gap:.35rem}.course-listing__title{color:var(--color-ink);font-size:1.02rem;font-weight:700}.course-listing__title:hover{color:var(--color-primary-dark)}.course-listing__description{margin:0;max-width:42rem;color:var(--color-muted);font-size:.92rem}.course-progress-cell{display:grid;gap:.45rem;min-width:180px}.course-progress-cell--link:hover .progress-bar__fill{filter:brightness(.96)}.course-progress-cell__meta{color:var(--color-muted);font-size:.9rem;font-weight:600}.course-state-link{font-weight:700}.course-state-link--start{color:var(--color-primary)}.course-state-link--active{color:#2f6fd6}.course-state-link--completed{color:var(--color-ink)}.course-outline{display:grid;gap:1.15rem}.course-outline__module{display:grid;gap:.85rem;padding:1.15rem 1.2rem;border:1px solid rgba(177,201,187,.6);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(245,250,247,.88) 100%)}.course-outline__module-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.course-outline__module-header strong{font-size:1.08rem}.course-outline__module-description,.course-outline__empty{margin:0;color:var(--color-muted)}.course-outline__lessons{display:grid;gap:.7rem}.course-outline__group{display:grid;gap:.8rem;padding:.95rem 1rem;border-radius:18px;border:1px solid rgba(215,229,219,.9);background:rgba(255,255,255,.66)}.course-outline__group--quiz{background:linear-gradient(180deg,rgba(245,251,247,.9) 0%,rgba(235,245,239,.82) 100%);border-color:#b6d4c0f2}.course-outline__group-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.course-outline__group-header strong{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary-dark)}.course-outline__lesson{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .95rem;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(215,229,219,.82)}.course-outline__lesson span{font-weight:600}.course-structure-panel{padding:1.6rem}.course-structure-panel__header{display:grid;gap:.35rem;margin-bottom:1.2rem}.course-structure-panel__header h2{margin:0;font-size:1.45rem}.course-summary-grid{gap:.85rem}.course-summary-card{padding:1.05rem 1.1rem;background:rgba(255,255,255,.68);box-shadow:0 10px 24px #2853380f}.course-summary-card strong{font-size:1.55rem}.course-details-grid{grid-template-columns:minmax(0,420px)}.course-metadata-panel{background:rgba(255,255,255,.68)}.course-metadata-panel h2{font-size:1.08rem}.course-header-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.course-header-actions__button{min-width:10.5rem;padding:.72rem .95rem;text-align:center;white-space:nowrap}.panel-actions{margin-top:1rem}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:1rem;text-align:left;border-top:1px solid #e7efe9}.table th{color:var(--color-muted);font-size:.88rem;font-weight:700}.table-subtext{margin-top:.3rem;color:var(--color-muted);font-size:.9rem}.table-actions{display:flex;flex-wrap:wrap;gap:.5rem}.table-subtext--inline{margin-top:0}.button--inline{padding:.55rem .8rem}.course-outline__lesson-link--completed:hover,.course-outline__lesson-link--active:hover{color:#fff}.button--danger{color:#fff;background:linear-gradient(135deg,#c94d4d 0%,#a43030 100%);box-shadow:0 14px 28px #a930302e}.form-grid--two{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem}.status-chip{display:inline-flex;align-items:center;padding:.35rem .65rem;border-radius:999px;background:rgba(46,157,98,.12);color:var(--color-primary-dark);font-weight:700;font-size:.85rem}.status-chip--muted{background:rgba(102,122,112,.12);color:var(--color-muted)}.status-chip--danger{background:rgba(201,77,77,.14);color:#a43030}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.text-danger{color:#a43030}.text-link{color:var(--color-primary-dark);font-weight:700}.text-link--button{border:0;background:transparent;padding:0;cursor:pointer;font:inherit}.text-link--button:disabled{opacity:.6;cursor:wait}.lesson-content__text{display:grid;gap:.9rem}.lesson-content__text p{margin:0}.lesson-file-viewer{margin-bottom:1.2rem;border:1px solid rgba(177,201,187,.55);border-radius:18px;overflow:hidden;background:rgba(240,247,243,.8)}.lesson-file-viewer__frame{display:block;width:100%;min-height:70vh;border:0;background:#fff}.lesson-file-viewer__video{display:block;width:100%;max-height:70vh;background:#0e1712}.lesson-slide-deck{display:grid;gap:1rem;margin-bottom:1.2rem}.lesson-slide-deck h3{margin:0}.lesson-slide-deck__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem}.lesson-slide-deck__viewport{position:relative;border:1px solid rgba(177,201,187,.55);border-radius:18px;overflow:hidden;background:rgba(240,247,243,.8)}.lesson-slide-deck__image,.lesson-slide-deck__canvas{display:block;width:100%;height:auto;background:#fff}.lesson-slide-deck__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:rgba(240,247,243,.92)}.lesson-slide-deck__actions{justify-content:space-between}.lesson-resource{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:1.2rem}.field-checkbox{gap:.45rem}.field-checkbox__control{display:inline-flex;align-items:center;gap:.65rem;font-weight:600}.progress-card{display:grid;gap:.85rem;padding:1rem 1.1rem;border-radius:20px;border:1px solid var(--color-border);background:rgba(255,255,255,.74)}.progress-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.progress-card__header p{margin:.3rem 0 0;color:var(--color-muted)}.progress-card__meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--color-muted);font-size:.95rem}.progress-card__actions{display:flex;flex-wrap:wrap;gap:.75rem}.progress-bar{width:100%;height:.9rem;border-radius:999px;background:rgba(46,157,98,.12);overflow:hidden}.progress-bar__fill{height:100%;border-radius:inherit;background:linear-gradient(135deg,var(--color-primary) 0%,#207347 100%)}.question-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.option-row{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--color-border);border-radius:16px;background:rgba(255,255,255,.72)}.option-row input{margin-top:.2rem}.quiz-option-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) 120px 110px;align-items:end}.muted-note{margin-top:1rem;color:var(--color-muted)}.selection-grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.selection-card{display:flex;align-items:flex-start;gap:.8rem;padding:.95rem 1rem;border:1px solid var(--color-border);border-radius:18px;background:rgba(255,255,255,.72)}.selection-card input{margin-top:.2rem}.selection-card strong{display:block;margin-bottom:.2rem}.selection-card p{margin:0;color:var(--color-muted);font-size:.92rem}.course-visibility-note{margin-top:0}.course-visibility-table-shell{gap:.75rem}.table--assignment-overrides td{vertical-align:top}.table--assignment-overrides th:first-child,.table--assignment-overrides td:first-child{width:5.5rem}.field--inline input{min-width:13rem}.certificate-preview{display:grid;gap:.85rem;padding:1.4rem;border-radius:22px;border:1px solid rgba(177,201,187,.65);background:radial-gradient(circle at top right,rgba(46,157,98,.12),transparent 28%),rgba(255,255,255,.86)}.certificate-preview__eyebrow{color:var(--color-primary-dark);font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.certificate-preview__organization{font-size:1.1rem}.certificate-preview h3{margin:0;font-size:1.8rem}.certificate-preview__body,.certificate-preview__footer{margin:0;white-space:pre-wrap;line-height:1.65}.certificate-preview__footer{color:var(--color-muted)}.selection-group{display:grid;gap:.8rem}.selection-group h3,.panel-section-header h2{margin:0;font-size:1.05rem}.permissions-grid{display:grid;gap:1rem}.panel-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.list-toolbar{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1rem}.pagination__meta{color:var(--color-muted);font-weight:600;display:inline-flex;align-items:center;gap:.5rem}.pagination__input{width:4.5rem;min-height:2.5rem;padding:.55rem .75rem;border-radius:.85rem;border:1px solid rgba(26,79,63,.18);background:rgba(255,255,255,.9);color:var(--color-text);font:inherit;text-align:center}.pagination__input:focus{outline:none;border-color:#247a5d73;box-shadow:0 0 0 4px #247a5d24}@media (max-width: 900px){.stats-grid--participant-primary,.stats-grid--participant-secondary,.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid rgba(177,201,187,.45)}.auth-layout__panel{grid-template-columns:1fr}.topbar,.page-header,.dashboard-header--with-actions{flex-direction:column;align-items:start}.page-header__actions,.course-header-actions{justify-content:flex-start}.panel-cta,.course-outline__module-header,.course-outline__lesson,.question-header{flex-direction:column;align-items:start}.progress-card__header{flex-direction:column}.quiz-option-grid{grid-template-columns:1fr}}
