.app-header{background:#ffffffa6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:12px 20px;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;z-index:50;position:sticky;top:0;transition:all .3s ease-in-out;-webkit-tap-highlight-color:transparent}.app-header.selecting-phase{cursor:default}.header-bottom{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px}.desktop-hidden{display:none!important}.header-left{display:flex;align-items:center;flex:1;min-width:0}.header-center{display:flex;justify-content:center;flex:1}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:1}.app-title{display:flex;align-items:baseline;margin:0;font-size:1.1rem;font-weight:700;color:#1e293b;overflow:hidden;transition:all .3s ease-in-out}.test-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.app-title-name{color:#64748b;white-space:nowrap;flex-shrink:0}@media (max-width: 1024px){.app-title-name{display:none}}.home-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#64748b;cursor:pointer;padding:8px;margin-right:8px;border-radius:6px;transition:all .2s}.home-btn:hover{background:transparent;color:#0ea5e9}.timer-controls{display:flex;align-items:center;gap:12px;background:#f8fafc;padding:6px 16px;border-radius:8px;border:1px solid #e2e8f0}.timer-display{display:flex;flex-direction:column;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.2}.elapsed-time{font-weight:700;font-size:1rem;color:#334155}.time-limit{color:#64748b;font-size:.75rem}.timer-buttons{display:flex;gap:8px}.timer-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.start-btn{background:#10b981;color:#fff}.start-btn:hover{background:#059669;box-shadow:0 4px 12px #10b98133}.pause-btn{background:#f59e0b;color:#fff}.pause-btn:hover{background:#d97706;box-shadow:0 4px 12px #f59e0b33}.resume-btn{background:#3b82f6;color:#fff}.resume-btn:hover{background:#2563eb;box-shadow:0 4px 12px #3b82f633}.timer-status{padding:4px 8px;color:#64748b;font-weight:600;font-size:14px}.submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 24px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #3b82f640}.submit-btn:hover:not(:disabled){background:#2563eb;box-shadow:0 6px 16px #3b82f659}.submit-btn:disabled{background:#cbd5e1;color:#f1f5f9;cursor:not-allowed;box-shadow:none}.instruction-standalone-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:#64748b;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #64748b26}.instruction-standalone-btn:hover{background:#475569;box-shadow:0 4px 12px #64748b40}.menu-container{display:block;position:relative}.menu-toggle-btn{background:#fff;border:1px solid #cbd5e1;color:#334155;border-radius:6px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:all .2s;box-shadow:0 1px 2px #0000000d}.menu-toggle-btn:hover,.menu-toggle-btn.open{background:#f1f5f9;border-color:#94a3b8}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;min-width:180px;display:flex;flex-direction:column;overflow:hidden}.dropdown-item{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border:none;border-bottom:1px solid #f1f5f9;text-align:left;font-size:14px;font-weight:500;color:#475569;cursor:pointer;transition:background .15s,color .15s}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover{background:#f8fafc;color:#1e293b}.dropdown-item.active{color:#3b82f6;font-weight:600}.dropdown-item.active:hover{background:#eff6ff}.signout-item{color:#ef4444}.signout-item:hover{background:#fef2f2;color:#dc2626}.mobile-only-menu-item{display:none}.header-expand-hint{display:none;width:100%;height:12px;justify-content:center;align-items:center;position:absolute;bottom:0;left:0;opacity:.5}.hint-bar{width:40px;height:4px;background-color:#cbd5e1;border-radius:2px;transition:all .3s ease}@media (max-width: 768px){.app-header{display:flex;flex-direction:column;align-items:stretch;padding:12px 16px 16px;gap:0;position:sticky;top:0;cursor:pointer}.app-header.selecting-phase{padding-bottom:12px}.desktop-hidden{display:flex!important}.mobile-hidden{display:none!important}.mobile-only-menu-item{display:block}.header-expand-hint{display:flex}.app-header:hover .header-expand-hint{opacity:.8}.app-header.expanded .hint-bar{width:6px;height:6px;border-radius:50%}.header-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;overflow:hidden;transition:max-height .3s ease-in-out,opacity .3s ease-in-out,margin .3s ease-in-out}.header-top .header-left{flex:1;min-width:0;margin-right:12px}.app-title{font-size:1rem}.submit-btn{padding:8px 16px;font-size:13px;white-space:nowrap}.app-header:not(.expanded) .header-top{max-height:0;opacity:0;margin-bottom:0}.app-header.expanded .header-top{max-height:60px;opacity:1;margin-bottom:12px}.header-bottom{display:flex;justify-content:space-between;align-items:center;width:100%;gap:12px}.header-center{flex:1;min-width:0}.timer-controls{width:100%;justify-content:space-between;padding:8px 12px}.header-right{flex:none;display:flex;align-items:center;gap:8px}}.card{width:100%;max-width:var(--content-max-width, 1050px);margin:0 auto 20px;padding:var(--content-padding, 20px);background:#fff;border:1px solid rgba(226,232,240,.6);border-radius:12px;box-shadow:0 4px 20px #00000008,0 1px 3px #00000005;transition:box-shadow .3s ease,transform .3s ease;box-sizing:border-box}.card--hoverable:hover{box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;transform:translateY(-1px)}@media (max-width: 768px){.card{border-radius:0;border-left:none;border-right:none;margin-bottom:8px;box-shadow:0 1px 2px #0000000d}}.score-badge{display:inline-flex;align-items:baseline;gap:4px;font-weight:600;white-space:nowrap;border-radius:6px;padding:4px 10px;border:1px solid currentColor;box-shadow:0 1px 2px #0000000d}.score-badge__label{font-size:.75em;opacity:.85}.score-badge__value{font-size:1em}.score-badge--overall,.score-badge--main_question{font-size:.85em}.score-badge--perfect{color:#059669;background:#ecfdf5;border-color:#a7f3d0;box-shadow:none}.score-badge--partial{color:#d97706;background:#fffbeb;border-color:#fde68a;box-shadow:none}.score-badge--zero{color:#dc2626;background:#fef2f2;border-color:#fecaca;box-shadow:none}.score-badge--unselected{color:#6b7280;background:#f3f4f6;border-color:#e5e7eb;box-shadow:none}.score-badge--criteria-theme{color:#2563eb;background:#fff;border-color:#93c5fd;box-shadow:none}.total-scoring{margin-bottom:2rem}.overall-comment{font-size:15px;color:#475569;line-height:1.5;background:#f8fafc;padding:12px;border-radius:8px;border:1px solid #e2e8f0}.instruction-title{font-size:18px;font-weight:600;color:#333;margin:0;padding-bottom:0;border-bottom:none}.instruction-text{margin:0 0 12px;font-family:inherit;font-size:16px;white-space:pre-wrap;line-height:1.6;color:#555}.instruction-figure{margin:12px 0;text-align:center}.instruction-figure-img{max-width:100%;height:auto;display:block;margin:0 auto}.instruction-figure figcaption{font-size:.85rem;color:#666;margin-top:4px}.instruction-figure-placeholder{margin:8px 0;padding:8px;background:#f8f9fa;color:#6c757d;font-size:15px;font-style:italic;border:1px dashed #ddd;border-radius:4px}.instruction-markdown{font-size:16px;line-height:1.6;color:#555;margin-bottom:12px}.instruction-markdown p{margin:0 0 8px}.instruction-markdown h2,.instruction-markdown h3,.instruction-markdown h4{margin:12px 0 6px;color:#333}.instruction-markdown ol,.instruction-markdown ul{margin:0 0 8px;padding-left:1.5em}.instruction-markdown li{margin-bottom:4px}.instruction-markdown table{border-collapse:collapse;font-size:15px;margin:8px auto;width:100%}.instruction-markdown th,.instruction-markdown td{border:1px solid #ccc;padding:6px 10px;text-align:left}.instruction-markdown th{background:#f5f5f5;font-weight:600}.blank-placeholder{display:inline-flex;align-items:center;justify-content:center;min-width:4em;border-bottom:1px solid #333;vertical-align:bottom;position:relative}.blank-placeholder,.blank-label{font-weight:700;color:#333;pointer-events:none}.blank-label{font-size:1em;font-weight:700;border-bottom:1.5px solid currentColor;padding:0 1em}.instruction-markdown u,.instruction-text u{text-decoration:none;border-bottom:1.5px solid currentColor;display:inline;font-weight:700}.underline-label{vertical-align:baseline;margin-right:.1em;color:#555}.instruction-table{margin:12px 0;overflow-x:auto}.instruction-table figcaption{font-size:.9rem;color:#555;margin-bottom:6px}.instruction-table table{border-collapse:collapse;font-size:15px;width:100%}.instruction-table th,.instruction-table td{border:1px solid #ccc;padding:6px 10px;text-align:left}.instruction-table th{background:#f5f5f5;font-weight:600}.ref-link{color:inherit;text-decoration:none;border-bottom:1.5px solid currentColor;font-weight:700;cursor:pointer}.ref-link:hover{opacity:.7}@keyframes ref-highlight{0%{background-color:#ffe066;outline:2px solid #f0a500}70%{background-color:#ffe066;outline:2px solid #f0a500}to{background-color:transparent;outline:2px solid transparent}}.ref-target-highlight{animation:ref-highlight 1.8s ease-out forwards;border-radius:2px}@media (max-width: 768px){.instruction-markdown table,.instruction-table table{display:block;overflow-x:auto;white-space:nowrap}}.options{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.option{display:flex;flex:1 1 auto;align-items:flex-start;cursor:pointer;padding:12px 16px;border-radius:8px;border:1px solid #d1d5db;background-color:#fff;transition:all .2s ease-in-out;box-sizing:border-box;max-width:100%}.option.selected{border-color:#3b82f6;background:#eff6ff;box-shadow:0 2px 8px #3b82f626}.option.disabled{cursor:not-allowed;opacity:.6}.option:not(.disabled):hover{background-color:#f9fafb}.option.selected:not(.disabled):hover{background-color:#dbeafe}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.radio-circle{width:20px;height:20px;min-width:20px;border-radius:50%;border:2px solid #9ca3af;margin-right:12px;margin-top:2px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;background-color:#fff;box-sizing:border-box}.option.selected .radio-circle{border-color:#3b82f6;border-width:6px}.option-text{flex:1;line-height:1.5;font-size:16px;color:#374151;word-break:break-word}.option-label{font-weight:600;margin-right:4px}.option.correct-option{border-color:#10b981;background:#ecfdf5!important;opacity:1}.option.correct-option .radio-circle{border-color:#10b981}.option.wrong-selection{border-color:#ef4444;background:#fef2f2!important;opacity:1}.option.wrong-selection .radio-circle{border-color:#ef4444;border-width:6px}.section-toolbar{display:flex;align-items:center;gap:10px;margin-top:6px;padding:4px 0;font-size:13px;color:#64748b}.question-text{margin-bottom:20px;line-height:1.6;color:#334155;font-size:16px}.grid-btn{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.grid-btn:hover{background:#2563eb}.grid-btn.active{background:#ef4444}.grid-btn.active:hover{background:#dc2626}.chars-per-line-control,.max-chars-control{display:flex;align-items:center;gap:4px;font-size:14px}.chars-input{width:80px;padding:4px;border:none!important;border-bottom:1px solid #cbd5e1!important;border-radius:0!important;text-align:center;background:transparent!important;cursor:pointer;box-shadow:none!important;transition:border-color .2s}.chars-input:focus{outline:none!important;border:none!important;border-bottom:2px solid #3b82f6!important;box-shadow:none!important}.character-counter{display:flex;gap:8px;font-size:14px}.counter-item{display:flex;gap:3px}.counter-label{color:#64748b}.counter-value{font-weight:600;color:#334155;min-width:30px;text-align:right}.counter-value.over-limit{color:#ef4444;font-weight:700}.editor-wrapper{position:relative;width:100%}.line-char-counter{position:absolute;top:0;right:-60px;background:#0f172acc;color:#fff;padding:2px 6px;border-radius:4px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;pointer-events:none;z-index:10;width:32px;text-align:center}.cursor-char-counter{position:absolute;background:#3b82f6e6;color:#fff;padding:2px 6px;border-radius:4px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;pointer-events:none;z-index:11;width:32px;text-align:center;box-shadow:0 2px 4px #0000001a}.carry-over-indicator{position:absolute;top:0;color:#64748b80;font-size:14px;pointer-events:none;z-index:9;width:30px;text-align:center}.disabled-cell{position:absolute;background:#ef444414;border:1px solid rgba(239,68,68,.2);pointer-events:none;z-index:5}.section-editor{display:flex;justify-content:flex-start;width:100%;overflow-x:auto}.section-editor:not(.grid-container){display:block}.section-content{width:100%;box-sizing:border-box;padding:14px;border:1px solid #cbd5e1;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic,Meiryo,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:1.6;resize:vertical;outline:none;transition:border-color .2s,box-shadow .2s;background:#fff}.section-content.grid-mode{box-sizing:content-box;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,Courier New,monospace;font-size:20px;line-height:24px;background-image:linear-gradient(to right,#cbd5e1 1px,transparent 2px),linear-gradient(to bottom,#cbd5e1 1px,transparent 2px),linear-gradient(to right,#cbd5e1 1px,transparent 1px),linear-gradient(to bottom,#cbd5e1 1px,transparent 1px);background-size:120px 24px,24px 120px,24px 24px,24px 24px;letter-spacing:4px;padding:1px 0 0 2px;margin:0;border:none;background-color:transparent;overflow:hidden;resize:none}.section-content:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.section-content.grid-mode:focus{border-color:transparent;box-shadow:none}.section-content:disabled,.section-content[readonly]{background-color:#f8fafc;color:#64748b;cursor:not-allowed}.chars-input:disabled{background-color:transparent!important;color:#94a3b8!important;cursor:not-allowed!important;border-bottom-color:#e2e8f0!important}.detailed-scoring{margin-top:20px}.score-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.rule-violations{margin-bottom:24px;background:#fef2f2;padding:16px;border-radius:8px;border:1px solid #fecaca}.rule-violations-title{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 16px;padding-bottom:8px;font-size:18px;font-weight:600;color:#b91c1c;border-bottom:2px solid #ef4444}.rule-violations-list{margin:0 0 0 20px;color:#991b1b}.rule-violations-list li{margin-bottom:4px}.criteria-scores{margin-bottom:16px}.criteria-list{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:16px;margin-bottom:24px}.criteria-item{padding:12px 0;margin:0;border-bottom:1px solid #bfdbfe}.criteria-item:first-child{padding-top:0}.criteria-item:last-child{padding-bottom:0;border-bottom:none}.criteria-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.criteria-name{font-weight:600;color:#334155}.criteria-reason{color:#64748b;font-size:14px;line-height:1.5}.feedback-content{color:#334155;line-height:1.6;white-space:pre-wrap;font-size:15px;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:8px;padding:16px;margin-bottom:24px}.feedback-title{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 16px;padding-bottom:8px;font-size:18px;font-weight:600;color:#6d28d9;border-bottom:2px solid #8b5cf6}.explanation-content{color:#334155;line-height:1.6;font-size:15px;border-radius:8px;padding:16px;border:1px solid transparent;background:transparent;margin-bottom:24px}.explanation-title{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 16px;padding-bottom:8px;font-size:18px;font-weight:600;border-bottom:2px solid transparent}.detailed-explanation--perfect{background:#ecfdf5;border-color:#a7f3d0}.detailed-explanation--perfect .explanation-title{color:#047857;border-bottom-color:#10b981}.detailed-explanation--partial{background:#fffbeb;border-color:#fde68a}.detailed-explanation--partial .explanation-title{color:#b45309;border-bottom-color:#f59e0b}.detailed-explanation--zero{background:#fef2f2;border-color:#fecaca}.detailed-explanation--zero .explanation-title{color:#b91c1c;border-bottom-color:#ef4444}.criteria-title{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 16px;padding-bottom:8px;font-size:18px;font-weight:600;color:#1d4ed8;border-bottom:2px solid #3b82f6}.question-header{display:flex;flex-direction:column;margin-bottom:12px;border-bottom:2px solid #3b82f6;padding-bottom:8px;gap:4px}.question-header-top{display:flex;justify-content:space-between;align-items:baseline;width:100%}.question-title{margin:0;color:#1e293b;font-size:1.15em;font-weight:600;flex:1}.sub-question-instruction{font-size:.95em;font-weight:400;color:#475569;line-height:1.5}.question-item-flat{margin:0 auto;width:100%;max-width:var(--content-max-width);padding:20px 0;border-bottom:1px solid #e2e8f0}.question-item-flat:last-child{border-bottom:none;padding-bottom:0}.question-item-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.question-item-title{font-weight:600;color:#334155;font-size:1em}.inline-answer-row{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.inline-answer-input{padding:8px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:16px;font-family:inherit;outline:none;min-width:120px;max-width:100%;transition:all .2s}.inline-answer-input.answer-type-numeric{width:160px;font-family:SF Mono,Consolas,Courier New,monospace}.inline-answer-input.answer-type-expression{width:240px;font-family:SF Mono,Consolas,Courier New,monospace}.inline-answer-input.answer-type-free_text{width:100%;max-width:320px}.inline-answer-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.inline-answer-input:disabled{background-color:#f8fafc;color:#94a3b8;cursor:not-allowed;border-color:#e2e8f0}.inline-answer-unit{font-size:15px;color:#64748b;white-space:nowrap;font-weight:500}@media (max-width: 768px){.line-char-counter,.carry-over-indicator{display:none}}.scoring-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.scoring-dialog{background:#fff;border-radius:12px;padding:40px 48px;min-width:320px;max-width:90vw;text-align:center;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;align-items:center;gap:16px}.scoring-title{font-size:1.3rem;font-weight:600;color:#333;margin:0}.scoring-label{color:#666;font-size:.95rem;margin:0;min-height:1.4em}.scoring-count{color:#888;font-size:.85rem;margin:0}.scoring-progress-bar{width:240px;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.scoring-progress-fill{height:100%;background:#17a2b8;border-radius:4px;transition:width .4s ease}.scoring-spinner{width:48px;height:48px;border:4px solid #e9ecef;border-top-color:#17a2b8;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scoring-done-icon{width:52px;height:52px;border-radius:50%;background:#28a745;color:#fff;font-size:1.6rem;display:flex;align-items:center;justify-content:center}.scoring-error-icon{width:52px;height:52px;border-radius:50%;background:#dc3545;color:#fff;font-size:1.4rem;display:flex;align-items:center;justify-content:center}.scoring-ok-btn{margin-top:8px;padding:10px 40px;background:#17a2b8;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s}.scoring-ok-btn:hover{background:#138496}.scoring-ok-btn.error{background:#dc3545}.scoring-ok-btn.error:hover{background:#c82333}.exam-selector-container{padding-top:2rem}.exam-selector-card h2{font-size:1.4rem;color:#333;margin-bottom:1.25rem}.exam-filters{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.exam-filters select{padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;flex:1;min-width:130px}.exam-filters button{padding:8px 20px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.exam-filters button:hover:not(:disabled){background:#2563eb}.exam-filters button:disabled{opacity:.6;cursor:not-allowed}.exam-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.exam-error{color:#ef4444;font-size:14px}.exam-loading,.exam-empty{color:#64748b;font-size:14px;padding:.5rem 0;list-style:none}.dd-subject-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;overflow:hidden}.dd-subject-btn{width:100%;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;text-align:left}.dd-subject-btn:hover,.dd-subject-btn.open{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.dd-term-list{list-style:none;margin:.25rem 0 0 1rem;display:flex;flex-direction:column;gap:.25rem;border-left:2px solid #e2e8f0;padding-left:.75rem}.dd-term-btn{width:100%;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s;text-align:left}.dd-term-btn:hover,.dd-term-btn.open{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.dd-exam-list{list-style:none;margin:.25rem 0 0 1rem;display:flex;flex-direction:column;gap:.35rem;border-left:2px solid #e2e8f0;padding-left:.75rem}.dd-exam-item-container{border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#fff;margin-bottom:.35rem}.dd-exam-list{list-style:none;margin:.25rem 0 0 1rem;display:flex;flex-direction:column;border-left:2px solid #e2e8f0;padding-left:.75rem}.dd-exam-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;transition:all .2s;background:#fff}.dd-exam-item.expanded{background:#f8fafc;border-bottom:1px solid #e2e8f0}.dd-exam-item:hover{background:#f0fdf4}.exam-title{font-size:14px;color:#334155;font-weight:500}.dd-exam-item:hover .exam-title{color:#166534}.exam-meta{font-size:12px;color:#64748b;white-space:nowrap;margin-left:1rem}.dd-chevron{font-size:11px;color:#94a3b8;margin-left:.5rem;transition:transform .2s}.open>.dd-chevron{color:#3b82f6}.exam-sessions-panel{padding:16px;background:#f8fafc;display:flex;flex-direction:column;gap:16px}.start-new-btn{background-color:#10b981;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-weight:700;cursor:pointer;transition:background-color .2s;align-self:flex-start}.start-new-btn:hover{background-color:#059669}.sessions-list-wrapper{display:flex;flex-direction:column;gap:8px}.sessions-header{font-size:13px;color:#64748b;margin:0 0 4px;font-weight:600}.sessions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.session-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s}.session-item:hover{background:#eff6ff;border-color:#93c5fd;transform:translate(2px)}.session-date{font-size:14px;color:#334155;font-weight:500}.session-status{font-size:12px;padding:4px 8px;border-radius:12px;font-weight:600}.status-in_progress,.status-paused{background-color:#fef3c7;color:#d97706}.status-submitted{background-color:#e0e7ff;color:#4338ca}.status-scored{background-color:#dcfce7;color:#15803d}.status-error{background-color:#fee2e2;color:#b91c1c}.instruction-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172a66;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.instruction-modal-content{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e2e8f0}.instruction-modal-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:32px;word-break:break-word;overflow-wrap:break-word}.instruction-modal-footer{padding:20px 32px;border-top:1px solid #e2e8f0;display:flex;justify-content:center;background-color:#f8fafc}.instruction-modal-start-btn{background:#10b981;color:#fff;border:none;border-radius:8px;padding:12px 48px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #10b9814d}.instruction-modal-start-btn:hover{background:#059669;box-shadow:0 6px 16px #10b98166}.instruction-modal-start-btn:active{transform:translateY(1px);box-shadow:0 2px 4px -1px #3b82f633}@media (max-width: 768px){.instruction-modal-overlay{padding:16px}.instruction-modal-body{padding:24px 16px}.instruction-modal-footer{padding:16px}.instruction-modal-start-btn{width:100%;padding:14px}}.terms-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172a66;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.terms-modal-content{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e2e8f0}.terms-modal-header{padding:20px 32px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.terms-modal-header h2{margin:0;font-size:1.25rem;color:#1e293b}.terms-modal-close-icon{background:none;border:none;font-size:24px;cursor:pointer;color:#64748b;padding:4px;line-height:1}.terms-modal-close-icon:hover{color:#0f172a}.terms-modal-body{flex:1;overflow-y:auto;padding:32px;word-break:break-word;color:#334155;line-height:1.6}.terms-modal-body h1,.terms-modal-body h2,.terms-modal-body h3{margin-top:0;color:#1e293b}.terms-modal-body ol,.terms-modal-body ul{padding-left:20px;margin-bottom:16px}.terms-modal-footer{padding:20px 32px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:12px;background-color:#f8fafc}.terms-modal-close-btn{background:#fff;color:#475569;border:1px solid #cbd5e1;border-radius:8px;padding:10px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.terms-modal-close-btn:hover{background:#f1f5f9}.terms-modal-agree-btn{background:#3b82f6;color:#fff;border:none;border-radius:8px;padding:10px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.terms-modal-agree-btn:hover:not(:disabled){background:#2563eb}.terms-modal-agree-btn:disabled{background:#94a3b8;cursor:not-allowed;opacity:.7}*{margin:0;padding:0;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}:root{--content-max-width: 1050px;--content-padding: 20px}html,body{height:100vh;height:100dvh;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic,Meiryo,Helvetica Neue,Arial,sans-serif;background-color:#f8fafc}#root{height:100vh;height:100dvh}.app{height:100vh;height:100dvh;background-color:#f8fafc;display:flex;flex-direction:column;overflow:hidden}.app-main{flex:1;padding:24px 20px}.add-section-btn{padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:14px;font-weight:600;margin-right:8px;box-shadow:0 2px 4px #3b82f64d}.add-section-btn:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #3b82f666}.add-section-btn:disabled{background:#94a3b8;cursor:not-allowed;transform:none;box-shadow:none;opacity:.6}.add-section-btn:disabled:hover{background:#94a3b8;transform:none;box-shadow:none}.url-input{padding:8px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;min-width:200px}.url-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.chars-per-line-control{display:flex;align-items:center;gap:8px;font-size:16px;padding:8px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px}.chars-input{width:80px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:4px;text-align:center;background:#fff;cursor:pointer;font-size:14px}.question-title{margin:0;color:#1e293b;font-size:1.25em;font-weight:600}.section-title{font-size:1.5rem;font-weight:700;margin:0 0 1rem;color:#1e293b;border-bottom:2px solid #3b82f6;padding-bottom:.5rem;width:100%;display:flex;align-items:baseline;gap:12px}.section-title .score-badge{margin-left:auto;flex-shrink:0}.section-title.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s,margin-bottom .2s cubic-bezier(.4,0,.2,1)}.section-title.collapsible:hover{opacity:.8}.section-title.collapsible:before{content:"▼ ";font-size:.7em;color:#3b82f6;display:inline-block;transform:translateY(-2px)}.section-title.collapsible.collapsed{margin-bottom:0}.section-title.collapsible.collapsed:before{content:"▶ "}.section-collapsible-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);opacity:1}.section-collapsible-wrapper.collapsed{grid-template-rows:0fr;opacity:0;pointer-events:none}.section-collapsible-content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.section-title.instruction{border-bottom-color:#94a3b8}.section-title.instruction.collapsible:before{color:#94a3b8}.section-title.main-question,.section-title.selectable{align-items:center}.selection-checkbox{display:inline-block;width:22px;height:22px;border:2px solid #cbd5e1;border-radius:6px;flex-shrink:0;cursor:pointer;background:#fff;position:relative;transition:all .2s}.selection-checkbox:hover:not(.disabled){border-color:#94a3b8}.selection-checkbox.checked{border-color:#3b82f6;background:#3b82f6}.selection-checkbox.checked:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:12px;border:2px solid white;border-top:none;border-left:none;transform:rotate(45deg)}.selection-checkbox.disabled{border-color:#e2e8f0;background:#f1f5f9;cursor:not-allowed}.selection-checkbox.disabled.checked{border-color:#94a3b8;background:#94a3b8}.sub-question-wrapper{margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.sub-question-wrapper.first{margin-top:0;padding-top:8px;border-top:none}.selection-hint{font-size:.875rem;font-weight:500;color:#64748b;margin-left:8px}.section-title.selected .selection-hint{color:#3b82f6}.sub-question-group .question-header{margin-bottom:8px;display:flex;flex-direction:column;gap:4px}.sub-question-instruction{font-size:.95em;color:#475569;line-height:1.5;padding:10px 14px;background:#f8fafc;border-left:4px solid #3b82f6;border-radius:0 8px 8px 0;margin-top:8px;margin-bottom:12px;width:100%;box-sizing:border-box}.question-item-flat{margin-bottom:16px}.question-item-flat .section{border:none;border-radius:0;margin:0;padding:0;max-width:none}.question-item-flat .section.normal-mode{width:100%}.question-item-flat+.question-item-flat .section{border-top:1px solid #e2e8f0;padding-top:16px}.auth-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:#f8fafc}.auth-form{background:#fff;padding:2.5rem;border-radius:12px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;gap:1.25rem;width:100%;max-width:360px;border:1px solid #e2e8f0}.auth-form h1{font-size:1.5rem;color:#1e293b;text-align:center;margin-bottom:.5rem}.auth-form input{padding:12px 16px;border:1px solid #cbd5e1;border-radius:8px;font-size:15px;transition:all .2s}.auth-form input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.auth-form button{padding:12px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.auth-form button:hover:not(:disabled){background:#2563eb}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#ef4444;font-size:14px;text-align:center;background:#fef2f2;padding:8px;border-radius:6px}.auth-switch{text-align:center;font-size:14px;color:#64748b;margin-top:.5rem}.auth-switch a{color:#3b82f6;text-decoration:underline;cursor:pointer;font-weight:500}.auth-switch a:hover{color:#2563eb}.terms-checkbox-container{font-size:14px;color:#475569;display:flex;align-items:center}.terms-checkbox-container label{display:flex;align-items:center;gap:8px;cursor:pointer}.terms-checkbox-container input[type=checkbox]{width:16px;height:16px;padding:0;margin:0}.terms-checkbox-container a{color:#3b82f6;text-decoration:underline}.terms-checkbox-container a:hover{color:#2563eb}@media (max-width: 768px){:root{--content-padding: 16px}.app-main{padding:0 0 40px}.section-title{font-size:1.25rem;margin:1rem auto .5rem}}
