:root{--brand-orange:#F47B3E;--brand-red:#E03C38;--brand-dark:#1C1C1E;--text-primary:#1a1a1a;--text-muted:#6b7280;--border:#e5e7eb;--bg-page:#f3f4f6;--bg-card:#ffffff;--blue-accent:#2563eb;--green:#16a34a;--radius:10px;--shadow:0 2px 12px rgba(0,0,0,0.08)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-page);color:var(--text-primary);min-height:100vh}.aa-header{background:var(--brand-dark);padding:0 24px;height:56px;width:100%;min-width:100%;display:flex;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:100}@media (max-width:600px){.aa-header{padding:0 12px}.aa-header-right{gap:8px}.section-badge{display:none}.lang-switcher{gap:0}.lang-btn{padding:4px 6px;font-size:11px}}.aa-home-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background .15s;flex-shrink:0}.aa-home-btn:hover{background:rgba(255,255,255,.18)}.aa-logo{display:flex;align-items:center;gap:10px;text-decoration:none}.aa-logo-icon{width:36px;height:36px;flex-shrink:0}.aa-logo-text{font-size:15px;font-weight:700;letter-spacing:.02em;color:#fff;line-height:1.1}.aa-logo-text span{color:#9ca3af;font-weight:400}.aa-header-right{gap:16px}.aa-header-right,.timer-badge{display:flex;align-items:center}.timer-badge{gap:7px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:5px 12px;color:#fff;font-size:14px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.05em}.timer-badge svg{opacity:.7}.timer-badge.warning{background:rgba(234,179,8,.15);border-color:#ca8a04;color:#fde68a}.timer-badge.danger{background:rgba(220,38,38,.2);border-color:#dc2626;color:#fca5a5;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.section-badge{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-orange);padding:3px 8px;border:1px solid var(--brand-orange);border-radius:4px}.main-layout{display:grid;grid-template-columns:1fr 220px;grid-gap:20px;gap:20px;max-width:1100px;margin:24px auto;padding:0 20px 40px}@media (max-width:768px){.main-layout{grid-template-columns:1fr}.sidebar{order:-1}}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.part-header{padding:14px 20px 12px;border-bottom:1px solid var(--border);display:flex;align-items:baseline;gap:10px}.part-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-orange)}.question-counter{font-size:13px;color:var(--text-muted);margin-left:auto}.audio-section{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:#fafafa}.play-btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand-dark);color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.play-btn:hover:not(:disabled){background:#333}.play-btn:disabled{opacity:.45;cursor:not-allowed}.play-btn.played{background:#4b5563}.play-hint{font-size:12px;color:var(--text-muted)}.volume-control{display:flex;align-items:center;gap:6px;margin-left:auto}.volume-control svg{color:var(--text-muted);flex-shrink:0}.volume-control input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:80px;height:4px;background:#d1d5db;border-radius:2px;outline:none;cursor:pointer}.volume-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--brand-dark);cursor:pointer}.volume-control input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--brand-dark);border:none;cursor:pointer}@media (max-width:600px){.audio-section{flex-wrap:wrap}.volume-control{width:100%;margin-left:0}.volume-control input[type=range]{flex:1 1}}.photo-section{padding:20px;border-bottom:1px solid var(--border);text-align:center;background:#f9fafb}.photo-section img{max-width:100%;max-height:320px;object-fit:contain;border-radius:6px;box-shadow:0 1px 6px rgba(0,0,0,.12)}.question-body{padding:20px}.question-instruction{font-size:13px;color:var(--text-muted);margin-bottom:14px;font-style:italic}.question-item{margin-bottom:24px}.question-item:last-child{margin-bottom:0}.question-text{font-size:16px;font-weight:500;line-height:1.6;margin-bottom:14px}.passage-box{background:#f8f9fb;border:1px solid var(--border);border-radius:8px;padding:16px 18px;font-size:14.5px;line-height:1.8;margin-bottom:20px;white-space:pre-wrap}.blank-highlight{display:inline-block;background:#fef3c7;border:1.5px solid #d97706;border-radius:4px;padding:0 8px;font-weight:700;color:#92400e;font-size:13px}.blank-active{background:#dbeafe;border-color:var(--blue-accent);color:var(--blue-accent)}.options-list{list-style:none;display:flex;flex-direction:column;gap:8px}.option-item label{display:flex;align-items:flex-start;gap:11px;padding:11px 14px;border:1.5px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;font-size:15px;line-height:1.4}.option-item label:hover{border-color:var(--brand-orange);background:#fff7f2}.option-item input[type=radio]{display:none}.option-item input[type=radio]:checked+label{border-color:var(--brand-orange);background:#fff4ee}.option-letter{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-muted);margin-top:1px}input[type=radio]:checked+label .option-letter{background:var(--brand-orange);color:#fff}.nav-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px}.btn,.nav-footer{align-items:center}.btn{display:inline-flex;gap:6px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:background .15s,opacity .15s}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-secondary{background:#f3f4f6;color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-primary{background:var(--brand-dark);color:#fff}.btn-primary:hover:not(:disabled){background:#333}.btn-orange{background:var(--brand-orange);color:#fff}.btn-orange:hover:not(:disabled){background:#e5671e}.btn-submit{background:var(--green);color:#fff}.btn-submit:hover:not(:disabled){background:#15803d}.sidebar{display:flex;flex-direction:column;gap:16px}.sidebar-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.palette{display:flex;flex-wrap:wrap;gap:6px}.palette-btn{width:30px;height:30px;border-radius:6px;border:1.5px solid var(--border);background:#f9fafb;font-size:11px;font-weight:600;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s}.palette-btn.current{border-color:var(--brand-orange);color:var(--brand-orange);background:#fff4ee}.palette-btn.answered{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.palette-btn.answered.current{background:var(--brand-orange);border-color:var(--brand-orange)}.palette-btn.locked{background:#fee2e2;border-color:#fca5a5;color:#ef4444;cursor:not-allowed;opacity:.7}.palette-legend{margin-top:10px;display:flex;flex-direction:column;gap:5px}.legend-item{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text-muted)}.legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}.cover-page{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center;padding:32px 20px}.cover-card{background:var(--bg-card);border-radius:16px;box-shadow:0 4px 32px rgba(0,0,0,.1);border:1px solid var(--border);max-width:640px;width:100%;overflow:hidden}.cover-hero{background:var(--brand-dark);padding:36px 40px 28px;text-align:center}.cover-hero h1{font-size:24px;font-weight:800;color:#fff;line-height:1.25;letter-spacing:-.01em}.cover-hero p{margin-top:6px;font-size:14px;color:#9ca3af}.cover-test-number{margin-top:8px;font-size:13px;font-weight:700;color:#f5a623;letter-spacing:.08em;text-transform:uppercase}.cover-body{padding:32px 40px}.test-meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-bottom:28px}.meta-item{background:#f9fafb;border:1px solid var(--border);border-radius:8px;padding:12px 14px}.meta-item .meta-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:3px}.meta-item .meta-val{font-size:15px;font-weight:700;color:var(--text-primary)}.form-label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.form-input{width:100%;padding:10px 13px;border:1.5px solid var(--border);border-radius:8px;font-size:15px;outline:none;transition:border-color .15s;margin-bottom:14px}.form-input:focus{border-color:var(--brand-orange)}.instructions-toggle{background:none;border:none;color:var(--blue-accent);font-size:13px;cursor:pointer;padding:0;text-decoration:underline;margin-bottom:20px;display:block}.instructions-box{background:#f8f9fb;border:1px solid var(--border);border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.7;margin-bottom:20px;display:none}.instructions-box.open{display:block}.instructions-box ul{padding-left:18px}.instructions-box li{margin-bottom:5px}.start-btn{width:100%;padding:14px;background:var(--brand-orange);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s;letter-spacing:.01em}.start-btn:hover{background:#e5671e}.start-btn:disabled{opacity:.4;cursor:not-allowed}.disclaimer-text{margin-top:20px;font-size:11px;color:#9ca3af;line-height:1.6;text-align:center}@media print{@page{margin:18mm 16mm}#download-card,#retake-btn,.aa-header,.disclaimer-text,.lang-switcher,.toast{display:none!important}#print-header{display:block!important}body{background:#fff!important}.results-page{max-width:100%;padding:0}.score-hero{background:#1C1C1E!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:12px;padding:24px;margin-bottom:16px}.results-grid{grid-template-columns:1fr 1fr;gap:12px}.result-section-card,.results-card{page-break-inside:avoid;break-inside:avoid;border:1px solid #e5e7eb;box-shadow:none}.score-bar-fill{-webkit-print-color-adjust:exact;print-color-adjust:exact}}#question-photo{filter:grayscale(100%)}.question-body.passage-split{display:flex;gap:20px;align-items:flex-start}.question-body.passage-split>div:first-child{min-width:0}.question-body.passage-split #passage-wrapper,.question-body.passage-split>div:first-child{flex:1 1;position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 120px);overflow-y:auto}.question-body.passage-split #group-q,.question-body.passage-split #single-q,.question-body.passage-split>div:last-child{flex:1 1;min-width:0}@media (max-width:768px){.question-body.passage-split{flex-direction:column}.question-body.passage-split>div:first-child{position:static;max-height:40vh;overflow-y:auto;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:4px}.question-body.passage-split #passage-wrapper{position:static;max-height:40vh}}.section-break{min-height:calc(100vh - 56px);display:flex;align-items:center;justify-content:center;padding:24px}.section-break-card{background:var(--bg-card);border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow);max-width:540px;width:100%;padding:40px;text-align:center}.section-break-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:28px}.section-break-card h2{font-size:22px;font-weight:800;margin-bottom:8px}.section-break-card p{color:var(--text-muted);font-size:14px;line-height:1.6;margin-bottom:24px}.results-page{max-width:800px;margin:0 auto;padding:28px 20px 60px}.score-hero{background:var(--brand-dark);border-radius:14px;padding:32px;text-align:center;margin-bottom:20px;color:#fff}.score-hero h2{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#9ca3af;margin-bottom:8px}.score-total{font-size:72px;font-weight:900;line-height:1;color:#fff;letter-spacing:-.03em}.score-max{font-size:22px;font-weight:400;color:#6b7280}.cefr-band{display:inline-block;margin-top:12px;background:var(--brand-orange);color:#fff;border-radius:6px;padding:4px 14px;font-size:14px;font-weight:700;letter-spacing:.05em}.cefr-summary{margin-top:8px;font-size:13px;color:#9ca3af}.results-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:20px}@media (max-width:600px){.results-grid{grid-template-columns:1fr}}.result-section-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.result-section-card h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:14px}.score-bar-row{margin-bottom:10px}.score-bar-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}.score-bar-label span:first-child{color:var(--text-primary);font-weight:500}.score-bar-label span:last-child{color:var(--text-muted)}.score-bar-track{height:7px;background:#e5e7eb;border-radius:99px;overflow:hidden}.score-bar-fill{height:100%;border-radius:99px;background:var(--brand-orange);transition:width .8s cubic-bezier(.4,0,.2,1)}.score-bar-fill.low{background:var(--brand-red)}.score-bar-fill.high{background:var(--green)}.results-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);margin-bottom:16px}.results-card h3{font-size:15px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px}.tip-item{padding:12px 14px;border-radius:8px;border-left:3px solid var(--brand-orange);background:#fff7f2;margin-bottom:10px;font-size:13.5px;line-height:1.6}.tip-item strong{display:block;margin-bottom:3px}.tip-item:last-child{margin-bottom:0}.tip-item.good{border-left-color:var(--green);background:#f0fdf4}.email-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);margin-bottom:16px}.email-card h3{font-size:15px;font-weight:700;margin-bottom:12px}.email-row{display:flex;gap:10px}.email-row .form-input{margin-bottom:0}.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;align-items:center;justify-content:center}.modal-overlay.open{display:flex}.modal{background:#fff;border-radius:14px;padding:28px 32px;max-width:420px;width:90%;text-align:center;box-shadow:0 8px 40px rgba(0,0,0,.2)}.modal h3{font-size:18px;font-weight:800;margin-bottom:10px}.modal p{font-size:14px;color:var(--text-muted);margin-bottom:20px;line-height:1.6}.modal-actions{display:flex;gap:10px;justify-content:center}.toast{position:fixed;bottom:24px;right:24px;background:var(--brand-dark);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s;pointer-events:none;z-index:300}.toast.show{opacity:1;transform:translateY(0)}.toast.success{background:var(--green)}.toast.error{background:var(--brand-red)}.lang-switcher{display:flex;align-items:center;gap:2px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:3px}.lang-btn{background:none;border:none;color:#9ca3af;font-size:11px;font-weight:600;padding:4px 9px;border-radius:5px;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;letter-spacing:.01em}.lang-btn:hover{color:#fff;background:rgba(255,255,255,.1)}.lang-btn.active{background:rgba(255,255,255,.15);color:#fff}.text-muted{color:var(--text-muted)}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.d-none{display:none!important}.doc-card{border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px;margin-bottom:14px;background:#fff}.doc-card:last-child{margin-bottom:0}.doc-label{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6b7280;background:#f3f4f6;border-radius:4px;padding:3px 8px;margin-bottom:10px}.doc-heading{font-size:15px;font-weight:800;color:#1c1c1e;margin-bottom:8px;line-height:1.4}.doc-line{font-size:13.5px;line-height:1.75;color:#374151}.doc-line.blank{height:.7em}.doc-card.email .doc-line.header-field,.doc-card.letter .doc-line.header-field,.doc-card.memo .doc-line.header-field{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:#4b5563}.doc-card.email .doc-header-block,.doc-card.letter .doc-header-block,.doc-card.memo .doc-header-block{border-bottom:1px solid #e5e7eb;padding-bottom:8px;margin-bottom:10px}.doc-card.chat .doc-line{padding:4px 0;border-bottom:1px dashed #f3f4f6}.doc-card.chat .doc-line:last-child{border-bottom:0}.doc-card.agenda .doc-row,.doc-card.schedule .doc-row{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;line-height:1.7;padding:3px 0;border-bottom:1px solid #f3f4f6}.doc-card.agenda .doc-row span:first-child,.doc-card.schedule .doc-row span:first-child{font-weight:700;color:#1c1c1e;min-width:8ch}.doc-card.schedule .doc-row.header-row{font-weight:700;color:#1c1c1e;border-bottom:2px solid #d1d5db}.doc-card.schedule .doc-row.header-row span{font-weight:700}.doc-card.schedule{background:#f9fafb;border-color:#d1d5db}.doc-card.review .doc-heading{color:#b45309}.doc-card.notice{background:#fffbeb;border-color:#fde68a}.blank-marker{display:inline-block;min-width:60px;padding:0 6px;border-bottom:2px solid #9ca3af;text-align:center;font-weight:700;color:#6b7280}.blank-marker.filled{border-bottom-color:#f47b3e;color:#1c1c1e;background:#fff7ed;border-radius:3px 3px 0 0}.blank-marker.active{border-bottom-color:#1c1c1e;background:#fef3c7}.review-item{border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px;margin-bottom:12px}.review-q{font-size:14px;font-weight:700;color:#1c1c1e;margin-bottom:10px}.review-choice{display:flex;align-items:flex-start;gap:8px;font-size:13px;padding:5px 10px;border:1.5px solid transparent;border-radius:5px;margin-bottom:4px;line-height:1.6}.review-choice .letter{font-weight:700;min-width:18px}.review-choice.correct{background:#dcfce7;border-color:#86efac}.review-choice.chosen{background:#fee2e2;border-color:#fca5a5}.review-badge{margin-left:auto;font-weight:700;white-space:nowrap;font-size:12px}.review-choice.correct .review-badge{color:#16a34a}.review-choice.chosen .review-badge{color:#dc2626}.review-rationale{padding:8px 10px;background:#f8fafc;border-left:3px solid #cbd5e1;border-radius:0 4px 4px 0}.review-rationale,.review-script{margin-top:8px;font-size:12.5px;line-height:1.7;color:#475569;white-space:pre-wrap}.review-part-heading{font-size:12px;font-weight:700;text-transform:uppercase;color:#6b7280;letter-spacing:.06em;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid #e5e7eb}.review-toggle{background:none;border:0;color:#f47b3e;font-weight:700;font-size:13px;cursor:pointer;padding:4px 0}.sync-banner{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9998;display:flex;align-items:center;gap:12px;max-width:92vw;padding:12px 18px;border-radius:10px;font-size:13.5px;font-weight:600;box-shadow:0 4px 20px rgba(0,0,0,.12)}.sync-banner.success{background:#dcfce7;color:#166534;border:1px solid #86efac}.sync-banner.error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}.sync-banner button{background:#e03c38;color:#fff;border:0;border-radius:6px;padding:6px 14px;font-weight:700;font-size:13px;cursor:pointer}.portal-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;background:#f4f4f5}.portal-gate-card{max-width:420px;width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:32px 28px;text-align:center;box-shadow:0 4px 24px rgba(0,0,0,.06)}@media print{.review-toggle,.sync-banner{display:none!important}}