:root{color:#18181b;--bg:#f5f5f7;--card:#fff;--text:#18181b;--muted:#71717a;--border:#e5e7eb;--input:#fff;--accent:#6366f1;--danger:#dc2626;--badge-bg:#e0e7ff;--badge-text:#4338ca;background:#f5f5f7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root.dark{--bg:#09090b;--card:#18181b;--text:#f4f4f5;--muted:#a1a1aa;--border:#3f3f46;--input:#27272a;--accent:#818cf8;--badge-bg:#312e81;--badge-text:#c7d2fe}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0}body{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}button{touch-action:manipulation}.app-shell{background:var(--bg);min-height:100vh;color:var(--text)}.topbar{color:#fff;z-index:100;background:#18181b;align-items:center;gap:14px;height:56px;padding:0 18px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0003}.brand{white-space:nowrap;align-items:center;gap:8px;display:flex}.brand strong{font-size:15px}.brand-school{align-items:center;min-width:0;margin-right:auto;display:flex}.brand-school img{object-fit:contain;max-width:145px;height:34px}.top-actions{align-items:center;gap:5px;display:flex}.top-actions button{color:#a1a1aa;cursor:pointer;background:0 0;border:1px solid #3f3f46;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:600}.top-actions button.active{color:#fff;background:#6366f1;border-color:#6366f1}.page{max-width:760px;margin:0 auto;padding:20px 16px 50px}.narrow{max-width:720px;margin:auto}.card{background:var(--card);border:1.5px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.card-title,.panel-title{margin-bottom:16px;font-size:14px;font-weight:800}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.field-input{box-sizing:border-box;border:1.5px solid var(--border);background:var(--input);width:100%;color:var(--text);border-radius:7px;outline:none;padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.field-input:focus{border-color:var(--accent)}.field-input.compact{margin-bottom:5px;padding:7px 10px;font-size:13px}.field-textarea{resize:vertical}.qp-header-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.qp-section-grid{grid-template-columns:1fr 1fr 1fr;gap:10px;display:grid}.btn{cursor:pointer;border:0;border-radius:7px;padding:9px 15px;font-family:inherit;font-size:13px;font-weight:650;transition:opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-small{padding:5px 10px;font-size:12px}.btn-full{width:100%}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{color:#374151;border:1.5px solid var(--border);background:#f3f4f6}.dark .btn-secondary,:root.dark .btn-secondary{color:#e4e4e7;background:#27272a}.btn-danger{color:#dc2626;background:#fee2e2;border:1.5px solid #fca5a5}.btn-success{color:#065f46;background:#d1fae5;border:1.5px solid #6ee7b7}.btn-ghost{color:var(--muted);background:0 0;border:1.5px solid #0000}.badge{letter-spacing:.03em;white-space:nowrap;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.marks-summary{background:#f0fdf4;border:1.5px solid #86efac;border-radius:10px;margin-bottom:16px;padding:12px 16px}.marks-summary.over{background:#fef2f2;border-color:#fca5a5}.marks-summary>div:first-child{color:#166534;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.marks-summary.over>div:first-child{color:#dc2626}.marks-summary b{font-size:13px}.progress{background:#e5e7eb;border-radius:99px;height:6px;overflow:hidden}.progress div{background:#22c55e;border-radius:99px;height:100%}.marks-summary.over .progress div{background:#ef4444}.section-card,.section-card-wrap{position:relative}.section-footer-actions{z-index:2;justify-content:flex-end;margin-top:-26px;margin-bottom:16px;padding:0 20px;display:flex;position:relative}.section-head{align-items:center;gap:8px;margin-bottom:16px;display:flex}.section-title{flex:1;font-size:14px;font-weight:700}.section-arrows{flex-direction:column;display:flex}.section-arrows button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:10px}.section-arrows button:disabled{color:#d1d5db}.drag-handle{color:#a1a1aa;cursor:grab;font-size:18px;line-height:1}.section-drag{padding:2px}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:16px}.danger-text{color:#f87171}.section-config{margin-bottom:14px}.question-editor{background:color-mix(in srgb,var(--card) 92%,#fafafa);border:1.5px solid var(--border);border-radius:9px;margin-bottom:10px;padding:14px 16px}.question-editor-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.question-editor-head .btn{padding:2px 6px}.rich-wrap{border:1.5px solid var(--border);background:var(--input);border-radius:7px;overflow:hidden}.rich-toolbar{border-bottom:1px solid var(--border);background:#f8fafc;flex-wrap:wrap;align-items:center;gap:2px;padding:4px;display:flex}.dark .rich-toolbar,:root.dark .rich-toolbar{background:#27272a}.rich-toolbar button,.rich-toolbar select{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:4px 7px;font-size:12px}.rich-toolbar button:hover{background:#e5e7eb}.rich-toolbar select{border-color:var(--border)}.rich-editor{min-height:58px;color:var(--text);outline:none;padding:8px 10px;font-size:13px;line-height:1.5}.rich-editor:empty:before{content:attr(data-placeholder);color:#9ca3af;pointer-events:none}.question-table,.preview-table{border-collapse:collapse;width:100%;margin:7px 0}.question-table td,.question-table th,.preview-table td,.preview-table th{text-align:left;border:1px solid #aaa;padding:4px 7px}.option-row{align-items:center;gap:6px;margin-bottom:5px;display:flex}.option-row>span{width:20px;color:var(--muted);font-size:12px;font-weight:700}.two-col{grid-template-columns:1fr 1fr;gap:8px;display:grid}.toolbar-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.small-muted{color:var(--muted);font-size:11px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;font-weight:650}.diagram-preview img{border:1px solid var(--border);border-radius:7px;max-width:100%;max-height:180px;display:block}.diagram-space,.preview-diagram-space{text-align:center;color:#9ca3af;border:1.5px dashed #a1a1aa;border-radius:7px;padding:14px;font-size:12px}.draw-box{border:1.5px solid var(--border);background:#f8fafc;border-radius:10px;padding:12px}.draw-canvas{touch-action:none;cursor:crosshair;background:#fff;border:1px solid #d1d5db;border-radius:7px;max-width:100%;margin-top:7px;display:block}.ai-box{background:#eef2ff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;display:flex}.ai-label{color:#4338ca;font-size:11px;font-weight:700}.ai-topic{background:#fff;border-color:#c7d2fe;flex:1;min-width:140px}.add-section{background:var(--card);width:100%;color:var(--accent);cursor:pointer;border:2px dashed #c7d2fe;border-radius:10px;margin-bottom:20px;padding:12px;font-size:13px;font-weight:700}.draft-panel{background:var(--card);border-bottom:1.5px solid var(--border);padding:16px 20px}.draft-row{background:color-mix(in srgb,var(--card) 90%,#f9fafb);border-radius:7px;align-items:center;gap:8px;margin-bottom:6px;padding:8px 10px;display:flex}.toast{z-index:1000;color:#fff;background:#18181b;border-radius:8px;max-width:360px;padding:11px 14px;font-size:13px;position:fixed;bottom:18px;right:18px;box-shadow:0 8px 30px #0003}.logo-upload{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.logo-placeholder{border:1px solid var(--border);background:var(--input);border-radius:6px;align-items:center;height:42px;padding:3px 8px;display:flex}.logo-placeholder img{object-fit:contain;max-width:140px;height:34px}.preview-controls{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:16px;display:flex}.control-label{color:var(--muted);align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.control-label select{border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:6px;padding:5px 7px}.zoom-btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:6px;padding:5px 9px}.zoom-value{text-align:center;min-width:40px;font-size:12px;font-weight:700}.paper{color:#000;max-width:680px;font-family:Times New Roman,serif;font-size:var(--paper-font);background:#fff;margin:0 auto;padding:28px;line-height:1.6}.paper-header{text-align:center;margin-bottom:8px}.paper-logo{object-fit:contain;max-width:420px;max-height:70px;margin:0 auto 8px;display:block}.school-name{text-transform:uppercase;letter-spacing:.03em;font-size:1.28em;font-weight:700}.school-location{text-transform:uppercase;font-size:.88em}.exam-line{text-transform:uppercase;margin-top:3px;font-size:.88em}.class-line{text-transform:uppercase;font-size:.88em}.date-line{margin-top:2px;font-size:.8em}.meta-row{border-top:1.5px solid #000;border-bottom:1.5px solid #000;justify-content:space-between;gap:16px;margin:10px 0 16px;padding:6px 0;font-size:.88em;display:flex}.instructions{border:1px solid #ddd;border-radius:4px;margin-bottom:14px;padding:8px 12px;font-size:.82em;line-height:1.55}.instructions strong{margin-bottom:3px;display:block}.preview-section{margin-bottom:22px}.preview-section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;font-weight:700;line-height:1.3;display:flex}.preview-section-head span:last-child{white-space:nowrap;margin-left:auto}.preview-question{page-break-inside:avoid;break-inside:avoid;align-items:flex-start;gap:5px;margin-bottom:12px;display:flex}.question-label{flex:none;font-weight:600}.question-body{flex:1;min-width:0}.preview-diagram img{border:1px solid #ddd;max-width:100%;max-height:140px;margin-top:8px;display:block}.paper-end{text-align:center;color:#888;margin-top:20px;font-size:.8em}.paper-end span{color:#000;margin-top:6px;display:block}.preview-table{font-size:.95em}.preview-table th{font-weight:700}@media (width<=640px){.topbar{flex-wrap:wrap;height:auto;min-height:56px;padding:8px 10px}.brand-school{display:none}.top-actions{flex-wrap:wrap;margin-left:auto}.top-actions button{padding:6px 8px}.page{padding:14px 10px 40px}.qp-header-grid,.qp-section-grid,.two-col{grid-template-columns:1fr}.preview-controls{display:block}.preview-controls>.toolbar-row{margin-bottom:8px}.paper{padding:20px 16px}.meta-row{flex-wrap:wrap}.rich-toolbar{gap:1px}}@media print{html,body{background:#fff!important}.topbar,.draft-panel,.toast,.preview-controls{display:none!important}.app-shell,.page{background:#fff!important;max-width:none!important;padding:0!important}.card{border:0!important;margin:0!important;padding:0!important}.paper{max-width:none!important;padding:0!important;transform:none!important}.paper-end{display:none!important}}:root{--burgundy:#771e18;--burgundy-dark:#5f1713;--burgundy-soft:#f8ecea;--gold:#c6a15b;--gold-soft:#f6efdf;--accent:var(--burgundy);--accent-dark:var(--burgundy-dark)}:root.dark{--burgundy:#a33a31;--burgundy-dark:#7f2822;--burgundy-soft:#321a18;--gold:#d6b873;--gold-soft:#332b1b;--accent:#a33a31}.topbar{background:linear-gradient(90deg,var(--burgundy-dark),var(--burgundy))}.top-actions button.active{background:var(--gold);color:#3d2b0e;border-color:var(--gold)}.btn-primary{background:var(--burgundy)}.btn-primary:hover{background:var(--burgundy-dark)}.add-section{color:var(--burgundy);border-color:#d7b978}.rich-toolbar{background:var(--burgundy-soft)}.ai-box{background:var(--gold-soft)}.ai-label{color:var(--burgundy)}.blueprint-card{border-color:#dcc48f}.blueprint-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.blueprint-table-wrap{overflow:auto}.blueprint-table{border-collapse:collapse;width:100%;font-size:12px}.blueprint-table th,.blueprint-table td{border:1px solid var(--border);text-align:left;white-space:nowrap;padding:7px 8px}.blueprint-table th{background:var(--burgundy-soft);color:var(--burgundy)}.blueprint-table tfoot td{background:var(--gold-soft);font-weight:800}.check-row{color:var(--muted);cursor:pointer;align-items:center;gap:7px;margin-top:9px;font-size:11px;display:flex}.check-row input{accent-color:var(--burgundy)}.section-break-before{break-before:page;page-break-before:always}.question-break-after{break-after:page;page-break-after:always}.preview-options{margin-top:4px;margin-left:20px}.paper{box-sizing:border-box;background:#fff;width:210mm;max-width:none;min-height:297mm;padding:12mm}.paper-header{padding-bottom:8px}.paper,.paper *{color:#000!important}.paper-logo{filter:grayscale()}.meta-row{border-top:1.5px solid #000;border-bottom:1.5px solid #000}.instructions,.preview-table td,.preview-table th,.question-table td,.question-table th{border-color:#000}.paper-end{color:#000}@media print{.paper{page-break-after:always;width:210mm;min-height:297mm;padding:12mm}.section-break-before{break-before:page;page-break-before:always}.question-break-after{break-after:page;page-break-after:always}}html,body,#root{overflow-x:hidden!important}.a4-page{box-sizing:border-box;min-width:0;max-width:100%;overflow-x:hidden}@media print{html,body,#root{overflow:visible!important}.paged-preview,.a4-page{max-width:none!important;overflow:visible!important}}.auth-screen{background:var(--bg);box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;display:flex;overflow-x:hidden}.auth-card{background:var(--card);border:1.5px solid var(--border);text-align:center;box-sizing:border-box;border-radius:16px;width:min(390px,100%);padding:28px;box-shadow:0 15px 45px #0002}.auth-logo{object-fit:contain;filter:grayscale();width:150px;max-width:100%;height:auto;max-height:80px;margin:0 auto 8px;display:block}.auth-card h1{margin:4px 0;font-size:25px}.auth-card .field-label{text-align:left}.auth-error{color:#b91c1c;text-align:left;background:#fef2f2;border:1px solid #fecaca;border-radius:7px;margin-bottom:12px;padding:8px;font-size:12px}.user-chip{opacity:.9;border:1px solid #fff5;border-radius:99px;padding:4px 7px;font-size:11px}.modal-backdrop{z-index:500;background:#0008;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow:auto}.modal-card{background:var(--card);width:min(620px,100%);color:var(--text);border:1px solid var(--border);box-sizing:border-box;border-radius:14px;padding:20px;box-shadow:0 25px 70px #0005}.admin-modal{width:min(900px,100%)}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h2{margin:0}.modal-card hr{border:0;border-top:1px solid var(--border);margin:18px 0}.modal-card h3{margin:8px 0 12px}.admin-user{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.admin-user>div:first-child{flex:1}html,body,#root,.app-shell,.page{max-width:100%;overflow-x:hidden!important}.paged-preview{box-sizing:border-box;width:100%!important;max-width:100%!important;overflow-x:hidden!important}.a4-page{box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important;overflow-x:hidden!important}.a4-page .paper{box-sizing:border-box;width:min(210mm,100%)!important;min-width:0!important;max-width:100%!important}.preview-controls+.card{overflow:hidden!important}.preview-controls+.card>div{box-sizing:border-box;width:100%!important;max-width:100%!important;overflow-x:hidden!important}@media (width<=640px){.preview-controls+.card>div .paper{box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;min-height:auto!important;padding:20px 16px!important}.preview-controls+.card>div .paper .paper-logo{max-width:100%!important}}@media print{html,body,#root,.app-shell,.page{max-width:none!important;overflow:visible!important}.paged-preview,.a4-page{width:auto!important;max-width:none!important;overflow:visible!important}.a4-page .paper{width:210mm!important;min-width:0!important;max-width:none!important}.preview-controls+.card{overflow:visible!important}.preview-controls+.card>div{width:auto!important;max-width:none!important;overflow:visible!important}.preview-controls+.card>div .paper{width:210mm!important;max-width:none!important;min-height:297mm!important;padding:12mm!important}}
