@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.4;font-weight:450;color:#1e293b;background-color:#f7f9fc;--app-border-color: #e2e8f0;--app-border-hover: #cbd5e1;--app-surface-bg: #ffffff;--app-surface-hover: #f8fafc;--app-surface-secondary: #f1f5f9;--app-main-bg: #f8fafc;--app-background: #f7f9fc;--app-text-primary: #1e293b;--app-text-secondary: #64748b;--app-text-tertiary: #94a3b8;--app-text-heading: #0f172a;--app-text-muted: #475569;--app-color-primary: #3498db;--app-color-primary-light: #e6f7ff;--app-color-primary-border: rgba(52, 152, 219, .4);--app-color-primary-glow: rgba(52, 152, 219, .1);--app-color-primary-glow-strong: rgba(52, 152, 219, .25);--app-color-success: #10b981;--app-color-success-light: #ecfdf5;--app-color-success-border: #bbf7d0;--app-color-success-text: #16a34a;--app-color-danger: #ff4757;--app-color-danger-light: #fef2f2;--app-color-danger-border: #fecaca;--app-color-danger-text: #dc2626;--app-color-error: #ff4444;--app-color-warning: #f59e0b;--app-color-warning-light: #fefce8;--app-color-warning-border: #fef08a;--app-color-warning-text: #d97706;--app-color-info: #3b82f6;--app-color-info-light: #eff6ff;--app-color-info-border: #dbeafe;--app-color-amber: #e67e22;--font-size-hero: 1.75rem;--font-size-h1: 1.375rem;--font-size-h2: 1.125rem;--font-size-h3: 1rem;--font-size-base: .875rem;--font-size-sm: .75rem;--font-size-xs: .6875rem;--font-family-display: "Inter", sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-size:var(--font-size-base)}@media(max-width:600px){:root{--font-size-hero: 1.625rem;--font-size-h1: 1.25rem;--font-size-h2: 1.0625rem;--font-size-h3: .9375rem}}@media(max-width:480px){:root{--font-size-hero: 1.5rem;--font-size-h1: 1.125rem;--font-size-h2: 1rem;--font-size-h3: .875rem}}*{margin:0;padding:0;box-sizing:border-box}html{overscroll-behavior:none;height:100%}body{margin:0;width:100%;min-height:100%;-webkit-user-select:auto;user-select:auto;touch-action:auto;-webkit-touch-callout:default;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}body.app-native-mode{height:100%;position:fixed;overflow:hidden;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,button,select{user-select:text;-webkit-user-select:text;font-family:inherit}#root{width:100%;margin:0 auto;text-align:center;min-height:100vh}body.app-native-mode #root{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}h1{font-size:var(--font-size-h1);font-weight:700;color:var(--app-text-heading)}.app-hero-title{font-size:var(--font-size-hero);font-weight:700;color:var(--app-text-heading);margin:0;line-height:1.2}h2{font-size:var(--font-size-h2);font-weight:600;color:var(--app-text-primary)}h3{font-size:var(--font-size-h3);font-weight:600;color:#334155}.initializer-page{width:100%;max-width:800px;margin:0 auto;padding:0 15px 15px;box-sizing:border-box}.exercise-page{width:100%;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}.app-card-panel{background-color:var(--app-surface-bg);padding:20px;border-radius:12px;border:1px solid var(--app-border-color);width:100%;max-width:100%;position:relative;overflow:hidden;text-align:left;box-shadow:0 1px 3px #0000000d}.app-card-panel--sm{padding:12px}.app-card-panel--md{padding:16px}.app-card-panel--muted{background-color:var(--app-surface-hover)}.app-card-panel--interactive{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.app-card-panel--interactive:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.app-card-panel-center{text-align:center;display:flex;flex-direction:column;align-items:center}.question-header{margin-bottom:16px;display:flex;justify-content:space-between;color:#888;font-family:inherit;width:100%}.app-button{padding:4px 14px;font-size:var(--font-size-base);border-radius:8px;cursor:pointer;font-weight:600;border:1px solid transparent;font-family:inherit;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;justify-content:center;align-items:center;box-shadow:0 1px 2px #0000000d;height:36px}.app-button-lg{padding:10px 28px;font-size:var(--font-size-h3);border-radius:10px;height:48px;font-weight:700}.app-button--block{width:100%}.app-button--sm{padding:2px 10px;font-size:var(--font-size-sm);border-radius:6px;height:28px;font-weight:500}.app-icon-button{width:36px;height:36px;min-width:unset;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.app-icon-button--sm{width:28px;height:28px;border-radius:6px}.app-button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(.95);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.app-button:active:not(:disabled){transform:translateY(0)}.app-button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.app-button-primary{background-color:var(--app-color-primary);color:#fff}.app-button-primary:hover:not(:disabled){box-shadow:0 8px 15px var(--app-color-primary-glow-strong)}.app-button-secondary{background-color:var(--app-surface-secondary);color:#334155;border:1px solid var(--app-border-color)}.app-button-secondary:hover:not(:disabled){background-color:var(--app-border-color);color:var(--app-text-primary);border-color:var(--app-border-hover)}.app-button-secondary:active:not(:disabled){background-color:var(--app-border-hover)}.app-button-success{color:#fff}.app-button-danger{background-color:var(--app-color-danger);color:#fff;box-shadow:0 4px 6px #ff475733}.app-button-danger:hover:not(:disabled){background-color:#ff3e4e;box-shadow:0 6px 10px #ff47574d}.app-button-danger-icon{background-color:transparent;color:var(--app-color-danger);border:1px solid rgba(255,71,87,.3);padding:8px;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.app-button-danger-icon:hover:not(:disabled){background-color:#ff47570d;border-color:var(--app-color-danger);transform:translateY(-1px)}.app-button-danger-icon img{filter:none;opacity:.8;transition:opacity .2s}.app-button-danger-icon:hover img{opacity:1}.app-form-group{margin-bottom:16px}.app-label{display:block;margin-bottom:8px;font-weight:600;color:#333}.param-label{display:block;font-size:var(--font-size-base);font-weight:600;color:#444}.settings-section{width:100%;max-width:400px;display:flex;flex-direction:column;gap:10px;margin-bottom:24px;box-sizing:border-box}.app-input{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:var(--font-size-base);box-sizing:border-box;font-family:inherit;transition:border-color .2s,box-shadow .2s}.app-input:focus{outline:none;border-color:var(--app-color-primary);box-shadow:0 0 0 3px var(--app-color-primary-glow)}.app-input:disabled{background-color:#f5f5f5;color:#888;cursor:not-allowed}.app-input--lg{padding:10px 14px;font-size:var(--font-size-h3);border-radius:10px}.app-input--pill{border-radius:12px;padding:16px}.app-checkbox{width:18px;height:18px;accent-color:var(--app-color-primary);cursor:pointer;flex-shrink:0}.app-checkbox--sm{width:16px;height:16px}.app-error-text{color:var(--app-color-error);font-size:var(--font-size-sm);margin-top:6px;display:block}.app-warning-text{color:var(--app-color-amber);font-size:var(--font-size-base);margin-bottom:12px;font-weight:500}.app-danger-text,.danger-text{color:var(--app-color-danger);font-size:var(--font-size-base);margin-bottom:12px;font-weight:500}.app-form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.app-modal-form{padding:20px}.exercises-swimlane{display:flex;flex-direction:column}.app-section-title{font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--app-text-secondary);margin-bottom:.75rem;text-align:left}.page-subtitle{font-size:var(--font-size-sm);color:var(--app-text-secondary);margin-top:-.25rem;margin-bottom:.5rem;text-align:left}.app-list-label{font-size:var(--font-size-xs);font-weight:600;color:var(--app-text-secondary);text-transform:uppercase;letter-spacing:.05em}.app-list-label--sm{letter-spacing:.03em}.app-item-title{font-size:var(--font-size-base);font-weight:600;color:var(--app-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.app-text-meta{font-size:var(--font-size-sm);color:var(--app-text-secondary)}.app-text-muted{font-size:var(--font-size-base);color:var(--app-text-tertiary)}.swimlane-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;padding-top:2px;padding-bottom:10px;border-bottom:1px solid #eef2f6}.swimlane-header-row .app-section-title{margin-bottom:0}.exercises-page-container{width:100%;height:100%;display:flex;flex-direction:column;padding:16px;overflow-y:auto;box-sizing:border-box}@media(max-width:768px){.exercises-page-container{padding:16px}}.page-container{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.page-container--scrollable{overflow-y:auto}.page-container--padded{padding:16px}@media(max-width:768px){.page-container--padded{padding:12px}}.button-plus{font-size:var(--font-size-base);margin-right:6px;line-height:1}.app-edit-title{font-size:var(--font-size-h1);font-weight:700;color:var(--app-text-heading);border:none;background:transparent;padding:4px 0;width:100%;outline:none;border-bottom:2px solid transparent;transition:all .2s ease;margin:0;cursor:text}.app-edit-title:focus{border-bottom-color:var(--theme-color, var(--app-color-primary));background:#3498db05}.app-edit-title-h1,.app-inline-input{margin:0;font-size:var(--font-size-h1);font-weight:700;color:var(--app-text-heading);line-height:normal;padding:4px 8px;border:1px solid transparent;border-radius:6px;transition:all .2s ease;display:flex!important;align-items:center;max-width:100%;height:36px;font-family:inherit;background:transparent;box-sizing:border-box}.app-inline-input{background:var(--app-surface-bg);border-color:var(--theme-color, var(--app-color-primary));box-shadow:0 1px 2px #0000000d;outline:none;flex:1!important;min-width:50px!important;width:0!important}.app-inline-actions{display:flex;gap:6px;align-items:center;height:36px;flex-shrink:0!important}.inline-action-btn{height:32px!important;width:32px!important;display:flex!important;align-items:center;justify-content:center;border:1px solid var(--app-border-color);border-radius:8px;background:var(--app-surface-hover);color:var(--app-text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);padding:0;flex-shrink:0!important}.inline-action-btn img{width:14px;height:14px}.app-edit-title-h1.editable{cursor:text}.app-edit-title-h1.editable:hover{background-color:#f8fbff;border-color:#d6e4f3}.app-edit-title-h1.editable:after{content:"";display:inline-block;width:18px;height:18px;margin-left:8px;background-image:url(/images/icons/edit.svg);background-size:contain;background-repeat:no-repeat;opacity:0;transition:opacity .2s;vertical-align:middle}.app-edit-title-h1.editable:hover:after{opacity:.5}.app-inline-editor{display:flex;align-items:center;gap:8px;flex:1;min-width:0;height:36px}@media(max-width:600px){.app-edit-title-h1,.app-inline-input,.app-inline-actions,.inline-action-btn,.app-inline-editor{height:30px!important}.inline-action-btn{width:30px!important}.app-inline-editor{gap:6px!important}.app-edit-title-h1,.app-inline-input{padding:2px 6px!important;font-size:var(--font-size-h1)!important;height:30px!important}}.app-edit-title-h1.placeholder{color:#bdc3c7;font-style:italic;font-weight:400}.app-edit-title-h1.needs-attention{animation:title-pulse-attention 2s infinite;border-radius:6px}@keyframes title-pulse-attention{0%{box-shadow:0 0 #3498db66;background-color:transparent}50%{box-shadow:0 0 0 8px #3498db00;background-color:#3498db0d}to{box-shadow:0 0 #3498db00;background-color:transparent}}.app-edit-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;width:100%}.app-edit-header-info{flex:1;min-width:0}.assignment-title-row{display:flex;align-items:center;flex-wrap:nowrap!important;gap:10px;height:36px;min-width:0;width:100%}.exercise-initializer-icon-wrapper{width:36px!important;height:36px!important;border-radius:8px!important;display:flex!important;align-items:center;justify-content:center;flex-shrink:0!important;margin:0!important}.exercise-initializer-icon-wrapper img{width:20px!important;height:20px!important;object-fit:contain}.assignment-header-actions{margin-left:auto;display:flex;align-items:center;gap:12px;flex-shrink:0}.save-status-indicator-overlay{display:inline-flex;padding:6px 16px;border-radius:20px;font-size:var(--font-size-xs);font-weight:600;align-items:center;gap:8px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid rgba(255,255,255,.4);box-shadow:0 4px 20px #00000014,0 0 0 1px #00000005;z-index:10001;pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:center center}.save-status-indicator-overlay.status-saving{color:var(--app-text-secondary);background:#f8fafc99;border-color:#cbd5e166}.save-status-indicator-overlay.status-saved{color:var(--app-color-success-text);background:#f0fdf499;border-color:#bbf7d066}.save-status-indicator-overlay.status-error{color:var(--app-color-danger-text);background:#fef2f299;border-color:#fee2e266}.save-status-indicator-overlay.status-unsaved{color:var(--app-color-warning-text);background:#fffbeb99;border-color:#fef3c766}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.status-dot.pulse{animation:pulse-dot 1.5s infinite ease-in-out}@keyframes pulse-dot{0%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@media(max-width:900px){.app-edit-header{flex-wrap:wrap!important;align-items:flex-start;gap:8px 12px}.app-edit-header-info{flex:1 1 100%!important;min-width:0}.assignment-header-actions{flex:0 0 100%!important;width:100%;margin-left:0!important;justify-content:flex-end;gap:10px}}@media(max-width:600px){.app-edit-header{gap:8px;margin-bottom:14px}.assignment-title-row{height:34px!important;gap:6px!important}.exercise-initializer-icon-wrapper{width:30px!important;height:30px!important;border-radius:6px!important}.exercise-initializer-icon-wrapper img{width:16px!important;height:16px!important}}.inline-action-btn:hover:not(:disabled){background:var(--app-surface-secondary);border-color:var(--app-border-hover);color:var(--app-text-primary);transform:translateY(-2px);box-shadow:0 4px 6px -1px #0000001a}.inline-action-btn.success{background:var(--app-color-success-light)!important;color:var(--app-color-success)!important;border-color:var(--app-color-success)!important}.inline-action-btn.danger:hover:not(:disabled){background:var(--app-color-danger-light);color:var(--app-color-danger-text);border-color:var(--app-color-danger-border)}.inline-action-btn.accept:hover{background:#f0fdf4;border-color:#22c55e}.inline-action-btn.cancel:hover{background:#fff5f5;border-color:#ff7675}.app-status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.app-status-badge--text{padding:0;border-radius:0;background:transparent!important;border:none!important;font-weight:700;letter-spacing:.5px}.app-status-badge.active{background-color:var(--app-color-success-light);color:var(--app-color-success-text);border:1px solid var(--app-color-success-border)}.app-status-badge.future{background-color:var(--app-color-warning-light);color:#ca8a04;border:1px solid var(--app-color-warning-border)}.app-status-badge.draft{background-color:var(--app-surface-hover);color:var(--app-text-secondary);border:1px solid var(--app-border-color)}.app-status-badge.ended{background-color:var(--app-color-danger-light);color:var(--app-color-danger-text);border:1px solid var(--app-color-danger-border)}.app-status-badge--text.ended{color:#95a5a6}.app-toggle-switch{position:relative;display:inline-block;width:50px;height:26px}.app-toggle-switch input{opacity:0;width:0;height:0}.app-toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.app-toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;-webkit-transition:.4s;transition:.4s;border-radius:50%;box-shadow:0 2px 4px #0003}input:checked+.app-toggle-slider{background-color:#27ae60}input:focus+.app-toggle-slider{box-shadow:0 0 1px #27ae60}input:checked+.app-toggle-slider:before{-webkit-transform:translateX(24px);-ms-transform:translateX(24px);transform:translate(24px)}.app-toggle-slider.round{border-radius:26px}@media(max-width:1024px){.assignment-grid{grid-template-columns:1fr}}@media(max-width:480px){.app-button{padding:5px 12px;font-size:var(--font-size-base);height:30px}.app-button-lg{padding:8px 24px;height:42px}.app-icon-button{width:32px;height:32px}.question-header{margin-bottom:12px}}.info-icon-trigger{display:inline-flex;align-items:center;justify-content:center;color:var(--app-text-tertiary);margin-left:8px;cursor:help;transition:color .2s;vertical-align:middle}.info-icon-trigger:hover{color:var(--app-text-secondary)}@media(min-width:769px){.hide-on-desktop{display:none!important}}@media(max-width:768px){.hide-on-mobile{display:none!important}}.font-family-sans-serif{font-family:Inter,system-ui,Arial,Helvetica,sans-serif!important}.font-family-serif{font-family:Georgia,Times New Roman,serif!important}.font-family-monospace{font-family:Courier New,Consolas,monospace!important}.font-size-small{font-size:var(--font-size-base)!important}.font-size-medium{font-size:var(--font-size-h3)!important}.font-size-large{font-size:var(--font-size-h2)!important}@keyframes fadeInOnly{0%{opacity:0}to{opacity:1}}.app-fade-in{animation:fadeInOnly .4s ease-out forwards}.header-icon{width:24px;height:24px;cursor:pointer;transition:all .2s ease;opacity:.6;padding:8px;border-radius:50%;box-sizing:content-box;display:flex;align-items:center;justify-content:center}.header-icon:hover{transform:scale(1.1);opacity:1;background-color:#0000000d}@media(max-width:600px){.app-card-panel{padding:20px 14px}}@media(max-width:480px){.app-card-panel{padding:14px 12px}}@media(max-width:380px){.app-card-panel{padding:10px}}.app-list{background:#fff;border-radius:12px;border:1px solid var(--app-border-color);overflow:visible;box-shadow:0 1px 3px #0000000d}.app-list-header{display:grid;padding:14px 20px;background:var(--app-surface-hover);border-bottom:1px solid var(--app-border-color);font-size:var(--font-size-sm);font-weight:600;color:var(--app-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-top-left-radius:12px;border-top-right-radius:12px}.app-list-item{display:grid;padding:12px 20px;align-items:center;border-bottom:1px solid var(--app-surface-secondary);cursor:pointer;transition:background-color .2s ease}.app-list-item:last-child{border-bottom:none;border-bottom-left-radius:12px;border-bottom-right-radius:12px}.app-list-item:hover{background-color:var(--app-surface-hover)}.app-list-body{flex:1;overflow-y:auto;min-height:0}.app-action-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--app-border-color);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--app-text-muted);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.app-action-btn:hover{background:var(--app-surface-secondary);color:var(--app-text-heading);border-color:var(--app-border-hover);transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a}.app-action-btn.edit-btn:hover{color:var(--app-color-info);border-color:var(--app-color-info-border);background:var(--app-color-info-light)}.preview-btn-icon{width:16px;height:16px;margin-right:8px;opacity:.7}.default-text-picker-desc{color:var(--app-text-secondary);font-size:var(--font-size-base);margin-bottom:16px}.default-text-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto}.default-text-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:12px 16px;border:1px solid var(--app-border-color);border-radius:8px;background:#fff;text-align:left;cursor:pointer;transition:all .2s ease}.default-text-item:hover{border-color:var(--app-color-primary);background:#f7fbff}.default-text-title{font-weight:600;font-size:var(--font-size-base);color:var(--app-text-primary)}.default-text-meta{font-size:var(--font-size-xs);color:var(--app-text-tertiary)}.dashboard-card-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-shrink:0}.dashboard-card-header .header-icon-wrapper{background:var(--app-primary-bg);color:var(--app-color-primary);padding:8px;border-radius:8px;display:flex;align-items:center;justify-content:center}.dashboard-card-title{font-size:var(--font-size-h2);font-weight:600;color:var(--app-text-primary);margin:0}
