:root{--navy:#153b4a;--teal:#217b78;--teal-dark:#155b5a;--cream:#f7f5ef;--ink:#1c2b30;--muted:#607177;--line:#d9e1df;--white:#fff;--shadow:0 12px 30px #153b4a17;--danger:#a34a42;--blue:#1b68a8;--blue-dark:#124c7d}*{box-sizing:border-box}html{background:var(--cream)}body{background:var(--cream);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:var(--teal-dark)}button,input,textarea,select{font:inherit}button,.primary-button,.secondary-button{background:var(--blue);border:1px solid var(--blue);color:var(--white);cursor:pointer;border-radius:999px;min-height:48px;padding:.7rem 1.15rem;font-weight:700}button:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #e3a94f}button:disabled{cursor:not-allowed;opacity:.5}main{width:min(100% - 2rem,68rem);margin:0 auto;padding:2rem 0 4rem}.app-shell{min-height:100vh}.site-header{background:var(--white);border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:72rem;margin:0 auto;padding:.7rem 1rem;display:flex}.brand-link{line-height:0;display:block}.brand-link img{object-fit:cover;object-position:center;width:min(16rem,58vw);height:4.25rem}.nav-menu{position:relative}.nav-menu summary{background:var(--cream);border:1px solid var(--line);cursor:pointer;border-radius:999px;min-height:44px;padding:.55rem 1rem;font-weight:700;list-style:none}.nav-menu summary::-webkit-details-marker{display:none}.primary-nav{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);z-index:10;border-radius:.85rem;flex-direction:column;gap:.2rem;min-width:13rem;padding:.5rem;display:flex;position:absolute;top:3.2rem;right:0}.primary-nav a,.nav-user{border-radius:.5rem;padding:.65rem .75rem;text-decoration:none}.primary-nav a:hover{background:var(--cream)}.nav-user{border-top:1px solid var(--line);color:var(--muted);margin-top:.25rem;font-size:.84rem}h1,h2,h3,h4{color:var(--navy);line-height:1.2}h1{margin:.35rem 0 1rem;font-size:clamp(2rem,7vw,3.4rem)}h2{margin-top:2rem}.lead{max-width:52rem;color:var(--muted);font-size:1.1rem}.muted{color:var(--muted);font-size:.92rem}.eyebrow{color:var(--teal-dark);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.text-link{font-weight:700}.player-note{border-left:4px solid var(--teal);background:#e6f1ed;border-radius:.5rem;padding:.8rem 1rem}.outline-list,.assignment-list{margin:1.5rem 0;padding:0;list-style:none}.assignment-list li{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1rem;margin:.9rem 0}.assignment-list a{padding:1.15rem;text-decoration:none;display:block}.assignment-title,.assignment-meta{display:block}.assignment-title{color:var(--navy);font-size:1.15rem;font-weight:800}.assignment-meta{color:var(--muted);margin-top:.25rem;font-size:.9rem}.empty-state{background:var(--white);border:1px dashed var(--line);border-radius:1rem;padding:1.2rem}.empty-state h2{margin-top:0;font-size:1.25rem}.action-grid{grid-template-columns:1fr;gap:1rem;margin-top:2rem;display:grid}.action-card{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1rem;flex-direction:column;gap:.3rem;padding:1.25rem;text-decoration:none;display:flex}.action-card:hover{border-color:var(--teal);transform:translateY(-1px)}.action-card strong{color:var(--navy);font-size:1.1rem}.action-card span{color:var(--muted)}.page-heading,.section-heading{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-heading{align-items:center;margin-bottom:2rem}.section-heading{margin-top:2.5rem}.section-heading h2{margin:0}.form-card{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1rem;gap:1rem;padding:1.25rem;display:grid}.form-card h2{margin:0}.narrow-form{max-width:42rem}.course-editor>section{border:1px solid var(--line);background:#ffffff8c;border-radius:1.15rem;margin:1.25rem 0;padding:1.25rem}.course-editor>section>h2{border-bottom:1px solid var(--line);margin:0 0 1rem;padding-bottom:.75rem;font-size:1.35rem}.course-editor>section>form{margin-bottom:1.15rem}.course-editor>section>form+form{margin-top:1.15rem}.editor-module-card{background:var(--white);border:1px solid var(--line);border-radius:1rem;margin:1rem 0;padding:1rem}.editor-module-card>form+form,.editor-page-card>form+form{margin-top:.9rem}.add-page-form,.add-module-form{gap:.7rem;margin-top:1rem;display:grid}.add-page-form button,.add-module-form button{margin-top:.15rem}.module-title-form,.inline-editor-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.7rem;display:grid}.module-title-form{grid-template-columns:minmax(0,1fr) auto}.editor-module-card>ul{margin:1rem 0;padding:0;list-style:none}.editor-page-card{border:1px solid var(--line);background:#fbfcfa;border-radius:.85rem;margin:.85rem 0;padding:1rem}.compact-actions{flex-wrap:wrap;align-items:center;gap:.45rem;margin:.55rem 0;display:flex}.compact-actions button{min-height:38px;padding:.45rem .8rem}.move-page-form{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin:.8rem 0;display:grid}.move-page-form label{grid-column:1/-1}.content-block-editor{background:var(--white);border:1px solid var(--line);border-radius:.75rem;margin-top:1rem;padding:.85rem}.content-block-editor summary,.page-preview summary{cursor:pointer;font-weight:800;list-style:none}.content-block-editor summary::-webkit-details-marker{display:none}.page-preview summary::-webkit-details-marker{display:none}.content-block-editor summary:before,.page-preview summary:before{content:"＋";margin-right:.4rem;display:inline-block}.content-block-editor[open] summary:before,.page-preview[open] summary:before{content:"−"}.content-block-editor ol{gap:1rem;margin:1rem 0;padding:0;list-style:none;display:grid}.content-block-editor ol>li{border-top:1px solid var(--line);padding-top:1rem}.content-block-editor form{gap:.7rem}.content-block-editor form>label{margin-bottom:.6rem}.field-help{color:var(--muted);margin:.1rem 0 .65rem;font-size:.84rem}.sortable-block-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.sortable-block-list.is-saving{opacity:.72}.sortable-block-item{border:1px solid var(--line);background:#fbfcfa;border-radius:.75rem;align-items:flex-start;gap:.6rem;padding:.8rem;display:flex}.sortable-block-item[draggable=true]{cursor:grab}.sortable-block-item:active{cursor:grabbing}.drag-handle{color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none;padding-top:.65rem;font-size:1.4rem;line-height:1}.sortable-block-content{flex:1;min-width:0}.saved-block-summary{background:#f4f8f7;border:1px solid #d5e2de;border-radius:.65rem;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .85rem;display:flex}.saved-block-summary>div{gap:.15rem;min-width:0;display:grid}.saved-block-summary strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.block-type-label{color:var(--teal-dark);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:800}.block-actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.6rem;display:flex}.block-actions form{margin:0}.block-actions form:first-child{gap:.35rem;display:flex}.icon-button{min-height:36px;padding:.35rem .65rem}.completion-form{gap:1rem;display:grid}.completion-fieldset{background:linear-gradient(145deg,#f8fbff,#f3f7fb);border:1px solid #d7e3ef;border-radius:1rem;gap:.7rem;margin:0;padding:1rem;display:grid}.completion-fieldset legend{color:var(--navy);padding:0 .4rem;font-size:1.05rem;font-weight:800}.completion-fieldset>.field-help{margin-top:-.15rem}.completion-rule-row,.completion-simple-rule{background:var(--white);border:1px solid #e0e9f0;border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem;display:flex}.completion-rule-toggle,.completion-simple-rule{flex:1;align-items:flex-start;gap:.75rem;display:flex}.completion-rule-toggle span,.completion-simple-rule span{gap:.15rem;display:grid}.completion-rule-toggle small,.completion-simple-rule small{color:var(--muted);font-size:.8rem;font-weight:400;line-height:1.35}.completion-rule-value{align-items:center;gap:.45rem;max-width:12rem;display:flex}.completion-rule-value input{width:7rem;min-height:42px}.completion-rule-value span{color:var(--muted);white-space:nowrap;font-size:.9rem}.acknowledgement-preview{background:#eef6f4;border:1px solid #c9dfd9;border-radius:.75rem;gap:.65rem;margin-top:.25rem;padding:.9rem;display:grid}.preview-label{color:var(--teal-dark);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:800}.preview-check{align-items:flex-start;gap:.7rem;display:flex}.preview-check span{font-weight:700}.acknowledgement-preview small{color:var(--muted)}.form-status{color:var(--teal-dark);background:#eef6f4;border:1px solid #c9dfd9;border-radius:.6rem;margin:0;padding:.65rem .8rem}.acknowledgement-popup{margin:1.5rem 0}.popup-backdrop{z-index:30;background:#153b4a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.acknowledgement-dialog{background:var(--white);border:1px solid var(--line);border-radius:1rem;gap:1rem;width:100%;max-width:34rem;padding:1.35rem;display:grid;box-shadow:0 20px 55px #153b4a40}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dialog-heading h3{margin:.15rem 0 0}.dialog-heading .icon-button{background:var(--white);color:var(--blue-dark)}.dialog-heading .icon-button:hover:not(:disabled){background:#eaf3fb}.sr-only{clip:rect(0, 0, 0, 0);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.page-preview{background:#eef3f1;border:1px solid #c9d9d5;border-radius:.9rem;margin:1rem 0;padding:.9rem}.page-preview summary{justify-content:space-between;align-items:center;display:flex}.preview-hint{color:var(--muted);font-size:.8rem;font-weight:400}.preview-browser{background:#dfe8e5;border:1px solid #c6d4d0;border-radius:.75rem;margin-top:.8rem;overflow:hidden;box-shadow:0 8px 20px #153b4a14}.preview-browser-bar{background:#f8faf9;align-items:center;gap:.35rem;height:2rem;padding:0 .7rem;display:flex}.preview-browser-bar span{background:#b7c8c3;border-radius:50%;width:.45rem;height:.45rem}.preview-browser-bar small{color:var(--muted);margin-left:.4rem}.preview-canvas{background:var(--white);min-height:12rem;margin:.7rem;padding:1.25rem}.preview-canvas h3{margin:.25rem 0 .5rem;font-size:1.55rem}.preview-summary,.preview-empty{color:var(--muted)}.preview-canvas .learning-content{font-size:.95rem}.preview-canvas .video-frame{min-height:12rem}.video-block{margin:1.5rem 0}.video-frame{aspect-ratio:16/9;background:#102f3c;border-radius:.8rem;width:100%;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%}.video-block figcaption{color:var(--muted);margin-top:.45rem;font-size:.9rem}.quiz-builder,.quiz-option-list{gap:1rem;display:grid}.quiz-option-editor{background:#f8fbff;border:1px solid #d7e3ef;border-radius:.75rem;gap:.75rem;margin:0;padding:.9rem;display:grid}.quiz-option-editor legend{color:var(--navy);padding:0 .35rem;font-weight:800}.quiz-correct-toggle{flex-direction:row;align-items:center;gap:.55rem;display:flex}.quiz-correct-toggle input{width:1.2rem;height:1.2rem;min-height:1.2rem}.quiz-preview{background:#f8fbff;border:1px solid #d7e3ef;border-radius:.8rem;margin:1rem 0;padding:1rem}.quiz-preview legend{color:var(--navy);padding:0 .35rem;font-weight:800}.quiz-preview ul{gap:.5rem;margin:0;padding-left:1.25rem;display:grid}.quiz-learner{background:#f8fbff;border:1px solid #d7e3ef;border-radius:1rem;gap:1rem;margin:1.5rem 0;padding:1rem;display:grid}.quiz-learner fieldset{border:0;gap:.7rem;margin:0;padding:0;display:grid}.quiz-learner legend{color:var(--navy);margin-bottom:.35rem;font-size:1.15rem;font-weight:800}.quiz-answer{background:var(--white);border:1px solid var(--line);border-radius:.7rem;flex-direction:row;align-items:center;gap:.7rem;padding:.8rem;display:flex}.quiz-answer input{accent-color:var(--blue);width:1.2rem;height:1.2rem;min-height:1.2rem}.quiz-feedback{background:#fff2d9;border:1px solid #ead29b;border-radius:.6rem;margin:0;padding:.7rem .8rem}.quiz-feedback.correct{color:var(--teal-dark);background:#e6f1ed;border-color:#b8d5c9}label{color:var(--navy);gap:.35rem;font-weight:700;display:grid}input,textarea,select{background:var(--white);color:var(--ink);border:1px solid #b8c9c6;border-radius:.55rem;width:100%;min-height:48px;padding:.7rem .8rem}input[type=checkbox]{accent-color:var(--blue);width:1.25rem;height:1.25rem;min-height:1.25rem;padding:0}textarea{resize:vertical;min-height:7rem}form>button{justify-self:start}.admin-list{gap:.7rem;margin:1rem 0;padding:0;list-style:none;display:grid}.admin-list-row{background:var(--white);border:1px solid var(--line);border-radius:.8rem;justify-content:space-between;align-items:center;gap:1rem;min-height:4.5rem;padding:.9rem 1rem;display:flex}.admin-list-row strong{color:var(--navy)}.admin-meta{color:var(--muted);font-size:.86rem;display:block}.status-badge{color:var(--navy);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#edf1f0;border-radius:999px;padding:.3rem .6rem;font-size:.72rem;font-weight:800;display:inline-block}.status-assigned{color:var(--teal-dark);background:#e8f1f0}.status-in_progress{color:#345b86;background:#eaf0f8}.status-completed,.status-published{color:#327047;background:#e7f2e9}.status-cancelled{color:var(--danger);background:#f6e9e7}.status-draft{color:#8b651d;background:#fff2d9}.status-role{color:#2f5078;background:#e9eff8}.status-linked{color:var(--teal-dark);background:#e6f1ed}.user-create-card{max-width:44rem;margin:1.5rem 0 2rem}.user-create-card form{gap:1rem;display:grid}.user-list-section{margin-top:2rem}.user-row{grid-template-columns:minmax(12rem,1fr) minmax(13rem,1fr) minmax(15rem,1.3fr);gap:1rem;display:grid}.user-statuses{flex-wrap:wrap;align-items:flex-start;gap:.4rem;display:flex}.user-statuses .admin-meta{flex-basis:100%}.user-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:.45rem;display:flex}.user-actions form{margin:0}.user-actions select{width:auto;min-height:38px;padding:.45rem .6rem}.user-actions button{min-height:38px;padding:.45rem .75rem}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;display:flex}.text-button{color:var(--blue-dark);background:0 0;border:0;min-height:36px;padding:.2rem}.text-button:hover:not(:disabled){background:0 0;border-color:#0000;text-decoration:underline}.danger-text{color:var(--danger)}.card-cta{color:var(--teal-dark);margin-top:.7rem;font-size:.9rem;font-weight:800;display:block}.button-link{text-decoration:none;display:inline-block}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1.25rem;display:flex}.login-card{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1.25rem;width:100%;max-width:28rem;padding:1.5rem}.login-brand{text-align:center;margin:0 auto 1.25rem;display:block}.login-brand img{object-fit:cover;object-position:center;width:100%;max-width:19rem;height:5.6rem}.login-card h1{font-size:2.25rem}.login-form{gap:1rem;margin-top:1.5rem;display:grid}.login-form .primary-button{width:100%}.form-link{text-align:center;margin:0}.form-error{color:var(--danger);background:#fbeceb;border:1px solid #e1b0aa;border-radius:.55rem;margin:0;padding:.7rem .8rem}.welcome-card{text-align:center}.welcome-card>img{width:100%;max-width:18rem;height:auto;margin-bottom:1rem}.outline-module{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1rem;margin:1rem 0;padding:1rem 1.15rem}.outline-module h2{margin:0 0 .75rem;font-size:1.2rem}.outline-module ol{margin:0;padding:0;list-style:none}.outline-page{border-top:1px solid var(--line);padding:.85rem 0}.outline-page a{font-weight:700;display:block}.locked{color:var(--muted)}.lock-label{font-size:.8rem;font-weight:400;display:block}.player-shell{max-width:56rem}.player-header{margin-bottom:1.25rem}.player-sequence{background:var(--white);box-shadow:var(--shadow);border-radius:1.25rem;padding:1rem}.page-position{color:var(--muted);margin-bottom:.75rem;font-size:.9rem;font-weight:700}.page-tabs{gap:.5rem;margin:0 -.25rem 1.25rem;padding:.25rem;display:flex;overflow-x:auto}.page-tab{background:var(--cream);border:1px solid var(--line);color:var(--navy);flex:none;min-height:42px;padding:.55rem .8rem}.page-tab.current{background:var(--navy);border-color:var(--navy);color:var(--white)}.page-title{margin:.35rem 0 1.3rem;font-size:clamp(1.7rem,6vw,2.45rem)}.learning-content{font-size:1.08rem}.learning-content p{margin:0 0 1.1rem}.callout,.acknowledgement-card,.requirements{border-radius:.85rem;margin:1.5rem 0;padding:1rem 1.1rem}.callout p{margin:.35rem 0 0}.callout-info{background:#e7f1f2;border-left:4px solid #4e9aa0}.callout-warning{background:#fff4dc;border-left:4px solid #d59628}.callout-success{border-left:4px solid var(--teal);background:#e6f1ed}.acknowledgement-card{border:1px solid var(--line);background:#f0f5f3}.check-row{align-items:flex-start;gap:.7rem;font-weight:700;display:flex}.check-row input{accent-color:var(--teal);width:1.3rem;height:1.3rem;margin-top:.25rem}.requirements{background:#f7f2e6;border:1px solid #ead9b4}.requirements h2{margin:0 0 .4rem;font-size:1.1rem}.requirements ul{margin:0;padding-left:1.25rem}.invalid-content{color:#8a3428;background:#fff0ee;border:1px solid #e0aaa1;border-radius:.5rem;padding:.8rem}.player-navigation{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:2rem;padding-top:1.1rem;display:flex}.primary-button{background:var(--blue);border:1px solid var(--blue);color:var(--white)}.primary-button:hover{background:var(--blue-dark)}.secondary-button{background:var(--white);border:1px solid var(--blue);color:var(--blue-dark)}.secondary-button:hover:not(:disabled){border-color:var(--blue-dark);color:var(--blue-dark);background:#eaf3fb}@media (min-width:700px){main{padding-top:3.5rem}.player-sequence{padding:2rem}.player-navigation{gap:1rem}.action-grid{grid-template-columns:repeat(3,1fr)}.form-card{padding:1.75rem}.login-card{padding:2.5rem}}@media (max-width:520px){.page-heading,.section-heading,.admin-list-row{flex-direction:column;align-items:flex-start}.page-heading .primary-button{text-align:center;width:100%}.admin-list-row{gap:.65rem}.row-actions{justify-content:flex-start}.user-row{grid-template-columns:1fr}.user-actions{justify-content:flex-start}.inline-editor-form,.module-title-form,.move-page-form{grid-template-columns:1fr}.inline-editor-form button,.module-title-form button,.move-page-form button{width:100%}.course-editor>section{padding:.85rem}.completion-rule-row{flex-direction:column;align-items:stretch}.completion-rule-value{max-width:none}.completion-rule-value input{flex:1;width:auto}}
