:root{--font: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--surface: #ffffff;--bg: #f8fafc;--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--radius: 8px}*{box-sizing:border-box}html,body{margin:0;font-family:var(--font);font-size:16px;line-height:1.5;color:var(--text);background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}.layout{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);gap:16px}.topbar-left{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;min-width:0}.topbar-brand{display:flex;align-items:center;flex-shrink:0}.topbar-brand:hover{text-decoration:none;opacity:.92}.topbar-logo{height:2.25rem;width:auto;max-width:min(220px,42vw);display:block;object-fit:contain}.topbar nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.topbar a{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-weight:500;padding:6px 10px;border-radius:var(--radius)}.topbar a:hover{background:var(--bg);text-decoration:none}.topbar a.active{background:#eff6ff;color:var(--primary)}.main{flex:1;padding:20px;max-width:1400px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:14px}h1{font-size:1.5rem;font-weight:600;margin:0 0 12px}h2{font-size:1.125rem;font-weight:600;margin:0 0 12px}.muted{color:var(--muted);font-size:.875rem}.breadcrumb-row{margin:0 0 8px;font-size:.875rem}.outline-page-sticky{position:sticky;top:0;z-index:5;background:var(--bg);padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--border)}.outline-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.outline-page-head h1{margin:0;flex:1;min-width:0;font-size:1.5rem}.outline-back-link{flex-shrink:0;font-size:.875rem;font-weight:500;white-space:nowrap;margin-top:4px;color:var(--primary)}.outline-back-link:hover{text-decoration:underline}.outline-page-error{margin:0 0 10px}.publish-page-links{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.publish-course-meta{margin:0 0 10px;font-size:.875rem}.publish-status-legend{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-left:6px;vertical-align:middle}.outline-bulk-toolbar{padding:10px 12px;margin-bottom:10px}.outline-bulk-toolbar-inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.outline-bulk-task-label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;font-size:.875rem;min-width:0}.outline-bulk-task-text{flex-shrink:0;white-space:nowrap}.outline-bulk-task-select{min-width:min(18rem,60vw);height:2.25rem;padding:0 10px;box-sizing:border-box;border-radius:6px;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:.875rem;font-weight:500;color:var(--text)}.outline-bulk-run-btn{flex-shrink:0;height:2.25rem;box-sizing:border-box;padding-top:0;padding-bottom:0}.outline-module-select{flex-shrink:0;display:inline-flex;align-items:center;align-self:center;padding:4px;margin:-4px 0 -4px -2px;cursor:pointer}.outline-module-select input{width:1rem;height:1rem;cursor:pointer}.outline-section{margin-bottom:1.5rem}.outline-section:last-child{margin-bottom:0}.outline-section-header{margin:0}.outline-section-toggle{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 .75rem;padding:4px 8px 8px 4px;border:none;border-bottom:1px solid var(--border);background:transparent;font:inherit;cursor:pointer;text-align:left;color:var(--text);border-radius:6px;box-sizing:border-box}.outline-section-toggle:hover{background:var(--bg)}.outline-section-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.outline-section-chevron{flex-shrink:0;color:var(--muted);transition:transform .15s ease}.outline-section-chevron--open{transform:rotate(90deg)}.outline-section-heading{font-size:1.05rem;font-weight:600;flex:1;min-width:0;word-break:break-word}.outline-section-review-stats{flex-shrink:0;font-size:.75rem;font-weight:500;line-height:1.35}.outline-section-count{font-weight:400;font-size:.875rem;flex-shrink:0;margin-left:auto}.outline-section-body{margin:0}.outline-current-section-sticky{position:sticky;top:var(--outline-sticky-section-top, 0px);z-index:6;margin:0 0 10px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:#eff6ff;font-size:.875rem}.outline-module-list{list-style:none;margin:0;padding:0}.outline-module-item{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;padding:10px 0;border-bottom:1px solid var(--border)}.outline-module-item:last-child{border-bottom:none}.outline-module-item--selected{background:color-mix(in srgb,var(--primary, #2563eb) 12%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary, #2563eb) 35%,var(--border));border-radius:8px;margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px}.outline-module-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;min-width:0;flex:1}.outline-module-drag-handle{flex-shrink:0;cursor:grab;color:var(--muted);padding:2px;margin:-2px 2px -2px -4px;display:inline-flex;align-items:center;align-self:center;border-radius:4px;touch-action:none}.outline-module-drag-handle:hover{color:var(--text);background:var(--bg)}.outline-module-drag-handle:active{cursor:grabbing}.outline-module-item--dragging{opacity:.55}.outline-module-item--drag-over{box-shadow:inset 0 3px 0 0 var(--primary)}.outline-module-item--selected.outline-module-item--drag-over{box-shadow:inset 0 3px 0 0 var(--primary),inset 0 0 0 1px color-mix(in srgb,var(--primary, #2563eb) 35%,var(--border))}.outline-reorder-hint{margin:0 0 10px;font-size:.8125rem;line-height:1.35}.outline-modname{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:4px}.outline-module-name{font-weight:500;word-break:break-word}.outline-module-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.outline-status-chip{display:inline-flex;align-items:center;align-self:center;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.25;white-space:nowrap;flex-shrink:0}.outline-status-with-reviewer{display:inline-flex;align-items:baseline;gap:8px;flex-shrink:0;max-width:100%;flex-wrap:wrap}.outline-reviewer-byline{font-size:.6875rem;font-style:italic;font-weight:400;color:var(--muted);line-height:1.25;min-width:0}.outline-status-chip--ready{background:#fef9c3;color:#713f12;border:1px solid #eab308}.outline-status-chip--missing{background:#fef2f2;color:#b91c1c;border:1px solid #ef4444}.outline-status-chip--script{background:#d1fae5;color:#065f46;border:1px solid #10b981}.outline-status-chip--draft{background:#e0f2fe;color:#0c4a6e;border:1px solid #0284c7}.outline-status-chip--checked{background:#f5ebe0;color:#5c4033;border:1px solid #c9b29a}.outline-status-chip--publish-not-reviewed{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.outline-status-chip--publish-reviewed{background:#f5ebe0;color:#5c4033;border:1px solid #c9b29a}.outline-status-chip--publish-no-changes{background:#ede9fe;color:#5b21b6;border:1px solid #a78bfa}.outline-status-chip--publish-venue-platform{background:#fff;color:#1e40af;border:1px solid #93c5fd}.outline-status-chip--publish-venue-external{background:#fff;color:#0f766e;border:1px solid #5eead4}.publish-review-status-group{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;flex-shrink:0}.publish-review-content{width:100%}.publish-review-content-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}.publish-review-content-message{margin:0;font-size:.8125rem;line-height:1.4}.publish-review-content-html{max-height:280px;overflow:auto;font-size:.875rem}.publish-review-content-html--detail,.publish-review-content--detail .publish-review-content-html{max-height:min(70vh,720px)}.publish-activity-content-page{max-width:1200px}.publish-review-compare-columns{min-height:240px}.publish-activity-content-sub{margin:4px 0 0;font-size:.875rem}.publish-activity-content-card{padding:14px 16px}.publish-activity-content-card .publish-review-content{margin-top:0;padding-top:0;border-top:none}.publish-label-moodle-accordion{margin:0 0 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface, #fff)}.publish-label-moodle-accordion-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:10px 12px;cursor:pointer;list-style:none;font-weight:600;font-size:.9375rem}.publish-label-moodle-accordion-summary::-webkit-details-marker{display:none}.publish-label-moodle-accordion-summary:before{content:"";display:inline-block;width:0;height:0;margin-right:6px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid currentColor;transition:transform .15s ease;flex-shrink:0;align-self:center}.publish-label-moodle-accordion[open]>.publish-label-moodle-accordion-summary:before{transform:rotate(90deg)}.publish-label-moodle-accordion-title{font-weight:600}.publish-label-moodle-accordion-summary-meta{font-weight:400;font-size:.8125rem}.publish-label-moodle-accordion-body{padding:0 12px 12px 28px;border-top:1px solid var(--border)}.publish-label-moodle-lead{margin:0 0 12px;font-size:.8125rem;line-height:1.45}.publish-label-moodle-meta{margin:0 0 12px;display:grid;gap:8px;font-size:.875rem}.publish-label-moodle-meta dt{font-weight:600;color:var(--muted, #64748b);font-size:.75rem;text-transform:uppercase;letter-spacing:.02em}.publish-label-moodle-meta dd{margin:2px 0 0}.publish-label-moodle-status--warn{color:#b45309}.publish-label-moodle-candidates{margin:0 0 12px;padding-left:1.25rem;font-size:.875rem}.publish-label-moodle-html-block{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.publish-label-moodle-fit-hint{margin:0 0 12px;font-size:.8125rem;line-height:1.45}.publish-label-moodle-warnings{margin:0 0 12px;padding:10px 12px 10px 28px;font-size:.8125rem;line-height:1.45;color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:var(--radius)}.publish-label-moodle-warnings li+li{margin-top:6px}.publish-label-moodle-html-stack{display:flex;flex-direction:column;gap:20px}.publish-label-moodle-html-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.publish-label-moodle-html-panel-head .activity-review-col-label{margin-bottom:0}.publish-label-moodle-html-source{min-height:12rem}.publish-label-moodle-push{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.publish-label-moodle-push-override{max-width:16rem;margin-bottom:10px}.publish-label-moodle-push-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.publish-label-moodle-push-actions .btn{display:inline-flex;align-items:center;gap:6px}.publish-label-moodle-push-ok{margin:10px 0 0;font-size:.875rem;color:var(--success, #0a7a3e)}.publish-review-external-link{display:inline-flex;align-items:center;gap:6px;font-size:.875rem}.publish-worker-hint{margin:0 0 10px;font-size:.8125rem;line-height:1.4}.publish-module-row-actions{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 8px}.publish-activity-content-card .publish-module-row-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);width:100%;justify-content:flex-end}.publish-outcome-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.publish-outcome-actions-error{font-size:.8125rem;flex-basis:100%;text-align:right}.publish-outcome-btn--active{box-shadow:inset 0 0 0 1px var(--primary, #2563eb);background:color-mix(in srgb,var(--primary, #2563eb) 10%,transparent)}.outline-status-chip--publish-outcome-no-changes{background:#f8fafc;color:#334155;border:1px solid #94a3b8}.outline-status-chip--publish-outcome-updated{background:#ecfdf5;color:#047857;border:1px solid #34d399}.publish-activity-content-card .publish-outcome-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);width:100%;justify-content:flex-end}.outline-source-line{font-size:.8125rem;width:100%;flex-basis:100%;word-break:break-all}.outline-add-trigger-card{padding:12px 14px;margin-bottom:10px}.outline-add-trigger-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.outline-add-trigger-text{margin:0;flex:1;min-width:min(100%,280px)}.outline-add-trigger-card--after-grid{margin-top:12px}.outline-add-open-btn{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.modal-dialog--add-activity{max-width:min(56rem,96vw)}.add-activity-step-intro{margin:0 0 14px;font-size:.9375rem}.add-activity-type-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;font-size:.9375rem}.add-activity-change-type{font-size:.8125rem;padding:4px 10px;min-height:0}.modal-footer--add-activity{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.get-script-plan-loading{margin:0 0 12px}.get-script-instructions-panel{margin:0 0 12px;border:1px solid color-mix(in srgb,#ca8a04 35%,var(--border, #e4e4e7));border-radius:8px;background:#fef9c3;overflow:hidden}.get-script-instructions-panel__toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:0;padding:10px 12px;border:none;border-radius:0;background:transparent;font:inherit;text-align:left;cursor:pointer;color:var(--text, #18181b);box-sizing:border-box;min-height:44px}.get-script-instructions-panel__toggle:hover{background:color-mix(in srgb,#ca8a04 12%,transparent)}.get-script-instructions-panel__title{font-size:.9375rem;font-weight:700}.get-script-instructions-panel__chev{flex-shrink:0;color:color-mix(in srgb,var(--text, #18181b) 70%,transparent)}.get-script-instructions-panel__body{padding:0 12px 12px;border-top:1px solid color-mix(in srgb,#ca8a04 22%,transparent)}.get-script-instructions-panel__list{margin:10px 0 0;padding-left:1.35rem;font-size:.875rem;line-height:1.45}.get-script-instructions-panel__list li{margin-bottom:6px}.get-script-instructions-panel__list li:last-child{margin-bottom:0}.get-script-instructions-panel--always-expanded{padding:10px 12px 12px}.get-script-instructions-panel--always-expanded .get-script-instructions-panel__title{display:block;margin:0 0 8px;font-size:.9375rem;font-weight:700}.get-script-instructions-panel--always-expanded .get-script-instructions-panel__list{margin-top:0}.get-script-field-label{display:block;font-size:.8125rem;font-weight:600;margin-bottom:4px}.get-script-field-hint{display:block;font-size:.8125rem;margin:-2px 0 8px}.get-script-actions--moodle{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.get-script-actions--script-footer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;flex-shrink:0}.get-script-rich-editor{display:flex;flex-direction:column;gap:8px;width:100%}.get-script-rich-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;background:var(--surface, #fafafa);border:1px solid var(--border, #e4e4e7);border-radius:8px}.get-script-rich-toolbar-group{display:inline-flex;align-items:center;gap:2px}.get-script-rich-toolbar-sep{width:1px;height:22px;background:var(--border, #e4e4e7);margin:0 4px}.get-script-rich-toolbar-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text, #18181b);cursor:pointer}.get-script-rich-toolbar-icon:hover:not(:disabled){background:color-mix(in srgb,var(--text) 8%,transparent)}.get-script-rich-toolbar-icon:disabled{opacity:.45;cursor:not-allowed}.get-script-rich-toolbar button:focus{outline:none}.get-script-rich-toolbar-btn--active{background:color-mix(in srgb,var(--primary, #2563eb) 16%,var(--surface));color:var(--primary, #1d4ed8)}.get-script-rich-toolbar-btn.get-script-rich-toolbar-btn--text{padding:4px 10px;height:32px;font-size:.8125rem;font-weight:600;margin-left:4px;border:1px solid var(--border);border-radius:6px;background:var(--card-bg, #fff);cursor:pointer;color:var(--text)}.get-script-rich-toolbar-btn.get-script-rich-toolbar-btn--text:hover:not(:disabled){background:var(--surface)}.get-script-rich-toolbar-btn.get-script-rich-toolbar-btn--text:disabled{opacity:.45;cursor:not-allowed}.get-script-html-source-label{font-size:.8125rem;margin-right:8px;flex:1 1 auto;min-width:120px}.get-script-html-source-textarea{font-family:ui-monospace,Cascadia Mono,Segoe UI Mono,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.45;resize:vertical;width:100%;box-sizing:border-box}.get-script-html-toggle{flex-shrink:0}.get-script-editor-dual-surface{width:100%}.get-script-rich-editor--fill{flex:1 1 0;min-height:0;overflow:hidden}.get-script-rich-editor--fill .get-script-editor-dual-surface{flex:1 1 0;min-height:0;overflow:auto;display:flex;flex-direction:column}.get-script-rich-editor--fill .get-script-html-source-textarea{flex:1 1 0;min-height:0;resize:none;align-self:stretch}.get-script-rich-editor--fill .get-script-rich-editor-content{flex:0 0 auto;overflow:visible;min-height:0}.get-script-rich-editor--fill .get-script-rich-editor-content .tiptap{min-height:calc(5.8125rem + 22px)}.get-script-rich-editor-skeleton.get-script-rich-editor-skeleton--fill{flex:1 1 0;min-height:8rem}.get-script-rich-editor-content{padding:0;overflow:hidden}.get-script-rich-editor-content .tiptap{min-height:inherit;padding:10px 12px;border:1px solid var(--border, #e4e4e7);border-radius:8px;background:var(--card-bg, #fff);font-size:.9375rem;line-height:1.55;outline:none}.get-script-rich-editor-content .tiptap:focus-within{border-color:color-mix(in srgb,var(--primary, #2563eb) 55%,var(--border));box-shadow:0 0 0 2px color-mix(in srgb,var(--primary, #2563eb) 20%,transparent)}.get-script-tiptap p{margin:0 0 .6em}.get-script-tiptap p:last-child{margin-bottom:0}.get-script-tiptap h1,.get-script-tiptap h2,.get-script-tiptap h3,.get-script-tiptap h4,.get-script-tiptap h5,.get-script-tiptap h6{margin:.75em 0 .35em;font-weight:700;line-height:1.25}.get-script-tiptap h1{font-size:1.35rem}.get-script-tiptap h2{font-size:1.2rem}.get-script-tiptap h3{font-size:1.05rem}.get-script-tiptap h4{font-size:.98rem}.get-script-tiptap h5{font-size:.92rem}.get-script-tiptap h6{font-size:.875rem;font-weight:600}.get-script-tiptap ul,.get-script-tiptap ol{margin:.4em 0 .6em;padding-left:1.4rem}.get-script-tiptap li{margin:.15em 0}.get-script-tiptap blockquote{margin:.5em 0;padding-left:.85rem;border-left:3px solid var(--border);color:var(--muted, #52525b)}.get-script-tiptap-placeholder.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted, #71717a);float:left;height:0;pointer-events:none}.get-script-rich-editor-skeleton{background:var(--surface)}.get-script-moodle-pull-wrap{display:inline-flex;vertical-align:middle}.modal-dialog--get-script .get-script-btn-done-icon{width:1rem;height:1rem;flex-shrink:0;margin-left:4px;color:#15803d}.modal-dialog--get-script .btn.get-script-step-btn--3 .get-script-btn-done-icon{color:#fffffff2}.modal-dialog--get-script .get-script-btn-step{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 5px;border-radius:5px;font-size:.72rem;font-weight:700;line-height:1;flex-shrink:0;border:1px solid transparent;box-sizing:border-box}.modal-dialog--get-script .btn.get-script-step-btn{font-weight:600}.modal-dialog--get-script .btn.get-script-step-btn--1{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.modal-dialog--get-script .btn.get-script-step-btn--1 .get-script-btn-step{background:#e2e8f0;color:#334155;border-color:#94a3b8}.modal-dialog--get-script .btn.get-script-step-btn--1:hover:not(:disabled){background:#e2e8f0;border-color:#94a3b8}.modal-dialog--get-script .btn.get-script-step-btn--2{background:#dbeafe;border-color:#93c5fd;color:#1e3a8a}.modal-dialog--get-script .btn.get-script-step-btn--2 .get-script-btn-step{background:#bfdbfe;color:#1e40af;border-color:#60a5fa}.modal-dialog--get-script .btn.get-script-step-btn--2:hover:not(:disabled){background:#bfdbfe;border-color:#60a5fa}.modal-dialog--get-script .btn.get-script-step-btn--3{background:#1d4ed8;border-color:#1e40af;color:#fff}.modal-dialog--get-script .btn.get-script-step-btn--3 .get-script-btn-step{background:#172554;color:#fff;border-color:#ffffff59}.modal-dialog--get-script .btn.get-script-step-btn--3:hover:not(:disabled){background:#1e40af;border-color:#1e3a8a}.modal-dialog--get-script .btn.get-script-step-btn--4{background:#fff;border-color:#cbd5e1;color:#475569}.modal-dialog--get-script .btn.get-script-step-btn--4 .get-script-btn-step{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.modal-dialog--get-script .btn.get-script-step-btn--4:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:#0f172a}.modal-dialog--get-script .btn.get-script-step-btn--4:hover:not(:disabled) .get-script-btn-step{color:#0f172a}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--4:not(.get-script-step-btn--build){background:#f8fafc;border-color:#cbd5e1}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--4:not(.get-script-step-btn--build):hover:not(:disabled){background:#f1f5f9}.modal-dialog--get-script .btn.get-script-step-btn:disabled{opacity:1;cursor:not-allowed}.modal-dialog--get-script .btn.get-script-step-btn--1:disabled{background:#e2e8f0;border-color:#cbd5e1;color:#64748b}.modal-dialog--get-script .btn.get-script-step-btn--1:disabled .get-script-btn-step{background:#cbd5e1;color:#475569;border-color:#94a3b8}.modal-dialog--get-script .btn.get-script-step-btn--2:disabled{background:#e0e7ff;border-color:#c7d2fe;color:#64748b}.modal-dialog--get-script .btn.get-script-step-btn--2:disabled .get-script-btn-step{background:#c7d2fe;color:#4338ca;border-color:#a5b4fc}.modal-dialog--get-script .btn.get-script-step-btn--3:disabled{background:#93c5fd;border-color:#60a5fa;color:#1e3a8a}.modal-dialog--get-script .btn.get-script-step-btn--3:disabled .get-script-btn-step{background:#60a5fa;color:#172554;border-color:#3b82f6}.modal-dialog--get-script .btn.get-script-step-btn--4:disabled{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8}.modal-dialog--get-script .btn.get-script-step-btn--4:disabled .get-script-btn-step{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--4:not(.get-script-step-btn--build):disabled{background:#f1f5f9}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--4:not(.get-script-step-btn--build):disabled .get-script-btn-step{background:#e2e8f0;color:#64748b}.modal-dialog--get-script .btn.get-script-step-btn--5{background:#fff;border-color:#cbd5e1;color:#475569}.modal-dialog--get-script .btn.get-script-step-btn--5 .get-script-btn-step{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.modal-dialog--get-script .btn.get-script-step-btn--5:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:#0f172a}.modal-dialog--get-script .btn.get-script-step-btn--5:hover:not(:disabled) .get-script-btn-step{color:#0f172a}.modal-dialog--get-script .btn.get-script-step-btn--5:disabled{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8}.modal-dialog--get-script .btn.get-script-step-btn--5:disabled .get-script-btn-step{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--build{background:#bef264;border-color:#84cc16;color:#1a2e05}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--build .get-script-btn-step{background:#d9f99d;color:#365314;border-color:#84cc16}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--build:hover:not(:disabled){background:#d9f99d;border-color:#65a30d;color:#0f172a}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--build:disabled{background:#ecfccb;border-color:#d9f99d;color:#64748b}.modal-dialog--get-script .btn.get-script-step-btn--ramp.get-script-step-btn--build:disabled .get-script-btn-step{background:#d9f99d;color:#64748b;border-color:#bef264}.modal-dialog--get-script .get-script-modal-context-title{word-break:break-word;overflow-wrap:anywhere;max-width:100%}.modal-dialog--get-script .get-script-gdoc-url-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:0 0 10px}.modal-dialog--get-script .get-script-gdoc-url-line{flex:1 1 auto;min-width:0;margin:0;font-size:.8125rem;line-height:1.45}.modal-dialog--get-script .get-script-gdoc-url-line a{word-break:break-all}.modal-dialog--get-script .get-script-gdoc-url-label{font-weight:600;color:var(--foreground, #0f172a)}.modal-dialog--get-script .btn.get-script-gdoc-delete-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;min-height:0;padding:0;margin-top:-2px}.modal-dialog--get-script .get-script-gdoc-delete-loader{animation:get-script-spin .85s linear infinite}@keyframes get-script-spin{to{transform:rotate(360deg)}}.get-script-meta-note{font-size:.875rem;margin:0 0 10px}.get-script-modal-image-preview{margin:0 0 14px;max-width:100%}.modal-dialog--get-script .modal-body .paste-image-preview-wrap.get-script-modal-media-hero{margin:-14px -16px 10px;align-self:stretch;max-width:none;border-radius:0;border-left:none;border-right:none}.get-script-modal-video-preview{margin:0 0 14px;max-width:100%}.paste-video-preview{display:block;max-width:100%;max-height:280px;width:auto;height:auto}.get-script-strategy-label{margin:12px 0 6px}.get-script-config-hint{margin:8px 0;font-size:.875rem}.get-script-sources{margin:12px 0}.get-script-sources-title{font-size:.8125rem;font-weight:600;margin:0 0 6px}.get-script-req-list{margin:0;padding-left:1.25rem;font-size:.875rem}.get-script-req-ok{color:var(--text)}.get-script-req-miss{color:var(--muted)}.get-script-run-msg{margin-top:12px;font-size:.875rem}.get-script-save-banner{margin:12px 0 0;padding:12px 16px;border-radius:8px;background:color-mix(in srgb,#15803d 18%,var(--surface));border:1px solid color-mix(in srgb,#15803d 40%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,#15803d 20%,transparent);color:#14532d;font-size:.9375rem;font-weight:600;line-height:1.45}.modal-dialog--get-script .get-script-save-banner{margin-left:0;margin-right:0}.get-script-actions{margin-top:14px}.outline-edit-btn,.outline-get-script-btn,.outline-metadata-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;min-width:0}.modal-dialog--module-metadata{max-width:36rem}.module-metadata-body{max-height:min(70vh,32rem);overflow-y:auto}.module-metadata-module-name{font-weight:600;margin:0 0 1rem;word-break:break-word}.module-metadata-section{margin-bottom:1.25rem}.module-metadata-section:last-child{margin-bottom:0}.module-metadata-section-title{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-fg, #667085);margin:0 0 .5rem}.module-metadata-dl{margin:0}.module-metadata-row{display:grid;grid-template-columns:9rem 1fr;gap:.35rem 1rem;padding:.35rem 0;border-bottom:1px solid var(--border-subtle, #eaecf0);font-size:.875rem}.module-metadata-row:last-child{border-bottom:none}.module-metadata-dt{margin:0;font-weight:600;color:var(--fg-muted, #475467)}.module-metadata-dd{margin:0;word-break:break-word}.module-metadata-dd code{font-size:.8125rem}.module-metadata-hint{margin:.25rem 0 0;font-size:.75rem;line-height:1.35}.module-metadata-key{font-size:.8125rem}.module-metadata-cmid-form{margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.module-metadata-cmid-field{margin:0}.module-metadata-save-ok{margin:0;font-size:.875rem;color:var(--success, #0a7a3e)}.module-metadata-link{word-break:break-all}.outline-action-label{font-size:.8125rem;font-weight:600}.outline-delete-btn{padding:4px 8px;min-width:0;margin-left:auto;color:var(--danger, #b42318)}.outline-delete-btn:hover:not(:disabled){color:var(--danger-hover, #912018)}.manual-entry-title{font-size:.9375rem;font-weight:600;margin:0 0 4px;line-height:1.25}.card.insert-panel,.manual-entry-card,.transcript-add-card{padding:10px 12px;margin-bottom:10px}.insert-panel .muted:first-of-type,.manual-entry-card>.muted:first-of-type,.transcript-add-card>.muted:first-of-type{margin:0 0 6px;font-size:.8125rem;line-height:1.35}.insert-toolbar{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.insert-toolbar .row{margin-bottom:0}.insert-panel .error,.manual-entry-card .error,.transcript-add-card .error{margin:0 0 6px;font-size:.8125rem}.insert-panel .btn,.manual-entry-card .btn,.transcript-add-card .btn,.insert-toolbar .btn{padding:6px 11px;font-size:.875rem}.manual-form{display:flex;flex-direction:column;gap:7px}.manual-form-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 10px}.manual-form-row--single{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.manual-form-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 10px}.manual-form-actions>label.manual-checkbox{margin-right:auto}.manual-form-secondary-actions{margin:2px 0 0}.form-advanced-fields{margin-top:2px}.manual-form--outline-add{gap:6px;max-width:min(52rem,100%)}.manual-form--outline-add .manual-form-row--outline-row{flex-wrap:wrap;align-items:flex-end;gap:8px 10px;padding-bottom:0}.manual-form--outline-add .manual-field-section{width:3.75rem}.manual-form--outline-add .manual-field-section-title{width:auto;min-width:7.5rem;max-width:12rem}.manual-form--outline-add .manual-field-type{width:auto;min-width:8.5rem;max-width:15rem}.manual-form--outline-add .manual-field-name{width:auto;flex:1 1 10rem;min-width:9rem;max-width:18rem}.manual-form--outline-add .manual-field-sort{width:4.25rem}.manual-form--outline-add .manual-outline-submit{flex:0 0 auto;margin-left:auto;display:flex;align-items:flex-end;padding-bottom:1px}.manual-form--activity-type{gap:6px}.activity-type-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px}.activity-type-toolbar__grow{flex:1 1 10rem;min-width:0;max-width:18rem}.activity-type-toolbar__grow input{width:100%}.activity-type-toolbar__actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px;margin-left:auto}.activity-type-toolbar--secondary{padding-top:2px;border-top:1px solid var(--border);margin-top:2px}.manual-field-activity-key{flex:0 0 auto;width:11rem}.manual-field-activity-key input{width:100%}button.btn-link-ghost{background:transparent;border:none;color:var(--primary);padding:6px 8px;font-size:.8125rem;font-weight:500;text-decoration:underline;cursor:pointer;border-radius:4px}button.btn-link-ghost:hover{background:var(--bg);text-decoration:underline}button.btn-link-ghost:disabled{opacity:.5;cursor:not-allowed}.table-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.session-meta-cell{font-size:.8125rem;max-width:14rem;word-break:break-word}.manual-field-description input{width:100%}.manual-field-description{flex:1 1 100%;min-width:0;max-width:min(100%,40rem)}.manual-field{display:flex;flex-direction:column;gap:3px;font-size:.8125rem;color:var(--muted)}.manual-field input,.manual-field select{min-width:0;padding:7px 9px;font-size:.875rem}.manual-field-section{flex:0 0 auto;width:4.25rem}.manual-field-section input{width:100%;text-align:center}.manual-field-cmid{flex:0 0 auto;width:6rem}.manual-field-cmid input{width:100%}.manual-field-sort{flex:0 0 auto;width:4.5rem}.manual-field-sort input{width:100%;text-align:center}.manual-field-type{flex:0 0 auto;width:10rem;min-width:8rem}.manual-field-type select{width:100%}.manual-field-section-title{flex:0 0 auto;width:10rem}.manual-field-section-title input{width:100%}.manual-field-name{flex:0 0 auto;width:12rem}.manual-field-name input{width:100%}.manual-field-transcript-module{flex:0 0 auto;width:14rem}.manual-field-transcript-module select{width:100%}.manual-field-transcript-key{flex:0 0 auto;width:12rem}.manual-field-transcript-key input{width:100%}.manual-field-transcript-path{flex:0 0 auto;width:11rem}.manual-field-transcript-path input{width:100%}.manual-field-transcript-ctype{flex:0 0 auto;width:8.25rem}.manual-field-transcript-ctype input{width:100%}.manual-field-block{flex:1 1 100%;width:100%;max-width:100%;min-width:0}.manual-field-inline{flex-direction:row;align-items:center;gap:6px;padding-bottom:4px;white-space:nowrap}.type-blurb{margin:0;font-size:.75rem;line-height:1.4}.type-blurb-tech{font-weight:400}.manual-textarea{width:100%;max-width:100%;min-height:72px}.transcript-add-card .manual-textarea{min-height:64px}label.manual-checkbox{flex-direction:row;align-items:center;gap:8px}.row{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:flex-end;margin-bottom:8px}.row label{flex:0 1 auto;min-width:0;max-width:12rem}.row label:has(select){max-width:15rem}.row label.row-field--search{max-width:min(22rem,42vw);flex:1 1 14rem}.row.row--insert label{max-width:11rem}.row.row--insert label:has(select){max-width:16rem}.row.row--insert label.row-field--name{max-width:18rem}.row.row--insert label.row-field--moodle-id{max-width:8.5rem}label{display:flex;flex-direction:column;gap:4px;font-size:.875rem;color:var(--muted)}input:not([type=checkbox]):not([type=radio]),select,textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;min-width:0;background:var(--surface)}input[type=checkbox],input[type=radio]{min-width:0;width:auto;flex-shrink:0}textarea{min-height:72px;width:100%;max-width:100%}.login-card input:not([type=checkbox]),.login-card select{width:100%;max-width:none}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-weight:500;box-sizing:border-box;font-size:1rem;line-height:1.25}a.btn{text-decoration:none;color:inherit}a.btn-primary,a.btn-primary:hover{color:#fff}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn:disabled,.btn[disabled]{background:#e5e7eb;border-color:#d1d5db;color:#6b7280;cursor:not-allowed;opacity:1}.btn-primary:disabled,.btn-primary[disabled]{background:#9ca3af;border-color:#9ca3af;color:#f9fafb}.btn-ghost{background:transparent}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.875rem}.table-courses th,.table-courses td{vertical-align:middle}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--bg);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th:hover{background:#f1f5f9}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}.login-page{min-height:100vh;min-height:100dvh;width:100%;box-sizing:border-box;display:grid;place-items:center;padding:16px;background-color:#0f172a;background-image:url(/login-background.png);background-size:cover;background-position:center;background-repeat:no-repeat}.login-card{width:100%;max-width:380px;position:relative;z-index:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:10px;box-shadow:0 12px 40px #0f172a33}.login-brand{display:flex;justify-content:center;align-items:center}.login-logo{height:3rem;width:auto;max-width:min(260px,85vw);display:block;object-fit:contain}.login-card .login-title{text-align:center;margin:1.75rem 0 0;font-size:1.35rem;font-weight:600;line-height:1.2}.login-card label{width:100%;margin:0}.login-card .error{margin:0;font-size:.8125rem}.login-card .btn-primary{margin:0;width:100%;padding:8px 14px}.error{color:var(--danger);font-size:.875rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.modal-backdrop.modal-backdrop--get-script{padding:max(4px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(4px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));align-items:stretch}.modal-dialog{width:100%;max-width:min(40rem,96vw);max-height:min(92vh,42rem);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 20px 48px #0f172a2e;display:flex;flex-direction:column}.modal-dialog.modal-dialog--get-script{width:min(72rem,calc(100vw - 16px));max-width:min(72rem,calc(100vw - 16px));flex:0 1 auto;min-height:0;max-height:none;height:auto;overflow:hidden}.modal-backdrop.modal-backdrop--edit-module{padding:max(4px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(4px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));align-items:stretch}.modal-dialog.modal-dialog--edit-module{width:min(72rem,calc(100vw - 16px));max-width:min(72rem,calc(100vw - 16px));flex:0 1 auto;min-height:0;max-height:none;height:auto;overflow:hidden}.modal-dialog--edit-module .modal-header,.modal-dialog--edit-module .modal-footer{flex-shrink:0}.modal-dialog--edit-module form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.modal-dialog--edit-module .modal-body{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto}.modal-dialog--get-script .modal-header,.modal-dialog--get-script .modal-footer{flex-shrink:0}.modal-dialog--get-script .modal-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px}.modal-dialog--get-script .modal-body.modal-body--get-script-fill{overflow:hidden}.modal-dialog--get-script .modal-body.modal-body--get-script-fill.get-script-modal-body--split{flex:1 1 auto;min-height:0;gap:10px}.modal-dialog--get-script .get-script-modal-actions-dock{flex-shrink:0;padding-top:8px;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -10px 28px #0f172a1a}.modal-dialog--get-script .get-script-modal-body--split>*:not(.get-script-modal-actions-dock):not(.get-script-modal-script-field){flex-shrink:0}.modal-dialog--get-script .modal-body--get-script-fill .paste-image-preview-wrap.get-script-modal-image-preview,.modal-dialog--get-script .modal-body--get-script-fill .paste-image-preview-wrap.get-script-modal-video-preview{min-height:64px;max-height:min(200px,22vh)}.modal-dialog--get-script .modal-body--get-script-fill .get-script-modal-image-preview .paste-image-preview,.modal-dialog--get-script .modal-body--get-script-fill .get-script-modal-video-preview .paste-video-preview{max-height:min(200px,22vh);object-fit:contain}.modal-dialog--get-script .modal-body.modal-body--get-script-body-scroll{overflow-x:hidden;overflow-y:auto}.modal-dialog--get-script .get-script-modal-script-field{flex:1 1 0;min-height:min(12rem,28vh);overflow:hidden}.modal-dialog--get-script .get-script-modal-script-field>.get-script-rich-editor{flex:1 1 0;min-height:0}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.modal-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.3}.modal-close{flex-shrink:0;width:2rem;height:2rem;padding:0;border:none;border-radius:6px;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.modal-close:hover:not(:disabled){background:var(--bg);color:var(--text)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.modal-body .error{margin:0}.modal-field{display:flex;flex-direction:column;gap:4px;font-size:.875rem;color:var(--muted)}.modal-field--get-script-missing>input:not(:disabled),.modal-field--get-script-missing>select:not(:disabled),.modal-field--get-script-missing>textarea:not(:disabled){border-color:#d97706;box-shadow:0 0 0 2px color-mix(in srgb,#d97706 22%,transparent)}.paste-image-field--get-script-missing .paste-image-zone{border-color:#d97706;box-shadow:0 0 0 2px color-mix(in srgb,#d97706 22%,transparent)}.modal-field input:not([type=checkbox]):not([type=radio]),.modal-field select{width:100%;max-width:none}.user-course-picker-list{max-height:220px;overflow-y:auto;border:1px solid var(--border, #e4e4e7);border-radius:8px;padding:8px}.user-course-picker-list label.manual-checkbox{display:flex;flex-direction:row;align-items:flex-start;gap:8px;margin:6px 0;width:100%;color:var(--text);font-size:.875rem}.user-course-picker-list label.manual-checkbox input[type=checkbox]{flex-shrink:0;margin-top:.15em;width:auto;max-width:none}.user-course-picker-list label.manual-checkbox>span:last-child{flex:1 1 auto;min-width:0;line-height:1.35}.modal-field input.input-readonly,input.input-readonly{background:var(--bg);color:var(--muted);cursor:default}.modal-field--checkbox{flex-direction:row;align-items:center;gap:8px;color:var(--text)}.paste-image-field .paste-image-zone-label{font-size:.875rem;color:var(--muted);font-weight:500}.paste-image-stored-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.paste-image-stored-header .paste-image-zone-label{margin:0}.paste-image-stored-header--actions-only{justify-content:flex-end}.paste-image-remove-btn{flex-shrink:0;padding:6px;line-height:0;border-radius:var(--radius);color:var(--muted)}.paste-image-remove-btn:hover:not(:disabled){color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent)}.paste-image-remove-btn:disabled{opacity:.45}.paste-image-zone{border:1px dashed var(--border);border-radius:8px;padding:12px 14px;background:var(--bg);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.paste-image-zone:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 25%,transparent)}.paste-image-zone--busy{opacity:.85;pointer-events:none}.paste-image-zone-instructions{margin:0 0 8px;font-size:.875rem;color:var(--text)}.paste-image-zone-instructions kbd{font-size:.8em;padding:2px 6px;border-radius:4px;border:1px solid var(--border);background:var(--surface)}.paste-image-zone-hint{margin:0 0 10px;font-size:.8125rem}.paste-image-choose-btn{margin-top:4px}.paste-image-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.paste-image-preview-wrap{margin:0 0 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);overflow:hidden;max-height:280px;display:flex;align-items:center;justify-content:center}.paste-image-preview{display:block;max-width:100%;max-height:280px;width:auto;height:auto;object-fit:contain}.paste-image-preview-fallback{margin:0 0 10px;font-size:.8125rem}.paste-image-url-link{color:var(--primary);word-break:break-all}.paste-image-add-hint{margin:0;font-size:.8125rem;line-height:1.45}.modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg);border-radius:0 0 10px 10px}.chat-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));width:56px;height:56px;padding:0;border:none;border-radius:50%;background:var(--primary);color:#fff;box-shadow:0 4px 16px #0f172a2e;display:inline-flex;align-items:center;justify-content:center;z-index:45;cursor:pointer;transition:background .15s ease,transform .15s ease}.chat-fab:hover{background:var(--primary-hover);transform:scale(1.04)}.chat-fab:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.chat-drawer{position:fixed;right:0;top:0;height:100vh;width:min(420px,100vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:-8px 0 24px #0f172a14;display:flex;flex-direction:column;z-index:50}.chat-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.chat-body{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.chat-bubble{padding:10px 12px;border-radius:10px;background:var(--bg);font-size:.875rem}.chat-input{padding:12px;border-top:1px solid var(--border);display:flex;gap:8px}.chat-input input{flex:1;min-width:0;max-width:none}.matrix-grid{display:grid;gap:4px;overflow:auto;max-height:70vh}.matrix-row{display:grid;gap:4px;align-items:center}.user-add-panel{max-width:min(40rem,100%)}.user-add-intro{margin:0 0 8px;font-size:.8125rem;line-height:1.4}.user-add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-bottom:4px}@media(max-width:560px){.user-add-grid{grid-template-columns:1fr}}.user-add-grid label{max-width:none;margin:0}.user-add-grid label.user-add-field--span2{grid-column:1 / -1}.user-add-roles{grid-column:1 / -1;margin:4px 0 0;padding:10px 12px;border-radius:6px;background:var(--bg);border:1px solid var(--border);min-width:0}.user-add-roles legend.user-add-roles-label{padding:0}.user-add-roles-label{display:block;font-size:.8125rem;font-weight:600;color:var(--text);margin:0 0 8px}.user-add-role-options{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}.user-add-role-options label.manual-checkbox{margin:0;font-size:.875rem;color:var(--text)}.user-add-role-hint{margin:8px 0 0;font-size:.75rem;line-height:1.35;color:var(--muted)}.user-add-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.user-add-error{flex:1 1 100%;margin:0 0 4px;font-size:.8125rem}.user-add-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.activity-review-page{max-width:1100px;margin:0 auto;padding:0 16px 48px}.activity-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.activity-review-sub{margin:4px 0 0;font-size:.9375rem}.activity-review-banner{margin:12px 0;padding:10px 12px;border-radius:6px;font-size:.875rem}.activity-review-banner--ok{background:color-mix(in srgb,var(--success, #15803d) 12%,transparent);border:1px solid color-mix(in srgb,var(--success, #15803d) 35%,var(--border))}.activity-review-banner--err{background:color-mix(in srgb,var(--danger, #b91c1c) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger, #b91c1c) 30%,var(--border))}.activity-review-banner--info{background:var(--bg);border:1px solid var(--border)}.activity-review-marked-above-instructions{margin-top:16px;margin-bottom:14px}.activity-review-post-instructions{margin-top:16px;margin-bottom:24px}.activity-review-links-title{margin:0 0 10px;font-size:1rem}.activity-review-link-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.activity-review-open-link{display:inline-flex;align-items:center;gap:6px}.activity-review-image-link{display:block;width:fit-content;max-width:100%}.activity-review-original-image{display:block;max-width:100%;max-height:420px;width:auto;height:auto;border-radius:8px;border:1px solid var(--border);background:var(--bg)}.activity-review-accordions{margin:20px 0 8px}.activity-review-no-changes{margin-top:4px;margin-bottom:12px;display:flex;justify-content:flex-end}.activity-review-no-changes .btn{width:auto;max-width:none;min-height:auto;justify-content:flex-end;text-align:right;padding:6px 10px;font-size:.875rem;line-height:1.25}.review-accordion-row{display:block;margin-bottom:10px}.review-accordion-tab{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:12px 14px;border-radius:8px;border:2px solid var(--border);background:var(--panel, var(--bg));font-weight:600;font-size:.9375rem;cursor:pointer;color:var(--text)}.review-accordion-affordance{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--muted)}.review-accordion-tab--active{border-color:var(--primary, #2563eb);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary, #2563eb) 25%,transparent)}.review-accordion-tab--inactive{opacity:.72}.review-accordion-tab:disabled{opacity:.45;cursor:not-allowed}.review-accordion-panel{margin-top:8px}.activity-review-accordion-body{margin:0 0 12px;font-size:.875rem;line-height:1.45}.activity-review-instructions{background:#fef9c3;border-color:#facc15}.activity-review-instructions--video-banner{margin-bottom:6px}.activity-review-video-instructions-copy{margin:0}.activity-review-external-support-row{margin-bottom:10px;width:100%}.activity-review-instructions p{margin:0;color:#713f12;font-size:.9rem;line-height:1.5}.activity-review-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:200px}@media(max-width:900px){.activity-review-columns{grid-template-columns:1fr}}.activity-review-col-label{display:block;font-size:.8125rem;font-weight:600;margin-bottom:6px;color:var(--muted)}.activity-review-textarea{width:100%;min-height:280px;resize:vertical;font-family:ui-monospace,monospace;font-size:.8125rem;line-height:1.45;padding:10px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.activity-review-rich-readonly{min-height:280px;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:10px 12px;overflow:auto}.activity-review-editor--disabled .activity-review-textarea{opacity:.65}.activity-review-binary-note{margin-top:12px;font-size:.875rem}.activity-review-footer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.activity-review-footer .btn{min-height:2.5rem}.activity-review-file-input{flex:1 1 220px;min-width:160px;max-width:100%;font-size:.875rem}.activity-review-external-mark-wrap{margin-left:auto;flex:0 0 auto}.activity-review-upload-label{flex:0 0 auto;font-size:.875rem;color:var(--text)}
