.btn{min-height:2.25rem;font:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.4em;padding:.45rem .9rem;font-size:.9rem;font-weight:500;line-height:1.2;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s;display:inline-flex}.btn:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn--sm{border-radius:7px;min-height:1.875rem;padding:.3rem .65rem;font-size:.82rem}.btn--lg{border-radius:10px;min-height:2.625rem;padding:.6rem 1.15rem;font-size:.95rem}.btn--full{width:100%}.btn--solid.btn--primary{color:#fff;background:var(--btn-primary-solid);border-color:var(--btn-primary-solid);box-shadow:0 1px 2px color-mix(in srgb, var(--btn-primary-solid) 35%, transparent)}.btn--solid.btn--primary:hover:not(:disabled){background:var(--btn-primary-solid-hover);border-color:var(--btn-primary-solid-hover)}.btn--solid.btn--neutral{color:var(--text-h);background:var(--bg);border-color:var(--border);box-shadow:var(--shadow)}.btn--solid.btn--neutral:hover:not(:disabled){background:color-mix(in srgb, var(--border) 12%, var(--bg))}.btn--solid.btn--danger{color:#fff;background:var(--btn-danger-solid);border-color:var(--btn-danger-solid);box-shadow:0 1px 2px color-mix(in srgb, var(--btn-danger-solid) 35%, transparent)}.btn--solid.btn--danger:hover:not(:disabled){background:var(--btn-danger-solid-hover);border-color:var(--btn-danger-solid-hover)}.btn--solid.btn--success{color:#fff;background:var(--btn-success-solid);border-color:var(--btn-success-solid);box-shadow:0 1px 2px color-mix(in srgb, var(--btn-success-solid) 35%, transparent)}.btn--solid.btn--success:hover:not(:disabled){background:var(--btn-success-solid-hover);border-color:var(--btn-success-solid-hover)}.btn--solid.btn--warning{color:#fff;background:var(--btn-warning-solid);border-color:var(--btn-warning-solid);box-shadow:0 1px 2px color-mix(in srgb, var(--btn-warning-solid) 35%, transparent)}.btn--solid.btn--warning:hover:not(:disabled){background:var(--btn-warning-solid-hover);border-color:var(--btn-warning-solid-hover)}.btn--outline{background:0 0}.btn--outline.btn--primary{color:var(--btn-primary-fg);border-color:var(--btn-primary-border)}.btn--outline.btn--primary:hover:not(:disabled){background:var(--btn-primary-bg)}.btn--outline.btn--neutral{color:var(--text-h);border-color:var(--border)}.btn--outline.btn--neutral:hover:not(:disabled){background:color-mix(in srgb, var(--border) 14%, var(--bg))}.btn--outline.btn--danger{color:var(--btn-danger-fg);border-color:var(--btn-danger-border)}.btn--outline.btn--danger:hover:not(:disabled){background:var(--btn-danger-bg)}.btn--outline.btn--success{color:var(--btn-success-fg);border-color:var(--btn-success-border)}.btn--outline.btn--success:hover:not(:disabled){background:var(--btn-success-bg)}.btn--outline.btn--warning{color:var(--btn-warning-fg);border-color:var(--btn-warning-border)}.btn--outline.btn--warning:hover:not(:disabled){background:var(--btn-warning-bg)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost.btn--primary{color:var(--btn-primary-fg)}.btn--ghost.btn--primary:hover:not(:disabled){background:var(--btn-primary-bg)}.btn--ghost.btn--neutral{color:var(--text)}.btn--ghost.btn--neutral:hover:not(:disabled){color:var(--text-h);background:color-mix(in srgb, var(--border) 18%, var(--bg))}.btn--ghost.btn--danger{color:var(--btn-danger-fg)}.btn--ghost.btn--danger:hover:not(:disabled){background:var(--btn-danger-bg)}.btn--ghost.btn--success{color:var(--btn-success-fg)}.btn--ghost.btn--success:hover:not(:disabled){background:var(--btn-success-bg)}.btn--ghost.btn--warning{color:var(--btn-warning-fg)}.btn--ghost.btn--warning:hover:not(:disabled){background:var(--btn-warning-bg)}.btn--soft.btn--primary{color:var(--btn-primary-fg);background:var(--btn-primary-bg);border-color:color-mix(in srgb, var(--btn-primary-border) 70%, transparent)}.btn--soft.btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--btn-primary-fg) 16%, var(--bg))}.btn--soft.btn--neutral{color:var(--text-h);background:color-mix(in srgb, var(--border) 12%, var(--bg));border-color:var(--border)}.btn--soft.btn--neutral:hover:not(:disabled){background:color-mix(in srgb, var(--border) 22%, var(--bg))}.btn--soft.btn--danger{color:var(--btn-danger-fg);background:var(--btn-danger-bg);border-color:var(--btn-danger-border)}.btn--soft.btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--btn-danger-fg) 12%, var(--bg))}.btn--soft.btn--success{color:var(--btn-success-fg);background:var(--btn-success-bg);border-color:var(--btn-success-border)}.btn--soft.btn--success:hover:not(:disabled){background:color-mix(in srgb, var(--btn-success-fg) 12%, var(--bg))}.btn--soft.btn--warning{color:var(--btn-warning-fg);background:var(--btn-warning-bg);border-color:var(--btn-warning-border)}.btn--soft.btn--warning:hover:not(:disabled){background:color-mix(in srgb, var(--btn-warning-fg) 12%, var(--bg))}.btn--link{min-height:auto;font-weight:inherit;background:0 0;border:0;border-radius:0;padding:0}.btn--link.btn--primary{color:var(--accent)}.btn--link.btn--neutral{color:var(--text)}.btn--link.btn--danger{color:var(--btn-danger-fg)}.btn--link.btn--success{color:var(--btn-success-fg)}.btn--link.btn--warning{color:var(--btn-warning-fg)}.btn--link:hover:not(:disabled){text-underline-offset:.15em;text-decoration:underline}.btn--link:active:not(:disabled){transform:none}.btn--unstyled{min-height:unset;padding:unset;border:unset;border-radius:unset;background:unset;color:inherit;font-weight:inherit;font-size:inherit;line-height:inherit;box-shadow:none;gap:unset;white-space:normal}.btn--unstyled:hover:not(:disabled),.btn--unstyled:active:not(:disabled){box-shadow:none;transform:none}.btn--unstyled:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:2px}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--btn-primary-fg:#7a1fd4;--btn-primary-bg:#aa3bff1a;--btn-primary-border:#aa3bff73;--btn-primary-solid:#9b30ff;--btn-primary-solid-hover:#8729db;--btn-danger-fg:#b42318;--btn-danger-bg:#fff5f5;--btn-danger-border:#fecdca;--btn-danger-solid:#d92d20;--btn-danger-solid-hover:#b42318;--btn-success-fg:#067647;--btn-success-bg:#ecfdf3;--btn-success-border:#abefc6;--btn-success-solid:#079455;--btn-success-solid-hover:#067647;--btn-warning-fg:#b54708;--btn-warning-bg:#fffaeb;--btn-warning-border:#fedf89;--btn-warning-solid:#dc6803;--btn-warning-solid-hover:#b54708;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--btn-primary-fg:#d8b4fe;--btn-primary-bg:#c084fc24;--btn-primary-border:#c084fc73;--btn-primary-solid:#a855f7;--btn-primary-solid-hover:#9333ea;--btn-danger-fg:#fda29b;--btn-danger-bg:#b4231829;--btn-danger-border:#fecdca40;--btn-danger-solid:#f04438;--btn-danger-solid-hover:#d92d20;--btn-success-fg:#6ce9a6;--btn-success-bg:#0676472e;--btn-success-border:#abefc633;--btn-success-solid:#12b76a;--btn-success-solid-hover:#079455;--btn-warning-fg:#fec84b;--btn-warning-bg:#b547082e;--btn-warning-border:#fedf8933;--btn-warning-solid:#f79009;--btn-warning-solid-hover:#dc6803}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:left;box-sizing:border-box;border-inline:none;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0;display:flex}body{margin:0;overflow-x:hidden}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.page,.auth-page{box-sizing:border-box;text-align:left;width:100%;min-height:100svh;padding:32px 24px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header-start{flex-direction:column;gap:8px;min-width:0;display:flex}.page-header-start .page-title,.page-header h1{margin:0;font-size:32px}.app-brand{align-items:center;width:fit-content;line-height:0;text-decoration:none;display:inline-flex}.app-brand-logo{width:auto;height:var(--logo-height,2rem);object-fit:contain;max-width:100%;display:block}.app-brand--wordmark .app-brand-logo{max-width:min(200px,48vw)}.app-brand-logo--theme-dark{display:none}@media (prefers-color-scheme:dark){.app-brand-logo--theme-light{display:none}.app-brand-logo--theme-dark{display:block}}.page-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-actions a,.admin-nav-link{font:inherit}.page-actions a,.auth-footer a{color:var(--accent)}.auth-page{place-items:center;display:grid}.auth-shell{justify-items:center;gap:20px;width:min(100%,420px);display:grid}.auth-brand{margin-bottom:4px}.auth-brand .app-brand-logo{max-width:min(220px,68vw)}.auth-card{border:1px solid var(--border);width:min(100%,420px);box-shadow:var(--shadow);border-radius:16px;gap:16px;padding:24px;display:grid}.auth-card h1{margin:0;font-size:28px}.auth-card label{color:var(--text-h);gap:8px;display:grid}.auth-card input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:10px 12px}.auth-footer,.status-message,.form-error,.form-success,.eyebrow{margin:0}.form-error{color:#dc2626}.form-success{color:#16a34a}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:14px}.admin-nav{border:1px solid var(--border);background:color-mix(in srgb, var(--border) 10%, var(--bg));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--bg) 40%, transparent);border-radius:12px;gap:4px;margin-bottom:24px;padding:4px;display:inline-flex}.admin-nav-link{min-width:5.5rem;color:var(--text);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:8px 16px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.admin-nav-link:hover{color:var(--text-h);background:color-mix(in srgb, var(--accent) 6%, var(--bg))}.admin-nav-link:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.admin-nav-link.is-active{color:var(--text-h);border-color:color-mix(in srgb, var(--accent) 30%, var(--border));background:var(--bg);box-shadow:var(--shadow)}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-files{gap:24px;display:grid}.admin-upload-card{border:1px solid var(--border);border-radius:16px;gap:12px;padding:20px;display:grid}.admin-upload-card h2{margin:0;font-size:20px}.admin-upload-hint{color:var(--text);margin:0}.admin-upload-label{cursor:pointer;align-items:center;gap:12px;display:inline-flex}.admin-upload-label input[type=file]{max-width:280px}.admin-materials{gap:24px;display:grid}.admin-page--materials .page-header,.admin-page--materials .admin-nav,.admin-page--materials .page-content{max-width:none}.admin-page--materials .page-content{flex-direction:column;flex:1;min-height:0;display:flex}.admin-page--materials{flex-direction:column;height:100svh;padding-block:20px;display:flex;overflow:hidden}.admin-page--materials .page-header,.admin-page--materials .admin-nav{flex-shrink:0;margin-bottom:16px}.admin-materials-workspace{border:1px solid var(--border);background:var(--bg);min-height:0;box-shadow:var(--shadow);border-radius:16px;flex:1;grid-template-columns:minmax(220px,280px) minmax(0,1fr);display:grid;overflow:hidden}.admin-materials-sidebar{border-right:1px solid var(--border);background:color-mix(in srgb, var(--border) 8%, var(--bg));flex-direction:column;min-height:0;display:flex}.admin-materials-sidebar-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:16px;display:flex}.admin-materials-sidebar-header h2{text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin:0;font-size:.95rem;font-weight:600}.admin-materials-sidebar-count{background:color-mix(in srgb, var(--accent) 12%, var(--bg));min-width:1.5rem;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:.8rem;font-weight:600;display:inline-flex}.admin-materials-sidebar-empty{color:var(--text);margin:0;padding:16px;font-size:.9rem;line-height:1.5}.admin-materials-list{gap:4px;min-height:0;margin:0;padding:8px;list-style:none;display:grid;overflow-y:auto}.admin-materials-list-item{width:100%;color:var(--text-h);cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;gap:4px;padding:10px 12px;transition:background .15s,border-color .15s;display:grid}.admin-materials-list-item:hover{background:color-mix(in srgb, var(--accent) 6%, var(--bg))}.admin-materials-list-item--selected{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg))}.admin-materials-list-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1.3;overflow:hidden}.admin-materials-list-meta{color:var(--text);font-size:.8rem}.admin-materials-editor-pane{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.admin-materials-editor-empty{text-align:center;color:var(--text);flex:1;place-content:center;gap:8px;padding:32px;display:grid}.admin-materials-editor-empty h2{color:var(--text-h);margin:0}.admin-materials-editor-header{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--border) 6%, var(--bg));padding:12px 16px}.admin-materials-editor-title h2{margin:0;font-size:1.1rem;line-height:1.3}.admin-materials-editor-meta{color:var(--text);margin:4px 0 0;font-size:.85rem}.admin-materials-editor-header .material-slide-controls{flex-shrink:0}.admin-materials-editor-body{flex:1;min-height:0;padding:12px 16px 16px;display:flex;overflow:hidden}.admin-materials-editor-body .page-markup-editor{flex:1;grid-template:"toolbar toolbar""canvas panel"minmax(0,1fr)/minmax(0,1fr) minmax(220px,280px);gap:10px 12px;width:100%;min-width:0;min-height:0;display:grid}.admin-materials-editor-body .page-markup-toolbar{border:1px solid var(--border);background:color-mix(in srgb, var(--border) 6%, var(--bg));border-radius:10px;grid-area:toolbar;align-items:center;padding:8px 12px}.admin-materials-editor-body .page-markup-canvas{border-radius:10px;grid-area:canvas;height:100%;min-height:0}.admin-materials-editor-body .page-markup-selection-panel{align-self:start}.admin-materials-editor-body .page-markup-editor:not(:has(.page-markup-selection-panel)){grid-template-columns:minmax(0,1fr);grid-template-areas:"toolbar""canvas"}@media (width<=900px){.admin-page--materials{height:auto;overflow:visible}.admin-materials-workspace{grid-template-rows:auto minmax(480px,70svh);grid-template-columns:minmax(0,1fr)}.admin-materials-sidebar{border-right:0;border-bottom:1px solid var(--border);max-height:200px}.admin-materials-editor-header{flex-direction:column;align-items:stretch}.admin-materials-editor-body .page-markup-editor{grid-template-columns:minmax(0,1fr);grid-template-areas:"toolbar""canvas""panel"}}.admin-materials-layout{gap:24px;display:grid}@media (width>=960px){.admin-materials-layout{grid-template-columns:minmax(280px,1fr) minmax(0,1.4fr);align-items:start}}.admin-form{gap:12px;display:grid}.admin-form label{gap:8px;display:grid}.admin-form input,.admin-form select{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:10px 12px}.admin-row-selected{background:color-mix(in srgb, var(--accent) 8%, transparent)}.admin-material-detail{border:1px solid var(--border);border-radius:16px;gap:16px;padding:20px;display:grid}.admin-material-detail h2,.admin-material-detail h3{margin:0}.admin-material-preview{border:1px solid var(--border);background:#111;border-radius:12px;overflow:auto}.admin-material-preview img{max-width:100%;height:auto;display:block}.page-markup-editor{gap:12px;display:grid}.page-markup-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.page-markup-add-button{width:40px;padding:0;font-size:1.4rem;font-weight:600;line-height:1}.page-markup-toolbar .btn.is-active,.page-markup-add-button.is-active,.page-markup-type-toggle .btn.is-active{border-color:var(--accent-border);background:var(--accent-bg);color:var(--text-h)}.page-markup-type-toggle{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.page-markup-type-toggle .btn{border:0;border-right:1px solid var(--border);border-radius:0}.page-markup-type-toggle .btn:last-child{border-right:0}.page-markup-toolbar-hint{color:var(--text);font-size:.9rem}.page-markup-pending-form{border:1px solid var(--border);border:1px solid var(--border);padding:12px;border-radius:10px;gap:10px;padding:12px;display:grid}.page-markup-pending-popover{border:1px solid var(--border);background:var(--bg);min-width:min(280px,100vw - 24px);max-width:min(360px,100vw - 24px);box-shadow:var(--shadow);border-radius:12px;gap:10px;padding:12px;display:grid}.page-markup-pending-popover label{gap:8px;font-size:.9rem;display:grid}.page-markup-pending-popover input,.page-markup-pending-popover select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:10px 12px}.page-markup-type-toggle--compact .btn{padding:6px 10px;font-size:.85rem}.page-markup-pending-form label{gap:8px;display:grid}.page-markup-pending-form input,.page-markup-pending-form select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:10px 12px}.page-markup-pending-actions,.page-markup-selection-actions{flex-wrap:wrap;gap:8px;display:flex}.page-markup-canvas{border:1px solid var(--border);touch-action:pan-x pan-y pinch-zoom;-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#111;border-radius:12px;position:relative;overflow:auto}.page-markup-canvas.is-drawing{cursor:crosshair;touch-action:none}.page-markup-canvas--zoomable{text-align:center;touch-action:pan-x pan-y}.page-markup-canvas--zoomable.is-pinching{touch-action:none;overflow-anchor:none}.page-markup-canvas--zoomable.is-pinching .page-markup-page--zoomable{will-change:width}.page-markup-page{vertical-align:top;line-height:0;position:relative}.page-markup-page--zoomable{text-align:left;max-width:none;display:inline-block}.page-markup-canvas .page-background-image,.page-markup-canvas img{pointer-events:none;height:auto;display:block}.page-markup-canvas .page-background-image{width:auto;max-width:none}.page-background-stack{width:100%;display:block;position:relative}.page-background-stack .page-background-image--placeholder{width:100%;height:auto;display:block}.page-background-stack .page-background-embed{pointer-events:none;border:0;width:100%;height:auto;display:block}.page-background-stack .page-background-canvas:not(.page-background-canvas--ready){opacity:0;pointer-events:none;width:100%;height:auto;position:absolute;top:0;left:0}.page-background-stack .page-background-canvas--ready{width:100%;height:auto;display:block;position:relative}.page-background-stack .page-background-image:not(.page-background-image--placeholder){width:100%;height:auto;display:block}.page-markup-canvas img:not(.page-background-image){width:100%}.page-markup-canvas .page-background-canvas{pointer-events:none;max-width:none;display:block}.page-markup-overlay{z-index:2;box-sizing:border-box;border:2px solid var(--accent-border);background:var(--accent-bg);color:var(--text-h);padding:4px;position:absolute;overflow:hidden}.page-markup-overlay--text{cursor:move}.page-markup-overlay--audio{cursor:move;border-color:color-mix(in srgb, #7c3aed 70%, var(--accent-border));background:color-mix(in srgb, #7c3aed 16%, var(--accent-bg))}.page-markup-overlay--image{cursor:move;border-color:color-mix(in srgb, #059669 70%, var(--accent-border));background:color-mix(in srgb, #059669 16%, var(--accent-bg))}.page-markup-overlay--youtube{cursor:move;border-color:color-mix(in srgb, #dc2626 70%, var(--accent-border));background:color-mix(in srgb, #dc2626 16%, var(--accent-bg))}.page-markup-overlay--link{cursor:move;border-color:color-mix(in srgb, #2563eb 70%, var(--accent-border));background:color-mix(in srgb, #2563eb 16%, var(--accent-bg))}.page-markup-overlay--text.is-readonly,.page-markup-overlay--audio.is-readonly,.page-markup-overlay--image.is-readonly,.page-markup-overlay--youtube.is-readonly,.page-markup-overlay--link.is-readonly{pointer-events:none;cursor:default}.page-markup-overlay--text.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent)}.page-markup-overlay--audio.is-selected{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed59}.page-markup-overlay--image.is-selected{border-color:#059669;box-shadow:0 0 0 2px #05966959}.page-markup-overlay--youtube.is-selected{border-color:#dc2626;box-shadow:0 0 0 2px #dc262659}.page-markup-overlay--link.is-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb59}.page-markup-overlay--draft,.page-markup-overlay--pending{pointer-events:none}.page-markup-overlay--draft{background:color-mix(in srgb, var(--accent) 18%, transparent);border-style:dashed}.page-markup-overlay--pending{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 24%, transparent)}.page-markup-overlay-label{text-overflow:ellipsis;pointer-events:none;width:100%;height:100%;font-size:clamp(10px,1.4vw,14px);line-height:1.2;display:block;overflow:hidden}.page-markup-overlay--has-audio-player{background:#1111118c;padding:4px}.page-markup-overlay--has-image-preview,.page-markup-overlay--has-youtube-player,.page-markup-overlay--has-youtube-thumbnail{background:#000;padding:0;overflow:hidden}.page-markup-overlay--has-text-bubble,.page-markup-overlay--has-link-card{z-index:2;overflow:visible}.annotation-floating-popover{pointer-events:auto;max-width:calc(100vw - 24px)}.annotation-text-bubble{background:var(--bg);border:1px solid var(--border);min-width:min(180px,70vw);max-width:min(320px,100vw - 24px);box-shadow:var(--shadow);pointer-events:none;z-index:1;border-radius:12px;padding:10px 12px;position:absolute;left:50%}.annotation-text-bubble--floating{pointer-events:auto;min-width:min(220px,100vw - 24px);max-width:min(320px,100vw - 24px);position:static;left:auto}.annotation-text-bubble--popover{position:absolute}.annotation-text-bubble--above{bottom:calc(100% + 10px);transform:translate(-50%)}.annotation-text-bubble--above:after{content:"";background:var(--bg);border-right:1px solid var(--border);border-bottom:1px solid var(--border);width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.annotation-text-bubble--below{top:calc(100% + 10px);transform:translate(-50%)}.annotation-text-bubble--below:after{content:"";background:var(--bg);border-left:1px solid var(--border);border-top:1px solid var(--border);width:12px;height:12px;position:absolute;top:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.annotation-text-bubble p{white-space:pre-wrap;color:var(--text-h);text-align:left;margin:0;font-size:.9rem;line-height:1.4}.annotation-link-card{border:1px solid var(--border);background:var(--bg);width:min(320px,100vw - 24px);max-height:min(70vh,420px);box-shadow:var(--shadow);text-align:left;color:inherit;font:inherit;border-radius:12px;gap:0;padding:0;display:grid;overflow:hidden}.annotation-link-card--floating{width:min(320px,100vw - 24px);max-width:100%;position:static}.annotation-link-card--inline{width:100%;max-width:420px;position:static}.annotation-link-card--popover{z-index:1;position:absolute;left:50%}.annotation-link-card--popover.annotation-link-card--above{bottom:calc(100% + 10px);transform:translate(-50%)}.annotation-link-card--popover.annotation-link-card--below{top:calc(100% + 10px);transform:translate(-50%)}.annotation-link-card--inline{max-width:420px}.btn.annotation-link-card{cursor:pointer}.btn.annotation-link-card:hover{border-color:color-mix(in srgb, #2563eb 45%, var(--border))}.annotation-link-card-image{background:color-mix(in srgb, var(--text) 8%, transparent);justify-content:center;align-items:center;max-height:200px;display:flex;overflow:hidden}.annotation-link-card-image img{object-fit:contain;width:100%;height:auto;max-height:200px;display:block}.annotation-link-card-body{gap:4px;padding:10px 12px;display:grid;overflow-y:auto}.annotation-link-card-site{color:var(--text);text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:.75rem}.annotation-link-card-title{color:var(--text-h);overflow-wrap:anywhere;margin:0;font-size:.95rem;font-weight:600;line-height:1.3}.annotation-link-card-description{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.85rem;line-height:1.35}.annotation-youtube-thumbnail{background:#000;position:absolute;inset:0;overflow:hidden}.annotation-youtube-thumbnail img{object-fit:contain;object-position:center;pointer-events:none;width:100%;max-width:100%;height:100%;max-height:100%;display:block;position:absolute;inset:0}.annotation-image-preview{background:#000;position:absolute;inset:0;overflow:hidden}.annotation-image-preview img{object-fit:contain;object-position:center;pointer-events:none;width:100%;max-width:100%;height:100%;max-height:100%;display:block;position:absolute;inset:0}.annotation-asset-field{gap:8px;display:grid}.annotation-asset-field label{gap:6px;display:grid}.annotation-asset-upload{align-items:center;gap:8px;display:flex}.annotation-asset-upload-input{display:none}.annotation-youtube-play{cursor:pointer;background:#00000047;border:none;place-items:center;padding:0;display:grid;position:absolute;inset:0}.annotation-youtube-play:hover{background:#0006}.annotation-youtube-play svg{fill:#fff;filter:drop-shadow(0 2px 8px #00000073);width:42%;max-width:56px;height:42%;max-height:56px}.youtube-player-modal{background:#000;border:none;border-radius:12px;width:min(90vw,960px);max-width:calc(100% - 32px);padding:0;overflow:hidden}.youtube-player-modal::backdrop{background:#0f172a8c}.youtube-player-modal-content{aspect-ratio:16/9;width:100%;position:relative}.youtube-player-modal-content .annotation-youtube-player{position:absolute;inset:0}.youtube-player-modal-close{z-index:1;color:#fff;cursor:pointer;background:#000000a6;border:none;border-radius:999px;place-items:center;width:32px;height:32px;padding:0;font-size:22px;line-height:1;display:grid;position:absolute;top:8px;right:8px}.youtube-player-modal-close:hover{background:#000000d1}.youtube-player-modal .annotation-youtube-player,.youtube-player-modal .annotation-youtube-player-aspect{width:100%;height:100%}.annotation-youtube-player{background:#000;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:absolute;inset:0;overflow:hidden}.annotation-youtube-player-aspect{aspect-ratio:16/9;flex-shrink:0;width:auto;max-width:100%;height:100%;max-height:100%}.annotation-youtube-player iframe{border:0;width:100%;height:100%;display:block}.annotation-audio-player{align-items:center;gap:6px;width:100%;min-width:0;height:100%;min-height:0;display:flex}.annotation-audio-element{display:none}.annotation-audio-play{color:#ffffffeb;cursor:pointer;background:#ffffff38;border:1px solid #ffffff59;border-radius:999px;flex:none;place-items:center;width:clamp(22px,28%,34px);height:clamp(22px,70%,34px);padding:0;display:grid}.annotation-audio-play:hover{background:#ffffff52}.annotation-audio-play svg{fill:currentColor;width:42%;height:42%}.annotation-audio-speed{color:#ffffffeb;cursor:pointer;background:#ffffff38;border:1px solid #ffffff59;border-radius:999px;flex:none;min-width:clamp(26px,22%,34px);height:clamp(22px,70%,34px);padding:0 4px;font-size:clamp(9px,2.8vw,11px);font-weight:600;line-height:1}.annotation-audio-speed:hover{background:#ffffff52}.annotation-audio-track{flex-direction:column;flex:auto;justify-content:center;gap:4px;min-width:0;height:100%;display:flex}.annotation-audio-waveform{flex:auto;align-items:flex-end;gap:1px;min-height:0;display:flex}.annotation-audio-waveform--seekable{cursor:pointer;touch-action:none}.annotation-audio-waveform-bar{background:#ffffff47;border-radius:1px;flex:1 1 0;min-width:0}.annotation-audio-waveform-bar.is-played{background:#ffffffb8}.annotation-audio-scrubber{cursor:pointer;touch-action:none;background:#ffffff38;border-radius:999px;flex:none;height:5px;position:relative}.annotation-audio-scrubber-fill{border-radius:inherit;pointer-events:none;background:#ffffff94;height:100%}.annotation-audio-global-element{display:none}.mobile-annotation-audio-bar{top:calc(var(--mobile-audio-bar-top-offset,0px) + env(safe-area-inset-top,0px));z-index:110;background:color-mix(in srgb, var(--bg) 96%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);box-shadow:var(--shadow);padding:10px 12px;position:fixed;left:0;right:0}.mobile-annotation-audio-bar-inner{align-items:center;gap:10px;max-width:720px;margin:0 auto;display:flex}.mobile-annotation-audio-play{border:1px solid var(--border);background:var(--accent-bg);width:40px;height:40px;color:var(--text-h);cursor:pointer;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.mobile-annotation-audio-play svg{fill:currentColor;width:18px;height:18px}.mobile-annotation-audio-main{flex-direction:column;flex:auto;justify-content:center;gap:6px;min-width:0;display:flex}.mobile-annotation-audio-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text-h);margin:0;font-size:.875rem;line-height:1.2;overflow:hidden}.mobile-annotation-audio-waveform{align-items:flex-end;gap:1px;height:36px;display:flex}.mobile-annotation-audio-waveform--seekable{cursor:pointer;touch-action:none}.mobile-annotation-audio-waveform-bar{background:color-mix(in srgb, var(--text) 28%, transparent);border-radius:1px;flex:1 1 0;min-width:0}.mobile-annotation-audio-waveform-bar.is-played{background:var(--accent)}.mobile-annotation-audio-scrubber{background:color-mix(in srgb, var(--text) 18%, transparent);cursor:pointer;touch-action:none;border-radius:999px;height:8px;position:relative}.mobile-annotation-audio-scrubber-fill{border-radius:inherit;background:var(--accent);pointer-events:none;height:100%}.mobile-annotation-audio-speed{border:1px solid var(--border);background:var(--surface);min-width:40px;height:36px;color:var(--text);cursor:pointer;border-radius:999px;flex:none;padding:0 8px;font-size:12px;font-weight:600;line-height:1}.mobile-annotation-audio-close{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.mobile-annotation-audio-close svg{fill:currentColor;width:18px;height:18px}.page-markup-overlay-label--audio-playing{font-size:.75rem}.page-markup-resize-handle{border:2px solid var(--accent);background:var(--bg);cursor:pointer;border-radius:2px;width:10px;height:10px;padding:0;position:absolute}.page-markup-resize-handle--nw{cursor:nwse-resize;top:-6px;left:-6px}.page-markup-resize-handle--ne{cursor:nesw-resize;top:-6px;right:-6px}.page-markup-resize-handle--sw{cursor:nesw-resize;bottom:-6px;left:-6px}.page-markup-resize-handle--se{cursor:nwse-resize;bottom:-6px;right:-6px}.page-markup-selection-panel{border:1px solid var(--border);border-radius:10px;gap:10px;min-width:0;padding:12px;display:grid}.page-markup-selection-panel h3{margin:0;font-size:1rem}.page-markup-coords{color:var(--text);margin:0;font-size:.9rem}.page-markup-selection-panel label{gap:8px;display:grid}.page-markup-selection-panel input,.page-markup-selection-panel select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:10px 12px}.page-markup-selection-panel .annotation-asset-upload{flex-wrap:wrap}.page-markup-selection-panel .annotation-link-card--inline{width:100%;max-width:100%}.page-markup-selection-panel .page-markup-toolbar-hint{overflow-wrap:anywhere}.page-markup-viewer{gap:12px;width:100%;max-width:960px;margin-inline:auto;display:grid}.page-markup-canvas--viewer{touch-action:pan-x pan-y;-webkit-user-select:auto;user-select:auto;overscroll-behavior:contain}.page-markup-overlay--interactive{cursor:pointer;font:inherit;text-align:left;touch-action:none;padding:0}.page-markup-viewer-panel{border:1px solid var(--border);border-radius:10px;gap:10px;padding:12px;display:grid}.page-markup-viewer-panel h3{margin:0;font-size:1rem}.page-markup-viewer-text{white-space:pre-wrap;margin:0}.material-view{gap:16px;display:grid}.material-view-description{color:var(--text);margin:0}.material-screen{--material-bottom-bar-height:76px;--material-header-height:72px;--material-bottom-bar-effective:0px;flex-direction:column;min-height:100svh;padding-bottom:0;display:flex}.material-screen--with-bottom-bar{--material-bottom-bar-effective:calc(var(--material-bottom-bar-height) + env(safe-area-inset-bottom,0px));padding-bottom:var(--material-bottom-bar-effective)}.material-screen-header{flex-shrink:0}.material-screen-header-start{flex-direction:row;flex:1;align-items:center;gap:10px;min-width:0}.material-screen-header-start .app-brand{flex-shrink:0}.material-screen-header-start .app-brand-logo{--logo-height:22px}.material-screen-header-start .material-screen-title{font-size:clamp(20px,4vw,28px)}.material-screen-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.material-screen-body{flex:1;min-height:0}@media (width>=769px){.page.material-screen{--material-page-chrome:7rem;--material-canvas-max-height:calc(100svh - var(--material-header-height) - var(--material-bottom-bar-effective) - var(--material-page-chrome));box-sizing:border-box;height:100svh;max-height:100svh;overflow:hidden}.material-screen .page-header{margin-bottom:16px}.material-screen-body.material-view{flex-direction:column;gap:0;height:100%;min-height:0;display:flex;overflow:hidden}.material-screen .page-markup-viewer{flex-direction:column;flex:1;justify-content:flex-start;align-items:stretch;gap:0;min-height:0;display:flex;overflow:hidden}.material-screen .page-markup-canvas--viewer{width:100%;max-width:100%;min-height:0;max-height:var(--material-canvas-max-height);touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:12px;flex:1 1 0;margin:0 auto;position:relative;overflow:auto}.material-screen .page-markup-canvas--viewer .page-background-image,.material-screen .page-markup-canvas--viewer .page-background-canvas,.material-screen .page-markup-canvas--viewer .page-background-embed{max-width:none;max-height:none;display:block}}.material-bottom-bar{z-index:100;background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border)}.material-bottom-bar--fixed{padding-bottom:env(safe-area-inset-bottom,0px);position:fixed;bottom:0;left:0;right:0}.material-bottom-bar--embedded{border-radius:0 0 16px 16px;margin-top:8px;position:sticky;bottom:0}.material-bottom-bar-inner{width:min(100%,960px);min-height:var(--material-bottom-bar-height);box-sizing:border-box;justify-content:center;align-items:center;gap:8px;margin:0 auto;padding:8px 12px;display:flex}.material-slide-controls{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;width:100%;display:grid}.material-slide-nav-button{border:1px solid var(--border);background:var(--bg);min-width:44px;min-height:44px;color:var(--text-h);cursor:pointer;font:inherit;touch-action:manipulation;border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:10px 14px;display:inline-flex}.material-slide-nav-button:disabled{opacity:.4;cursor:not-allowed}.material-slide-nav-icon{font-size:1.35rem;line-height:1}.material-slide-nav-group{align-items:center;gap:6px;min-width:0;display:flex}.material-slide-nav-group--prev{justify-self:start}.material-slide-nav-group--next{justify-self:end}.material-slide-nav-button--edge{min-width:40px;padding-inline:10px}.material-slide-status{justify-content:center;min-width:0;display:flex}.material-slide-page-picker{min-width:0;color:var(--text);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:.875rem;display:inline-flex}.material-slide-page-picker-label{color:var(--text)}.material-slide-page-input{border:1px solid var(--border);background:var(--bg);min-width:3ch;max-width:8ch;color:var(--text-h);font:inherit;font-variant-numeric:tabular-nums;text-align:center;border-radius:8px;padding:6px 8px}.material-slide-page-input:focus{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);outline-offset:1px}.material-slide-page-input:disabled{opacity:.4;cursor:not-allowed}.material-slide-counter{color:var(--text);white-space:nowrap}.admin-material-editor{flex-direction:column;display:flex}.admin-material-page-actions{justify-content:flex-end;display:flex}.file-page-picker{gap:12px;display:grid}.file-page-picker-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.file-page-picker-count{color:var(--text);font-size:14px}.file-page-picker-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.file-page-picker-item{border:2px solid var(--border);background:var(--bg);height:fit-content;color:var(--text-h);cursor:pointer;text-align:center;border-radius:12px;gap:8px;padding:8px;display:grid}.file-page-picker-item img{aspect-ratio:3/4;object-fit:contain;background:color-mix(in srgb, var(--border) 30%, transparent);border-radius:8px;width:100%;height:auto;display:block}.file-page-picker-item .page-background-canvas{background:#fff;border-radius:8px;width:100%;height:auto;display:block}.file-page-picker-item-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.file-page-picker-item:disabled{opacity:.6;cursor:not-allowed}.admin-add-page-form{grid-template-columns:minmax(0,1fr) auto;align-items:end}@media (width<=768px){.page.material-screen{--material-header-height:48px;--mobile-audio-bar-top-offset:var(--material-header-height);--material-canvas-max-height:calc(100svh - var(--material-header-height) - var(--material-bottom-bar-effective) - env(safe-area-inset-top,0px));width:100%;max-width:100vw;height:100svh;min-height:0;max-height:100svh;padding:0;padding-top:env(safe-area-inset-top,0px);overscroll-behavior:none;overflow:hidden}.page.material-screen.material-screen--with-bottom-bar{padding-bottom:0}.material-screen .page-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;max-width:none;margin:0;padding:8px 12px}.material-screen-header h1,.material-screen-title{flex:1;margin:0;font-size:1rem;line-height:1.25}.material-screen .page-actions{flex-shrink:0;gap:0}.material-screen-back{white-space:nowrap;font-size:.875rem}.material-screen .page-content{max-width:none;margin:0;padding:0}.material-screen-body.material-view{flex-direction:column;gap:0;height:100%;display:flex;overflow:hidden}.material-view-description{display:none}.material-screen .page-markup-viewer{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:0;min-height:0;display:flex;overflow:hidden}.material-screen .page-markup-canvas--viewer{width:100%;max-width:100%;min-height:0;max-height:var(--material-canvas-max-height);touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#111;border:0;border-radius:0;flex:1 1 0;margin:0 auto;position:relative;overflow:auto}.material-screen .page-markup-canvas--viewer .page-background-image,.material-screen .page-markup-canvas--viewer .page-background-canvas,.material-screen .page-markup-canvas--viewer .page-background-embed{max-width:none;max-height:none;display:block}.material-screen .page-markup-toolbar-hint{display:none}}@media (width<=520px){.material-slide-nav-label{display:none}.material-slide-nav-button{padding:10px}}.materials-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.materials-list-link{border:1px solid var(--border);color:inherit;background:var(--bg);border-radius:10px;gap:4px;padding:14px 16px;text-decoration:none;display:grid}.materials-list-link:hover{border-color:var(--accent-border);background:var(--accent-bg)}.materials-list-title{color:var(--text-h);font-weight:600}.materials-list-description{color:var(--text)}.materials-list-meta{color:var(--text);font-size:.9rem}.admin-material-actions{gap:8px;display:flex}.admin-annotation-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-annotation-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.admin-material-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-material-detail-header h2{margin:0}.confirm-dialog{border:1px solid var(--border);border-radius:16px;width:calc(100% - 32px);max-width:480px;padding:0}.confirm-dialog::backdrop{background:#0f172a73}.confirm-dialog-content{gap:16px;margin:0;padding:20px;display:grid}.confirm-dialog-content h3{margin:0;font-size:18px}.confirm-dialog-body{gap:12px;display:grid}.confirm-dialog-usage ul{margin:8px 0 0;padding-left:20px}.confirm-dialog-actions{justify-content:flex-end;gap:8px;display:flex}
