.icon{display:inline-block;width:1em;height:1em;fill:currentColor;vertical-align:-.125em;flex-shrink:0}.icon.fa-spin{animation:icon-spin 1s linear infinite}@keyframes icon-spin{to{transform:rotate(360deg)}}@font-face{font-family:Luciole;src:url(/fonts/luciole/Luciole-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Luciole;src:url(/fonts/luciole/Luciole-Bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--color-primary: #000000;--color-secondary: #64748b;--color-accent: #a68600;--color-success: #10b981;--color-danger: #dc2626;--color-info: #3b82f6;--color-indigo: #315d4c;--color-background: #f6f7f3;--color-surface: #ffffff;--color-text: #24352e;--color-text-muted: #59665f;--color-border: #dce2da;--font-family: "Luciole", system-ui, -apple-system, sans-serif;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04)}:root{--ds-surface-glass: var(--color-surface);--ds-surface-glass-hover: var(--color-background);--ds-header-bg: rgba(255, 255, 255, .92);--ds-header-blur: 0px;--ds-overlay-bg: rgba(15, 23, 42, .75);--ds-overlay-blur: 4px;--ds-transition: .2s ease-out;--ds-card-bg: var(--color-surface);--ds-card-blur: 0px;--ds-card-border: var(--color-border)}.app-header{background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:100;border-bottom:1px solid var(--color-border);transition:box-shadow .2s ease}.header-inner{display:flex;align-items:center;gap:var(--spacing-md);max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);height:60px}.app-logo{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;flex-shrink:0}.app-logo__icon{font-size:1.4rem;line-height:1}.app-logo__name{font-size:1.125rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,var(--color-text) 0%,#555 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.header-progress-wrapper{flex:1;display:flex;justify-content:center}.header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.header-back-btn{font-size:var(--font-size-sm)}.theme-toggle{font-size:1.1rem;opacity:.6;transition:opacity .15s ease}.theme-toggle:hover{opacity:1}.theme-popover{position:absolute;right:var(--spacing-lg);top:56px;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-xs);z-index:200;min-width:180px}.theme-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit;color:var(--color-text);width:100%;text-align:left;transition:background .15s ease}.theme-option:hover{background:var(--color-background)}.theme-option--active{background:var(--color-background);font-weight:var(--font-weight-bold)}.theme-swatch{width:20px;height:20px;border-radius:var(--radius-sm);border:2px solid var(--color-border);flex-shrink:0}.app-footer{margin-top:auto;border-top:1px solid var(--color-border);background:var(--color-surface);padding:8px 20px;font-size:.8125rem;color:var(--color-text-muted);line-height:1.4}.footer-links{display:flex;justify-content:center;align-items:center;gap:4px 16px;flex-wrap:wrap;max-width:1200px;margin:0 auto}.footer-links a,.footer-links button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 4px;border:0;border-radius:var(--radius-sm);background:transparent;font:inherit;color:var(--color-text-muted);text-decoration:none;cursor:pointer;transition:color .15s ease}.footer-links a:hover,.footer-links button:hover{color:var(--color-indigo);text-decoration:underline;text-underline-offset:4px}.footer-links a:focus-visible,.footer-links button:focus-visible{outline:2px solid var(--color-indigo);outline-offset:2px}.footer-links .footer-version,.footer-links .footer-author{color:var(--color-text);font-weight:600}@media(max-width:600px){.app-footer{padding:8px 16px}.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px}.footer-links a,.footer-links button{justify-content:flex-start}.footer-links .footer-author{grid-column:1 / -1;grid-row:1;justify-content:center}}.home-screen{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);min-height:calc(100vh - 60px);padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-xl);animation:fadeUp .5s ease-out}.home-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);width:100%;max-width:800px}.action-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-xl);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;font-family:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;position:relative;overflow:hidden}.action-card:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .2s ease;border-radius:inherit;pointer-events:none}.action-card--create:before{background:linear-gradient(135deg,#6366f10d,#a855f70d)}.action-card--correct:before{background:linear-gradient(135deg,#10b9810d,#3b82f60d)}.action-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}.action-card:hover:before{opacity:1}.action-card--active{border-color:var(--color-indigo);box-shadow:var(--shadow-md),0 0 0 1px var(--color-indigo)}.action-card:focus-visible{outline:3px solid var(--color-indigo);outline-offset:2px}.action-card:active{transform:translateY(-1px)}.action-card__icon{font-size:2.5rem;line-height:1}.action-card__body{flex:1}.action-card__title{font-size:var(--font-size-xl);font-weight:700;color:var(--color-text);margin-bottom:var(--spacing-xs);line-height:1.2}.action-card__desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.action-card__arrow{font-size:1.25rem;color:var(--color-text-muted);transition:transform .2s ease,color .2s ease;align-self:flex-end}.action-card:hover .action-card__arrow{transform:translate(4px);color:var(--color-text)}.progress-steps{display:flex;align-items:center}.progress-step{display:flex;flex-direction:column;align-items:center;gap:3px}.progress-step__bubble{width:28px;height:28px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;line-height:1}.progress-step__label{font-size:.6rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap;transition:color .2s ease;text-transform:uppercase;letter-spacing:.03em}.progress-step--active .progress-step__bubble{border-color:var(--color-indigo);background:var(--color-indigo);color:#fff;box-shadow:0 0 0 4px #6366f126}.progress-step--active .progress-step__label{color:var(--color-indigo);font-weight:700}.progress-step--done .progress-step__bubble{border-color:var(--color-success);background:var(--color-success);color:#fff}.progress-step--done .progress-step__label{color:var(--color-success)}.progress-step__connector{width:28px;height:2px;background:var(--color-border);margin-bottom:14px;flex-shrink:0;transition:background .3s ease}.progress-step__connector--done{background:var(--color-success)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(4px);background:#1e293b;color:#fff;padding:.5rem .875rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:400;line-height:1.4;white-space:normal;max-width:220px;text-align:center;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease;z-index:200;box-shadow:var(--shadow-md)}[data-tooltip]:hover:after{opacity:1;transform:translate(-50%) translateY(0)}.loading-overlay{position:fixed;inset:0;background:#f8fafce6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);z-index:300;animation:fadeIn .2s ease}.loading-overlay__spinner{width:36px;height:36px;border:3px solid rgba(0,0,0,.08);border-top-color:var(--color-indigo);border-radius:50%;animation:spin .7s linear infinite}.loading-overlay__message{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.recent-quizzes{width:100%;max-width:800px}.recent-quizzes__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.recent-quizzes__header h3{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text);margin:0}.recent-quizzes__empty{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--spacing-lg) 0}.recent-quiz-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-sm);padding:0;margin:0}.recent-quiz-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}.recent-quiz-item:hover{border-color:var(--color-indigo);box-shadow:var(--shadow-sm)}.recent-quiz-item__info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.recent-quiz-item__title{font-weight:600;color:var(--color-text);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-quiz-item__meta{font-size:var(--font-size-sm);color:var(--color-text-muted)}.recent-quiz-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.scan-view{position:fixed;inset:0;background:#0a0a0f;z-index:100;display:flex;flex-direction:column}.scan-header{position:absolute;top:0;left:0;width:100%;padding:10px 16px;background:linear-gradient(180deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 70%,transparent 100%);color:#fff;display:flex;justify-content:space-between;align-items:center;z-index:10;gap:8px}.scan-header__label{font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.7}.scan-header__actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.scan-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#ffffffe6;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;font-family:inherit}.scan-btn:hover{background:#ffffff2e;border-color:#ffffff59;transform:translateY(-1px)}.scan-btn:active{transform:translateY(0)}.scan-btn--accent{background:#00d2ff26;border-color:#00d2ff66;color:#00d2ff}.scan-btn--accent:hover{background:#00d2ff40;border-color:#00d2ff99}.scan-btn--close{background:none;border:none;color:#fff;font-size:1.4rem;padding:4px 8px;opacity:.7;line-height:1}.scan-btn--close:hover{opacity:1;background:#ffffff1a}.scan-feedback{position:absolute;bottom:100px;width:100%;text-align:center;color:#fff;font-weight:600;text-shadow:0 2px 8px rgba(0,0,0,.6);font-size:1.1rem;letter-spacing:.01em;pointer-events:none}.scan-sidebar{position:absolute;right:0;top:0;height:100%;width:300px;background:#0a0a14eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#fff;overflow-y:auto;z-index:15;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);padding:56px 14px 14px;border-left:1px solid rgba(255,255,255,.06)}.scan-sidebar--open{transform:translate(0)}.scan-sidebar__title{margin:0 0 14px;font-size:.85rem;font-weight:600;color:#00d2ff;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:10px;display:flex;align-items:center;gap:8px}.scan-sidebar__empty{color:#ffffff59;font-size:.8rem;text-align:center;margin-top:40px}.scan-result-card{background:#ffffff0a;border-radius:8px;margin-bottom:8px;border-left:3px solid var(--result-color, #aaa);overflow:hidden;transition:background .15s ease}.scan-result-card:hover{background:#ffffff12}.scan-result-card__row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;cursor:pointer}.scan-result-card__info{flex:1;min-width:0}.scan-result-card__name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scan-result-card__grade{font-size:.75rem;margin-top:2px}.scan-result-card__chevron{color:#ffffff4d;font-size:.8rem;transition:transform .2s ease;flex-shrink:0}.scan-result-card__edit{background:#ffffff14;border:none;color:#fff9;padding:5px 9px;border-radius:6px;cursor:pointer;font-size:.8rem;flex-shrink:0;transition:all .15s ease}.scan-result-card__edit:hover{background:#ffffff26;color:#fff}.scan-result-card__detail{display:none;padding:6px 12px 10px}.scan-result-card__detail-row{display:flex;align-items:center;gap:5px;margin-bottom:4px}.scan-result-card__qnum{min-width:24px;font-size:.7rem;color:#ffffff59}.scan-sidebar-toggle{position:absolute;right:0;bottom:100px;z-index:16;background:#0a0a14d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.12);border-right:none;padding:10px 8px;border-radius:8px 0 0 8px;cursor:pointer;font-size:.7rem;line-height:1.3;text-align:center;transition:all .15s ease}.scan-sidebar-toggle:hover{background:#ffffff1f}@media(max-width:640px){.home-cards{grid-template-columns:1fr;gap:var(--spacing-md)}.home-screen{min-height:calc(100vh - 60px);padding:var(--spacing-lg) var(--spacing-md);align-items:flex-start;padding-top:var(--spacing-xl)}.action-card{padding:var(--spacing-lg)}.header-inner{padding:0 var(--spacing-md)}.progress-step__label{display:none}.progress-step__connector{width:16px}.progress-step__bubble{width:24px;height:24px;font-size:.65rem}.recent-quiz-item{padding:var(--spacing-sm) var(--spacing-md)}.recent-quiz-actions{gap:var(--spacing-xs)}.scan-header{padding:8px 10px}.scan-btn{padding:6px 10px;font-size:.72rem}.scan-btn .btn-label{display:none}.scan-sidebar{width:260px}}.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}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;font-family:inherit;text-decoration:none;gap:.5rem}.btn-sm{padding:.5rem 1rem;font-size:var(--font-size-sm)}.btn-lg{padding:1rem 2rem;font-size:var(--font-size-lg)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:#1e293b;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-background);border-color:var(--color-secondary)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-text{background:transparent;color:var(--color-secondary);padding:.5rem}.btn-text:hover{color:var(--color-text);background:var(--color-background)}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:box-shadow .2s ease,border-color .2s ease}.card:hover{box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.input-text,.grading-input,textarea,select{width:100%;padding:.625rem .875rem;font-size:var(--font-size-base);font-family:inherit;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all .2s ease}.input-text:focus,.grading-input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-indigo);box-shadow:0 0 0 3px #6366f11a}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:var(--font-weight-bold);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.badge-success{background-color:#ecfdf5;color:var(--color-success)}.badge-info{background-color:#eff6ff;color:var(--color-info)}.editor-view{max-width:1200px;margin:0 auto;animation:fadeIn .4s ease-out}.editor-header{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.editor-title-row{display:flex;align-items:center;gap:var(--spacing-md)}.editor-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md)}.toolbar-group{display:flex;align-items:center;gap:var(--spacing-xs)}.toolbar-separator{width:1px;height:24px;background:var(--color-border);margin:0 var(--spacing-xs);flex-shrink:0}.toolbar-spacer{flex:1}.btn-ai{background:linear-gradient(135deg,#6366f1,#a855f7);color:#fff;border:none;padding:.5rem 1rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-family:inherit;display:inline-flex;align-items:center;gap:.4rem;box-shadow:0 2px 8px #6366f14d}.btn-ai:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.editor-toolbar .btn{white-space:nowrap}.editor-toolbar .btn .icon{font-size:.8em}.toolbar-dropdown{position:relative}.toolbar-dropdown__trigger{display:inline-flex;align-items:center;gap:6px}.toolbar-dropdown__trigger--open{background:var(--color-indigo);color:#fff;border-color:var(--color-indigo)}.toolbar-dropdown__menu{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-xs);z-index:200;flex-direction:column}.toolbar-dropdown__menu--open{display:flex}.toolbar-dropdown__item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:inherit;color:var(--color-text);width:100%;text-align:left;transition:background .12s ease;white-space:nowrap}.toolbar-dropdown__item:hover{background:var(--color-background)}.toolbar-dropdown__item .icon{width:16px;text-align:center;color:var(--color-text-muted);font-size:.85em}.toolbar-dropdown__separator{height:1px;background:var(--color-border);margin:var(--spacing-xs) var(--spacing-sm)}.btn-primary{background:var(--color-indigo);color:#fff;border:1px solid var(--color-indigo);transition:all .15s ease}.btn-primary:hover{background:#4f46e5;box-shadow:0 2px 8px #6366f14d;transform:translateY(-1px)}.activity-title-input{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);border:none;background:transparent;border-bottom:2px solid transparent;padding:var(--spacing-xs) 0;transition:border-color .2s ease;flex:1;min-width:300px}.activity-title-input:focus{outline:none;border-color:var(--color-indigo);box-shadow:0 0 0 3px #6366f126}.editor-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-xl)}@media(max-width:992px){.editor-grid{grid-template-columns:1fr}.editor-toolbar{gap:var(--spacing-xs)}.toolbar-separator,.toolbar-spacer{display:none}.editor-toolbar .btn-sm{padding:.4rem .6rem;font-size:.75rem}}.questions-column{display:flex;flex-direction:column;gap:var(--spacing-lg)}.question-card{position:relative;padding:var(--spacing-lg)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.question-number{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-indigo);text-transform:uppercase}.question-text{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.latex-preview{background:var(--color-background);padding:var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-md);min-height:2.5rem;display:flex;align-items:center}.options-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.numeric-params{display:flex;gap:var(--spacing-lg);align-items:center;margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.numeric-params label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap}.numeric-params select,.numeric-params input[type=number]{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-sm);background:var(--color-surface);color:var(--color-text)}.numeric-params input[type=number]{width:72px}.add-question-group{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.add-question-group .btn{flex:1}@media(max-width:640px){.options-list{grid-template-columns:1fr}.numeric-params{flex-direction:column;align-items:flex-start}.add-question-group{flex-direction:column}}.option-item{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-background);padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);transition:all .2s ease}.option-item:focus-within{border-color:var(--color-indigo);background:var(--color-surface)}.opt-label{font-weight:var(--font-weight-bold);color:var(--color-secondary)}.option-text{border:none;background:transparent;padding:0;font-size:var(--font-size-sm)}.option-text:focus{outline:2px solid var(--color-indigo);outline-offset:-2px}.correct-toggle{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;cursor:pointer;white-space:nowrap}.save-indicator{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:9999px;font-size:.75rem;font-weight:var(--font-weight-medium);white-space:nowrap;transition:all .3s ease;background:#dcfce7;color:#16a34a}.save-indicator[data-saved=false]{background:#fef9c3;color:#ca8a04;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.question-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.btn-icon{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);font-size:1rem;line-height:1;opacity:.6;transition:opacity .15s ease,background .15s ease}.btn-icon:hover{opacity:1;background:var(--color-border)}.question-type-toggle{display:flex;gap:4px;margin-bottom:var(--spacing-sm)}.btn-type{font-size:.7rem;padding:2px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.btn-type--active{background:var(--color-indigo);border-color:var(--color-indigo);color:#fff}.editor-right-panel{display:flex;flex-direction:column;position:sticky;top:5rem;max-height:calc(100vh - 8rem)}.editor-panel-tabs{display:flex;border-bottom:2px solid var(--color-border);margin-bottom:var(--spacing-md);gap:var(--spacing-xs)}.editor-panel-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);cursor:pointer;transition:color .2s ease,border-color .2s ease;border-radius:var(--radius-sm) var(--radius-sm) 0 0;display:inline-flex;align-items:center;gap:.4rem;font-family:inherit}.editor-panel-tab .icon{font-size:.85em}.editor-panel-tab:hover{color:var(--color-text)}.editor-panel-tab--active{color:var(--color-indigo);border-bottom-color:var(--color-indigo)}.editor-panel-content{flex:1;overflow:auto}.editor-panel-pane{height:100%}.preview-frame{width:100%;height:600px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}@media(max-width:992px){.preview-frame{height:400px}.editor-right-panel{position:static;max-height:none}}.import-drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-xl);text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease;margin-bottom:var(--spacing-md)}.import-drop-zone:hover,.import-drop-zone--active{border-color:var(--color-indigo);background:#6366f10a}.import-drop-zone__hint{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.import-or-separator{color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center;margin:var(--spacing-md) 0 var(--spacing-sm)}.students-panel{height:sticky;top:5rem}.students-panel h3{margin-bottom:var(--spacing-md);display:flex;align-items:center;justify-content:space-between}.student-list{margin-top:var(--spacing-md);max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-xs)}.student-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-background);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.student-id{font-family:monospace;color:var(--color-secondary);opacity:.7}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172abf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;justify-content:center;align-items:center;padding:var(--spacing-md)}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:500px;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.question-image-preview{margin-bottom:var(--spacing-sm)}.question-image-preview img{max-width:100%;max-height:200px;border-radius:var(--radius-sm);border:1px solid var(--color-border);object-fit:contain;display:block;margin-bottom:var(--spacing-xs)}.modal-body{padding:var(--spacing-lg)}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-md)}.layout-choice-panel{margin-top:var(--spacing-md)}.layout-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.layout-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;text-align:center;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.layout-card:hover{border-color:var(--color-indigo)}.layout-card--active{border-color:var(--color-indigo);box-shadow:0 0 0 3px #6366f126}.layout-card__icon{font-size:1.5rem}.layout-card strong{display:block;font-size:var(--font-size-sm)}.layout-card small{font-size:.7rem;color:var(--color-text-muted)}.layout-hint{font-size:.75rem;color:var(--color-text-muted);margin-top:var(--spacing-xs)}.latex-help-btn{font-size:.7rem;opacity:.5;vertical-align:super;cursor:pointer}.latex-help-btn:hover{opacity:1}.latex-error{color:var(--color-danger);font-size:.75rem;font-style:italic;background:#dc262614;padding:2px 6px;border-radius:var(--radius-sm)}.question-points-field{display:inline-flex;align-items:center;gap:var(--spacing-xs, .4rem);margin-left:auto;margin-right:var(--spacing-sm, .75rem);font-size:.82rem;color:var(--color-text-muted, #64748b);white-space:nowrap}.question-points-field input.question-points{width:3.6rem;padding:.2rem .4rem;font-size:.85rem;text-align:center;font-variant-numeric:tabular-nums;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-sm, 4px);background:var(--color-surface, #fff);color:var(--color-text, #0f172a)}.question-points-field input.question-points:focus-visible{outline:2px solid var(--color-indigo, #6366f1);outline-offset:1px}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button:disabled{cursor:not-allowed;opacity:.45;transform:none}:is(button,a,input,textarea,select,summary,[tabindex]):focus-visible{outline:3px solid var(--color-indigo);outline-offset:3px}.btn{min-height:40px;border-radius:10px;font-weight:600}.btn-primary,.btn-ai{background:var(--color-indigo);box-shadow:none}.btn-primary:hover,.btn-ai:hover{background:var(--color-indigo);filter:brightness(.92);box-shadow:none;transform:none}.btn-ai{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-indigo)}.btn-ai:hover{background:var(--color-background)}.btn-icon{min-width:36px;min-height:36px;opacity:1;color:var(--color-text-muted)}.btn-text{color:var(--color-text-muted)}.danger-text{color:var(--color-danger)}.header-inner{max-width:1160px}.app-logo__icon{color:#a77a1f}.app-logo__name{background:none;-webkit-text-fill-color:currentColor;color:var(--color-text);letter-spacing:0;font-size:1.3rem}.header-context{flex:1;padding-left:18px;border-left:1px solid var(--color-border);color:var(--color-text-muted);font-size:.85rem}.app-header{background:var(--ds-header-bg)}.home-screen{padding:12px 0 24px;min-height:auto;gap:28px;max-width:1040px;margin:auto;align-items:stretch}.home-intro{padding:8px 0}.eyebrow{color:var(--color-indigo);font-size:.75rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:8px}.home-intro h1{font-size:clamp(1.6rem,3vw,2.15rem);letter-spacing:0;line-height:1.2;margin-bottom:10px;font-weight:750}.home-intro>p:last-child{color:var(--color-text-muted);font-size:.95rem}.home-cards{max-width:none;gap:16px}.action-card{display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:16px;padding:22px;border-width:1px;box-shadow:none}.action-card__icon{font-size:1.2rem;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--color-background);color:var(--color-indigo)}.action-card__title{font-size:1.05rem}.action-card__desc{font-size:.85rem}.action-card__arrow{align-self:center;font-size:1rem}.action-card:before{display:none}.action-card:hover{transform:none;border-color:var(--color-indigo);box-shadow:var(--shadow-sm)}.action-card--active{border-color:var(--color-border);box-shadow:none}.action-card--create{border-color:var(--color-indigo)}.recent-quizzes{max-width:none}.recent-quizzes__header{gap:16px;margin-bottom:14px}.recent-quizzes__header h2{display:flex;align-items:center;gap:10px;font-size:1.1rem}.library-count,.tab-count{display:inline-flex;justify-content:center;min-width:24px;padding:1px 7px;font-size:.75rem;font-weight:600;border-radius:6px;background:var(--color-background);color:var(--color-text-muted)}.library-search{display:flex;gap:12px;align-items:center;background:var(--color-surface);padding:0 14px;border:1px solid var(--color-border);border-radius:10px;margin-bottom:16px;color:var(--color-text-muted)}.library-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--color-text);padding:11px 0;outline:none}.library-search:focus-within{outline:2px solid var(--color-indigo)}.recent-quiz-list{gap:0;border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:var(--color-surface)}.recent-quiz-item{padding:16px 18px;border:0;border-radius:0;border-bottom:1px solid var(--color-border)}.recent-quiz-item:last-child{border-bottom:0}.recent-quiz-item:hover{background:var(--color-background);box-shadow:none}.quiz-file-icon{color:var(--color-indigo);width:32px;font-size:1.25rem;text-align:center}.recent-quiz-item__meta{font-size:.78rem}.recent-quiz-actions{gap:4px}.library-empty{padding:32px 20px;border:1px dashed var(--color-border);border-radius:12px;background:var(--color-surface);text-align:center}.library-empty>.icon{font-size:1.7rem;color:var(--color-indigo);margin-bottom:12px}.library-empty h3{font-size:1rem;margin-bottom:6px}.library-empty p,.library-no-results{font-size:.9rem;color:var(--color-text-muted)}.library-no-results{padding:18px 0}.local-data-settings{color:var(--color-text-muted);font-size:.8rem;border-top:1px solid var(--color-border);padding-top:16px}.local-data-settings summary{cursor:pointer;width:fit-content}.local-data-settings p{margin:10px 0 4px;max-width:700px}.editor-view{max-width:1000px}.editor-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;margin-bottom:20px}.editor-title-row,.editor-panel-tabs{grid-column:1 / -1}.editor-title-row{gap:12px}.activity-title-input{min-width:0;width:100%;color:var(--color-text);font-size:1.65rem;letter-spacing:0;line-height:1.3}.editor-summary{font-size:.8rem;color:var(--color-text-muted)}.save-indicator{flex-shrink:0;font-size:.75rem}.editor-toolbar{padding:8px 0;border:0;background:none;border-radius:0;justify-content:flex-end}.toolbar-group{gap:8px}.editor-panel-tabs{margin:0;border-bottom:1px solid var(--color-border);gap:8px}.editor-panel-tab{min-height:46px;padding:10px 16px;font-size:.9rem;border-radius:8px 8px 0 0;white-space:nowrap}.editor-panel-tab--active{background:var(--color-surface)}.editor-grid{display:block}.editor-right-panel{position:static;max-height:none}.editor-panel-content{overflow:visible}.editor-panel-pane{height:auto}.questions-list{display:flex;flex-direction:column;gap:16px}.question-card{padding:20px 24px;border-radius:12px;box-shadow:none}.question-card:hover{box-shadow:none}.question-header{gap:10px;margin-bottom:10px}.question-number{text-transform:none;font-size:.9rem;white-space:nowrap}.question-actions{display:flex;gap:2px}.question-points-field{margin-right:0;font-size:.75rem}.question-points-field input.question-points{min-height:34px}.question-text{margin:0;font-size:1rem;resize:vertical;min-height:66px}.question-card .form-group{position:relative;margin-bottom:12px}.latex-help-btn{position:absolute;bottom:2px;right:5px;font-size:.85rem;min-width:24px;min-height:28px;opacity:1}.question-text{padding-right:36px}.latex-preview{margin:6px 28px 0 0}.question-type-toggle{display:inline-flex;gap:0;padding:3px;border:1px solid var(--color-border);border-radius:8px;margin:0 0 8px}.btn-type{min-height:32px;border:none;background:none;font-size:.78rem;padding:4px 12px}.btn-type--active{background:var(--color-indigo);color:#fff}.answers-hint{color:var(--color-text-muted);font-size:.78rem;margin-bottom:8px}.options-list{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.option-item{border-radius:8px;min-height:46px;background:var(--color-surface);gap:8px;padding:6px 10px}.option-item:has(input[type=checkbox]:checked){border-color:var(--color-indigo);background:color-mix(in srgb,var(--color-indigo) 6%,var(--color-surface))}.option-text{min-width:0;width:100%;color:var(--color-text);font-size:.9rem;padding:6px 0;line-height:1.4;resize:none;min-height:34px;overflow-y:hidden}.correct-toggle{flex-shrink:0;cursor:pointer;padding:6px}.correct-toggle input{width:18px;height:18px;accent-color:var(--color-indigo);cursor:pointer}.answer-check-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.add-question-group{margin-top:0}.add-question-group .btn{min-height:44px;font-size:.85rem;padding:10px 16px}.editor-empty{padding:26px 0 12px;text-align:center}.editor-empty h2{font-size:1.4rem;letter-spacing:0;margin-bottom:6px}.editor-empty>p{font-size:.9rem;color:var(--color-text-muted)}.start-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}.start-choice{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px;text-align:left;color:var(--color-text);border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);cursor:pointer}.start-choice>.icon{color:var(--color-indigo);margin-bottom:8px}.start-choice strong{font-size:.95rem}.start-choice span{color:var(--color-text-muted);font-size:.8rem}.start-choice:hover{border-color:var(--color-indigo);background:var(--color-background)}.panel-intro,.field-hint{color:var(--color-text-muted);font-size:.875rem;margin:8px 0 18px}#tab-students{width:100%}#tab-grading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:stretch}#tab-grading .panel-intro{grid-column:1 / -1;margin-bottom:0}#tab-grading .layout-choice-panel{margin-top:0;display:flex;flex-direction:column}#tab-grading .layout-cards{flex:1}#tab-grading .layout-card{justify-content:center}#tab-grading .layout-hint{margin-top:14px}#tab-grading h3{margin-bottom:16px;font-size:1rem}#tab-grading .grading-config-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-content:start}#tab-grading .grading-config-panel>h3,#tab-grading .grading-preview,#tab-grading .grading-warning{grid-column:1 / -1;margin:0}#tab-grading .grading-config-panel .form-group{margin:0}#tab-grading .grading-config-panel label{min-height:2.8em}.preview-frame{height:70vh;min-height:400px;background:var(--color-surface)}.pdf-preview{padding:16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.pdf-preview canvas{display:block;width:100%;height:auto;max-width:780px;margin:auto;border:1px solid var(--color-border)}.pdf-preview-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;font-size:.85rem}.overlay{padding:16px;overflow-y:auto}.modal{display:flex;flex-direction:column;max-height:calc(100dvh - 32px)}.modal-header{padding:20px 24px 16px}.modal-header h2{font-size:1.2rem}.modal-header .field-hint{margin:8px 0 0}.modal .correct-toggle{display:flex;align-items:flex-start;white-space:normal}.modal .correct-toggle input{flex-shrink:0;margin-top:2px}.modal-body{overflow-y:auto;padding:20px 24px}.modal-footer{padding:16px 24px;gap:10px}.generation-count-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.generation-parameters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}.generation-count-row label{margin:0}.generation-count-hint{font-size:.75rem;color:var(--color-text-muted);margin:4px 0 0}.modal .generation-count{min-height:44px;border-radius:8px;font-size:1rem;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}.modal-header,.modal-footer{flex-shrink:0}.loading-overlay{background:var(--color-background)}.scan-btn{min-height:40px}.scan-sidebar-toggle{width:auto;min-width:110px;min-height:44px;padding:10px 14px}.scan-feedback{padding:14px 24px;font-size:.95rem}@media(max-width:700px){body main{padding:20px 16px}.header-inner{padding:0 16px;gap:12px}.header-context{display:none}.header-actions{margin-left:auto}.home-screen{gap:22px;padding-top:4px}.home-cards{grid-template-columns:1fr;gap:10px}.action-card{padding:16px;gap:12px}.recent-quizzes__header{flex-wrap:wrap;gap:10px}.quiz-file-icon{display:none}.recent-quiz-item{padding:14px 12px;flex-wrap:wrap;gap:8px}.recent-quiz-item__info{min-width:140px}.recent-quiz-item__title{white-space:normal;overflow-wrap:anywhere;font-size:.95rem}.recent-quiz-actions{margin-left:auto}.editor-title-row{align-items:start;flex-direction:column;gap:6px}.activity-title-input{font-size:1.4rem}.editor-summary{margin-top:-4px}.editor-summary,.editor-toolbar{grid-column:1 / -1}.editor-toolbar{gap:8px;justify-content:flex-start;padding:0}.toolbar-group{flex-wrap:wrap}.editor-toolbar .btn{font-size:.8rem;padding:8px 10px}.editor-panel-tabs{gap:0;display:grid;grid-template-columns:repeat(4,1fr)}.editor-panel-tab{flex-direction:column;justify-content:center;gap:4px;padding:8px 4px;font-size:.75rem}.tab-count{display:none}.question-card{padding:14px}.question-header{flex-wrap:wrap;gap:6px}.question-actions{margin-left:auto}.question-number{flex:1}.question-points-field{margin-left:0}.options-list{grid-template-columns:1fr}.start-choices{grid-template-columns:1fr;gap:10px;margin-top:20px}.start-choice{padding:16px;display:grid;grid-template-columns:24px 1fr;column-gap:12px;row-gap:3px}.start-choice>.icon{grid-row:span 2;align-self:center;margin:0}.editor-empty{padding-top:12px}.editor-empty h2{font-size:1.2rem}#tab-grading{grid-template-columns:1fr}.modal-header,.modal-body,.modal-footer{padding:16px}.toolbar-dropdown__menu{right:auto;left:0;min-width:250px;max-width:calc(100vw - 48px)}.scan-header{align-items:start;flex-direction:column;gap:8px;background:#0a0a0feb}.scan-header__actions{justify-content:flex-start;padding-right:30px}.scan-btn .btn-label{display:inline}.scan-btn{padding:8px 10px}.scan-btn--close{position:absolute;right:8px;top:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.guide-view{max-width:1100px;margin:auto}.guide-heading{display:flex;justify-content:space-between;align-items:start;gap:24px}.guide-heading h1{font-size:clamp(1.6rem,3vw,2rem);letter-spacing:0;line-height:1.2;margin-bottom:10px}.guide-font-credit{margin-top:24px;color:var(--color-text-muted);font-size:.875rem}.guide-heading p:not(.eyebrow),.guide-edition{color:var(--color-text-muted)}.guide-heading-actions{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.guide-edition{font-size:.75rem;margin:18px 0 28px}.guide-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:32px;align-items:start}.guide-toc{position:sticky;top:80px;display:flex;flex-direction:column;gap:4px;font-size:.8rem}.guide-toc strong{padding:0 10px 12px}.guide-toc a{display:flex;gap:10px;align-items:baseline;padding:10px;border-radius:8px;text-decoration:none;color:var(--color-text-muted)}.guide-toc a:hover,.guide-toc a:focus-visible{color:var(--color-indigo);background:var(--color-surface)}.guide-toc a span{font-weight:700;color:var(--color-indigo)}.guide-chapters{min-width:0}.guide-quick-start{padding:20px 24px;background:color-mix(in srgb,var(--color-indigo) 7%,var(--color-surface));border-radius:12px;border:1px solid var(--color-border);margin-bottom:24px}.guide-quick-start h2{font-size:1rem;margin-bottom:6px}.guide-quick-start p{font-size:.9rem}.guide-chapter{scroll-margin-top:80px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:26px;margin-bottom:24px}.guide-chapter h2{font-size:1.25rem;margin-bottom:20px;letter-spacing:0}.guide-chapter ol{padding-left:23px;font-size:.95rem;line-height:1.65}.guide-chapter li{padding-left:6px;margin-bottom:14px}.guide-chapter li::marker{color:var(--color-indigo);font-weight:700}.guide-chapter figure{margin:24px 0}.guide-chapter figure img{display:block;width:100%;height:auto;border:1px solid var(--color-border);border-radius:8px}.guide-chapter figcaption{color:var(--color-text-muted);font-size:.75rem;margin-top:8px}.guide-tip{border-left:3px solid var(--color-indigo);background:var(--color-background);padding:14px 16px;border-radius:0 8px 8px 0;font-size:.85rem}.guide-tip strong{display:block;margin-bottom:4px}.guide-faq{border-top:1px solid var(--color-border);padding:16px 0;font-size:.9rem}.guide-faq summary{cursor:pointer;font-weight:600}.guide-faq p{color:var(--color-text-muted);margin-top:12px}.header-guide-btn{font-size:.8rem;white-space:nowrap}@media(max-width:850px){.guide-layout{grid-template-columns:1fr;gap:20px}.guide-toc{position:static;display:grid;grid-template-columns:1fr 1fr}.guide-toc strong{grid-column:1 / -1;padding-bottom:0}.guide-heading{flex-direction:column;gap:18px}.guide-heading-actions{flex-direction:row;flex-wrap:wrap}.guide-chapter{padding:20px}}@media(max-width:400px){.header-inner{gap:6px}.header-actions{gap:2px}.header-back-btn{font-size:.75rem;padding:6px}.guide-toc{grid-template-columns:1fr}}body:has(.overlay),body:has(.scan-view){overflow:hidden}.scan-sidebar:not(.scan-sidebar--open){visibility:hidden}.scan-view{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:clip}.scan-view>video{position:absolute;inset:0}.scan-header{position:relative;grid-row:1;z-index:17}.scan-sidebar{position:relative;grid-row:2;justify-self:end;top:auto;min-height:0;padding-top:20px}.scan-theme-control{position:relative}.scan-reticle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(70%,calc((100dvh - 160px) / 1.414));aspect-ratio:1 / 1.414;border:2px solid rgba(255,255,255,.5);box-shadow:0 0 0 9999px #00000080;pointer-events:none}.scan-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}.scan-dialog img{max-width:100%;height:auto}.scan-dialog input{background:#11111c;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:8px}.scan-transfer{overflow-y:auto}.scan-transfer>*{flex-shrink:0;max-width:100%}.scan-transfer img{max-width:100%;height:auto}.scan-transfer button{min-height:44px}@media(max-width:700px){body main{padding:20px 16px}.header-inner{padding-inline:12px;gap:8px}.header-actions{gap:4px;min-width:0}.app-logo,.btn,.btn-icon,.btn-type,.theme-option,.toolbar-dropdown__item,.scan-btn,.scan-result-card__edit{min-height:44px}.btn-icon,.scan-btn{min-width:44px}.header-actions .btn{padding-inline:10px}.theme-toggle{flex-shrink:0}.theme-popover{max-height:calc(100dvh - 80px);overflow-y:auto}.btn{line-height:1.4}.input-text,.grading-input,select,textarea,.library-search input,.option-text,.numeric-params select,.numeric-params input[type=number],.question-points-field input.question-points{font-size:16px}.input-text,.grading-input,select,.library-search input,.numeric-params input[type=number],.question-points-field input.question-points{min-height:48px}.activity-title-input{min-height:44px}.input-text,.grading-input,select,textarea{border-radius:8px}.recent-quiz-item{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.recent-quiz-item__info{min-width:0}.recent-quiz-actions{width:100%;margin:0;gap:8px}.recent-quiz-actions>:first-child{flex:1}.local-data-settings summary,.guide-faq summary{min-height:44px;padding-block:10px}.editor-toolbar{width:100%}.toolbar-group{width:100%;gap:8px}.toolbar-group>.btn{flex:1 1 130px}.toolbar-dropdown,.toolbar-dropdown__trigger{width:100%}.toolbar-dropdown__menu{width:100%;min-width:0;max-width:none}.toolbar-dropdown__item{white-space:normal}.editor-toolbar .btn{font-size:.875rem;padding:10px 12px}.question-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.question-actions{grid-column:1 / -1;width:100%;justify-content:space-between;gap:6px}.question-points-field input.question-points{width:64px}.question-type-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.btn-type{padding:6px;font-size:.8125rem;line-height:1.35}.question-text{padding-right:48px}.latex-help-btn{min-width:44px;min-height:44px;right:2px;bottom:2px}.option-item{padding:4px 8px;gap:6px}.option-text{line-height:1.5;min-height:44px}.correct-toggle{min-width:44px;min-height:44px;justify-content:center;padding:10px}.correct-toggle input{width:20px;height:20px}.numeric-params{padding:12px;gap:12px;align-items:stretch}.numeric-params label{flex-direction:column;align-items:stretch;gap:6px;white-space:normal}.numeric-params select,.numeric-params input[type=number]{width:100%}.student-item{gap:12px;overflow-wrap:anywhere}.student-id{flex-shrink:0}#tab-students .card,#tab-grading .card{padding:16px}#tab-grading .grading-config-panel{grid-template-columns:repeat(2,minmax(0,1fr))}#tab-grading .grading-config-panel .form-group{display:flex;flex-direction:column}#tab-grading .grading-config-panel label{flex:1}#tab-grading .form-group:has(#grading-numVersions){grid-column:1 / -1}#tab-grading .form-group:has(#grading-numVersions) label{min-height:0}.layout-cards{grid-template-columns:1fr}.layout-card{display:grid;grid-template-columns:32px minmax(0,1fr);text-align:left;padding:14px;gap:4px 12px}.layout-card__icon{grid-row:span 2}.layout-card small{font-size:.8125rem}.pdf-preview{padding:10px}.pdf-preview-controls{gap:8px}.overlay{padding:12px;height:100dvh}.modal{max-height:calc(100dvh - 24px);min-height:0}.modal-body{min-height:0;overscroll-behavior:contain}.modal .correct-toggle{justify-content:flex-start}.modal img{max-width:100%;height:auto}.import-drop-zone{padding:20px 12px}.import-drop-zone__hint{line-height:1.5}.generation-count-row{grid-template-columns:minmax(0,1fr) 80px;gap:12px}.difficulty-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.difficulty-group .btn{padding-inline:6px}.modal-footer{display:grid;grid-template-columns:1fr;gap:8px}.modal-footer .btn{width:100%;padding:10px 12px}.guide-heading-actions{width:100%;flex-direction:column}.guide-heading-actions .btn{width:100%}.guide-toc a{min-height:44px}.guide-chapter,.guide-quick-start{padding:18px 16px}.guide-chapter ol{padding-left:20px}.guide-chapter li{padding-left:2px}#pwa-install-banner{flex-wrap:wrap;padding-bottom:max(12px,env(safe-area-inset-bottom))!important}#pwa-install-banner>div{width:100%}#pwa-install-banner button{flex:1}#pwa-ios-tooltip{width:calc(100% - 32px)}#pwa-ios-dismiss,#error-banner button{min-height:44px;min-width:44px}#error-banner{gap:12px}#error-banner>span{min-width:0;overflow-wrap:anywhere}.scan-header{padding:max(8px,env(safe-area-inset-top)) 12px 12px;gap:8px}.scan-header__label{min-height:36px;display:flex;align-items:center;padding-right:96px}.scan-header__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;padding:0;gap:8px}.scan-btn{justify-content:center;padding:8px;white-space:normal;font-size:.8125rem;line-height:1.35}.scan-theme-control{position:absolute;right:60px;top:max(4px,env(safe-area-inset-top))}.scan-btn--close{top:max(4px,env(safe-area-inset-top));right:12px}.scan-reticle{width:min(70vw,calc((100dvh - 300px) / 1.414));top:calc(50% + 35px)}.scan-feedback{bottom:calc(68px + env(safe-area-inset-bottom));padding:12px 16px;font-size:.875rem;background:#0a0a0fd9}.scan-sidebar-toggle{bottom:max(16px,env(safe-area-inset-bottom));right:12px;min-height:44px;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:.875rem}.scan-sidebar{width:100%;padding:max(20px,env(safe-area-inset-top)) 16px 80px}.scan-sidebar__empty{color:#ffffffb3}.scan-result-card__name{white-space:normal;overflow-wrap:anywhere}.scan-result-card__detail-row{flex-wrap:wrap}.scan-dialog{padding:16px!important;max-width:calc(100vw - 24px)}.scan-dialog button{min-height:44px;min-width:44px}.scan-dialog input{min-width:0;width:100%;min-height:44px;font-size:16px;padding:8px}.scan-dialog-actions{flex-wrap:wrap}.scan-dialog-actions button{flex:1 1 100%}}@media(max-width:360px){.header-inner{padding-inline:8px;gap:4px}.app-logo{gap:6px}.app-logo__name{font-size:1.1rem}.header-actions{gap:2px}.header-actions .btn{padding-inline:8px}.header-actions .header-guide-btn,.header-actions .header-back-btn{font-size:0;gap:0;width:44px;min-width:44px;padding-inline:0}.header-guide-btn .icon,.header-back-btn .icon{font-size:1rem}.generation-parameters{gap:10px}.generation-parameters label{min-height:2.8em}.question-card{padding:12px}.question-actions{gap:2px}.scan-header__label{font-size:.7rem}}@media(min-width:701px)and (max-width:950px)and (max-height:500px){.btn,.btn-icon,.btn-type,.theme-option,.scan-btn,.scan-result-card__edit{min-height:44px}.btn-icon,.scan-btn{min-width:44px}input,textarea,select{font-size:16px}.overlay{padding:8px;height:100dvh}.modal{max-height:calc(100dvh - 16px)}.modal-header,.modal-body,.modal-footer{padding:12px 16px}.scan-reticle{width:min(35vw,calc((100dvh - 160px) / 1.414))}.scan-sidebar-toggle{bottom:12px}.scan-feedback{bottom:56px;padding:8px 16px;font-size:.875rem}}.cocciquiz-mascot{display:inline-block;width:72px;height:72px;flex-shrink:0;color:var(--color-text)}.app-logo__icon{display:flex;align-items:center}.app-logo__icon>.cocciquiz-mascot{width:32px;height:32px}.home-intro{position:relative;padding-right:96px}.home-intro>.cocciquiz-mascot{position:absolute;right:0;top:0;width:80px;height:80px}.editor-empty>.cocciquiz-mascot{width:72px;height:72px;margin-bottom:8px}.guide-companion{display:flex;align-items:center;gap:14px}.guide-companion>div{min-width:0}.guide-companion .cocciquiz-mascot{width:64px;height:64px}.modal--generating .modal-body>:not(.generation-progress){display:none!important}.generation-progress{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:20px 0}.generation-progress>.cocciquiz-mascot{width:120px;height:120px}.generation-progress>strong{font-size:1.1rem;color:var(--color-text)}.generation-progress__message{color:var(--color-indigo);font-size:.9375rem;min-height:3em;overflow-wrap:anywhere}.generation-progress__hint{max-width:340px;color:var(--color-text-muted);font-size:.8125rem;line-height:1.6}.generation-progress__track{width:160px;height:4px;overflow:hidden;border-radius:4px;background:var(--color-border)}.generation-progress__track span{display:block;width:50%;height:100%;border-radius:inherit;background:var(--color-indigo);animation:cocciquiz-travel 2.4s ease-in-out infinite alternate}.generation-progress .cocciquiz-motion{animation:cocciquiz-breathe 3.4s ease-in-out infinite;transform-origin:60px 70px}.generation-progress .cocciquiz-antennae{animation:cocciquiz-listen 2.8s ease-in-out infinite;transform-origin:60px 29px}.generation-progress .cocciquiz-wing{transform-origin:60px 36px;animation:cocciquiz-wing 2.4s ease-in-out infinite alternate}.generation-progress .cocciquiz-wing--right{animation-direction:alternate-reverse}@keyframes cocciquiz-breathe{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}@keyframes cocciquiz-listen{0%,70%,to{transform:rotate(0)}35%{transform:rotate(-4deg)}}@keyframes cocciquiz-wing{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes cocciquiz-travel{0%{transform:translate(-70%)}to{transform:translate(170%)}}@media(max-width:600px){.home-intro{padding-right:68px}.home-intro>.cocciquiz-mascot{width:60px;height:60px}.guide-companion{gap:8px;align-items:flex-start}.guide-companion .cocciquiz-mascot{width:48px;height:48px}.generation-progress{padding:8px 0;gap:8px}.generation-progress>.cocciquiz-mascot{width:96px;height:96px}}@media(prefers-reduced-motion:reduce){.generation-progress *,.generation-progress *:before{animation:none!important}.generation-progress__track span{width:100%;opacity:.5}}@media print{.app-header,footer,.progress-steps,.save-indicator,.editor-right-panel,.editor-header,.loading-overlay,.overlay,.modal,[data-tooltip]:after,#toggle-results,#results-sidebar,#scan-feedback,#pwa-install-banner,#pwa-ios-tooltip,#theme-link{display:none!important}.btn,button:not(.question-card button){display:none!important}body{background:#fff!important;color:#000!important;font-size:12pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}#app{display:block}main{padding:0!important;max-width:none!important;margin:0!important}.card,.action-card,.question-card,.modal{box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#fff!important;border:1px solid #ccc!important}.question-card{break-inside:avoid;page-break-inside:avoid}.editor-grid{display:block!important}.questions-column{width:100%!important}@page{margin:10mm}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-background);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;flex-direction:column;min-height:100vh}main{flex:1;padding:var(--spacing-lg);max-width:1200px;margin:0 auto;width:100%}main{transition:opacity .3s ease-in-out}.fade-out{opacity:0}.fade-in{opacity:1}.spinner{border:4px solid rgba(0,0,0,.1);width:36px;height:36px;border-radius:50%;border-left-color:var(--primary-color, #4a90e2);animation:spin 1s linear infinite;display:inline-block;border-top:4px solid var(--primary-color, #4a90e2)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
