:root{--sky:#e8f6ff;--ink:#1c3144;--muted:#647b8e;--line:#c9dfed;--white:#fff;--blue:#2076b8;--blue-dark:#155b91;--blue-soft:#eff9ff;--green:#168267;--brown:#9f5c2f;--danger:#b42318;--shadow:0 20px 55px rgba(51,103,137,.13)}
.correction-editor{position:relative;margin-top:18px;padding:18px;border:1px solid #b9dfd4;border-radius:16px;background:#fafffd}.correction-editor[hidden]{display:none}.editor-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px}.editor-heading h2{margin:3px 0;font-size:20px}.editor-heading p{margin:0;color:var(--muted);font-size:12px}.editor-scroll{overflow:auto;border-radius:11px;background:#e8eef1;padding:14px}.editor-page{box-sizing:border-box;width:794px;min-height:1123px;margin:auto;padding:72px 64px 72px 72px;background:#fff;color:#111;box-shadow:0 1px 6px rgba(0,0,0,.16);font:16px/1.45 "DejaVu Sans",Arial,sans-serif}.editor-line{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:14px;min-height:23px}.editor-text{white-space:pre-wrap}.editor-codes{color:#b00020;font-size:13px;font-weight:700}.editor-token{border-radius:3px;cursor:pointer;padding:0 1px}.editor-token[data-token-type="gap"]{display:inline-block;min-width:.55em}.editor-token:hover,.editor-token.selected{background:#fff0a6;outline:2px solid rgba(224,178,0,.25)}.editor-token.marked{text-decoration:underline 2px #c00020;text-underline-offset:2px}.editor-code{display:inline-block;margin-right:4px}.annotation-menu{position:fixed;z-index:1000;display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #afc7d7;border-radius:10px;background:#fff;box-shadow:0 8px 28px rgba(25,65,91,.25)}.annotation-menu[hidden]{display:none}.annotation-menu label{font-size:12px;font-weight:700}.annotation-menu select{min-width:220px;padding:8px;border:1px solid #afc7d7;border-radius:7px;background:#fff}@media(max-width:850px){.editor-heading{align-items:flex-start;flex-direction:column}.editor-scroll{padding:8px}.correction-editor{padding:12px}}
.result-grid[hidden]{display:none}.result-document-preview{display:block;overflow:auto}.result-document-preview img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.saved-jobs{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f7fbfd}.saved-jobs[hidden]{display:none}.saved-jobs-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:9px}.saved-jobs-heading span{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.saved-jobs-heading h2{margin:1px 0 0;font-size:16px}.saved-jobs-heading small{color:var(--muted);font-size:10px}.saved-job-list{display:grid;gap:7px}.saved-job{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:10px;background:#fff}.saved-job strong,.saved-job small{display:block}.saved-job strong{max-width:52ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.saved-job small{margin-top:2px;color:var(--muted);font-size:10px}.saved-job>div:last-child{display:flex;align-items:center;gap:5px}@media(max-width:600px){.saved-jobs-heading,.saved-job{align-items:stretch;flex-direction:column}.saved-job>div:last-child{display:grid;grid-template-columns:1fr}.saved-job .choose-button{width:100%;min-height:42px}.saved-job .text-button{min-height:40px;text-align:center}}
.editor-help{min-height:34px;margin:-3px 0 7px;color:var(--muted);font-size:10px}.editor-card-scroll{display:block;overflow:auto;background:#e8eef1}.editor-card-scroll .editor-page{width:100%;min-width:430px;min-height:100%;margin:0;padding:18px;background:#fff;box-shadow:none;font-size:11px;line-height:1.45}.editor-card-scroll .editor-line{grid-template-columns:minmax(0,1fr) 42px;gap:7px;min-height:17px}.editor-card-scroll .editor-codes{font-size:10px}.editor-render-button{width:100%;margin-top:10px}.editor-token:focus{background:#fff0a6;outline:2px solid #d8a900}@media(max-width:850px){.editor-card-scroll .editor-page{min-width:560px;font-size:13px}.editor-card-scroll .editor-line{grid-template-columns:minmax(0,1fr) 55px}}
*{box-sizing:border-box}html{background:var(--sky)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,#fff 0,rgba(255,255,255,.75) 18%,transparent 43%),linear-gradient(180deg,var(--sky) 0%,#f5fbff 100%);color:var(--ink);font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.site-header{height:64px;display:flex;align-items:center;justify-content:space-between;width:min(1180px,calc(100% - 48px));margin:auto;border-bottom:1px solid rgba(92,145,179,.18)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--blue);color:#fff;font-weight:800;box-shadow:0 8px 18px rgba(32,118,184,.22)}.brand strong,.brand small{display:block}.brand strong{font-size:17px;line-height:1.1}.brand small{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}button,.download-button{font:inherit}.auth-button,.primary,.secondary-button,.start-button,.download-button{border:0;border-radius:10px;font-weight:750;cursor:pointer}.auth-button{padding:10px 15px;background:var(--white);border:1px solid #acd0e7;color:var(--blue);box-shadow:0 7px 16px rgba(53,111,149,.08)}.account{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.account form{margin:0}.secure-dot{width:8px;height:8px;border-radius:50%;background:#20a57f;box-shadow:0 0 0 4px rgba(32,165,127,.12)}.quota-badge{padding:5px 9px;border-radius:20px;background:#fff;color:var(--blue);border:1px solid var(--line)}.text-button{border:0;background:transparent;color:var(--blue);font-weight:700;cursor:pointer;padding:4px 6px}.guest-page{min-height:calc(100vh - 64px);display:grid;place-items:center}.guest-teacher{width:min(210px,42vw);height:min(330px,64vh)}.guest-teacher img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(62,83,96,.16))}.auth-dialog{width:min(820px,calc(100% - 30px));border:1px solid var(--line);border-radius:20px;padding:28px;background:#fff;color:var(--ink);box-shadow:0 30px 90px rgba(31,72,101,.28)}.auth-dialog::backdrop{background:rgba(34,72,97,.28);backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:13px;border:0;background:transparent;color:#718797;font-size:28px;cursor:pointer}.auth-heading{text-align:center;max-width:560px;margin:0 auto 22px}.auth-heading h1{margin:5px 0 6px;font:700 31px/1.1 Georgia,serif}.auth-heading p{margin:0;color:var(--muted)}.eyebrow,.upload-label,.card-heading span{color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.auth-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.auth-form{display:grid;align-content:start;gap:13px;padding:18px;border:1px solid #dce9f2;border-radius:14px;background:#fbfdff}.auth-form h2{margin:0 0 2px;font-size:18px}.auth-form label,.login-card label{display:grid;gap:6px;font-size:12px;font-weight:700}.auth-form input,.login-card input{width:100%;border:1px solid #afc7d7;border-radius:9px;padding:10px 11px;background:#fff;color:var(--ink);font:inherit}.auth-form input:focus,.drop-field:focus{outline:3px solid rgba(32,118,184,.16);border-color:var(--blue)}.register-form{background:#f2faff}.primary,.secondary-button{padding:11px 15px}.primary{background:var(--blue);color:#fff}.secondary-button{background:#e2f2fc;color:var(--blue-dark)}.alert,.success{padding:10px 12px;border-radius:9px}.alert{background:#fff0ee;color:var(--danger)}.success{background:#eaf8f2;color:#0c7456}.page-shell{width:min(1120px,calc(100% - 40px));margin:0 auto}.intro{height:230px;display:flex;align-items:flex-end;justify-content:center;position:relative;padding-bottom:20px}.teacher-wrap{position:absolute;left:calc(50% - 345px);bottom:-2px;width:150px;height:218px}.teacher-wrap img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 14px rgba(70,72,71,.16))}.teacher-note{position:absolute;z-index:1;top:29px;left:124px;width:max-content;padding:8px 12px;background:#fff;border:1px solid var(--line);border-radius:13px 13px 13px 3px;color:var(--brown);font:700 12px/1.2 ui-sans-serif,system-ui;box-shadow:0 7px 18px rgba(58,102,130,.1)}.intro-copy{text-align:center;max-width:600px}.intro h1{font:700 clamp(32px,4vw,44px)/1.05 Georgia,"Times New Roman",serif;margin:0 0 8px;color:#18364d}.intro p{margin:0;color:var(--muted);font-size:15px}.workspace,.card{background:rgba(255,255,255,.96);border:1px solid rgba(157,195,219,.62);border-radius:22px;box-shadow:var(--shadow)}.workspace{padding:24px}.upload-zone{display:grid;gap:13px}.drop-field{width:100%;min-height:92px;border:1.5px dashed #8fc2e2;border-radius:15px;background:var(--blue-soft);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px 18px;text-align:left;color:var(--ink);cursor:pointer;transition:.2s}.drop-field:hover,.drop-field.active{border-color:var(--blue);background:#e8f6ff;transform:translateY(-1px)}.upload-icon{width:48px;height:48px;border-radius:14px;background:#fff;display:grid;place-items:center;color:var(--blue);box-shadow:0 7px 17px rgba(41,111,155,.1)}.upload-icon svg{width:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.drop-copy strong,.drop-copy small{display:block}.drop-copy strong{font-size:16px}.drop-copy small{margin-top:3px;color:var(--muted);font-size:12px}.choose-button{padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:12px;font-weight:750;color:var(--blue)}.file-row{background:#f7fbfd;border:1px solid var(--line);border-radius:9px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.file-row[hidden]{display:none}.upload-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.status{margin:0;min-height:22px;font-size:12px;color:var(--muted)}.status.busy{color:var(--blue)}.status.error{color:var(--danger)}.status.success{color:var(--green)}.start-button{background:var(--blue);color:#fff;padding:11px 18px;font-size:13px;box-shadow:0 8px 18px rgba(32,118,184,.18)}.start-button:disabled{opacity:.45;cursor:not-allowed}.start-button span{margin-left:8px}.divider{height:40px;display:flex;align-items:center;text-align:center;color:#8ba0af;font-size:10px}.divider::before,.divider::after{content:"";height:1px;background:#e2edf4;flex:1}.divider span{padding:0 14px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.result-grid[hidden]{display:grid}.result-card{border:1px solid #dbe9f2;border-radius:15px;padding:14px;background:#fbfdff;box-shadow:none}.result-card.corrected{border-color:#b9dfd4;background:#fafffd}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.card-heading h2{margin:2px 0 0;font-size:14px}.download-button{padding:6px 9px;border:1px solid var(--line);background:#fff;color:var(--blue);font-size:10px;text-decoration:none}.preview{width:100%;height:260px;border:0;border-radius:10px;background:#eaf1f5}.image-preview{display:grid;place-items:center;overflow:auto}.image-preview img{display:block;max-width:100%;max-height:100%;object-fit:contain}.pdf-preview{display:block}.privacy-row{display:flex;justify-content:center;gap:28px;padding:15px 10px 28px;color:#607c90;font-size:10px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(460px,100%);padding:26px}.login-card form{display:grid;gap:14px}.legal-shell{width:min(760px,calc(100% - 32px));margin:32px auto}.legal-card{padding:28px}.legal-card a{color:var(--blue)}@media(max-width:850px){.intro{height:270px}.teacher-wrap{left:20px;width:120px;height:180px}.teacher-note{display:none}.result-grid{grid-template-columns:1fr}.result-grid[hidden]{display:grid}.preview{height:420px}.auth-columns{grid-template-columns:1fr}.privacy-row{flex-wrap:wrap;gap:9px 18px}}@media(max-width:600px){.site-header{width:calc(100% - 28px)}.account>span:not(.secure-dot):not(.quota-badge){display:none}.quota-badge{font-size:10px}.page-shell{width:calc(100% - 24px)}.intro{height:240px;padding-left:112px}.teacher-wrap{left:0;width:105px;height:160px}.intro h1{font-size:32px}.intro p{font-size:13px}.workspace{padding:14px}.drop-field{grid-template-columns:auto 1fr}.choose-button{grid-column:2;width:max-content}.upload-actions{align-items:flex-start}.privacy-row{justify-content:flex-start}.auth-dialog{padding:22px 15px}.guest-teacher{width:145px;height:230px}}

/* fixed55 public original-handwriting output */
.handwriting-workspace{margin:1.25rem auto 2rem;padding:1.5rem;max-width:1100px;border:1px solid #d9e0e5;border-radius:12px;background:#fff}
.handwriting-workspace h2{margin:0 0 .65rem;font-size:1.25rem}
.handwriting-workspace p{line-height:1.5}
.handwriting-result{margin-top:1.4rem}
.handwriting-result .preview{max-height:680px;overflow:auto}
.handwriting-result img{display:block;width:100%;height:auto;object-fit:contain}
.handwriting-workspace[hidden],.handwriting-result[hidden]{display:none!important}

/* fixed56: vierte interaktive Ansicht im Hauptergebnis, skaliert ohne Koordinatenversatz */
.result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.result-grid[hidden]{display:none!important}
.handwriting-card{grid-column:1 / -1;margin:0;min-width:0;background:#fafffd;border-color:#b9dfd4}
.handwriting-card[hidden]{display:none!important}
.handwriting-card .card-heading{gap:8px;flex-wrap:wrap}
.handwriting-card .editor-help{font-size:11px;line-height:1.45}
.handwriting-card .start-button{width:100%;padding:10px 8px;font-size:12px}
.handwriting-card .handwriting-result{margin-top:10px}
.handwriting-document-preview{display:block;height:360px;max-height:680px;overflow:auto;background:#e8eef1}
.handwriting-interactive{position:relative;width:100%;min-width:0;line-height:0}
.handwriting-interactive img{display:block;width:100%;height:auto;max-height:none;object-fit:fill;pointer-events:none}
.handwriting-hotspots{position:absolute;inset:0;pointer-events:none}
.handwriting-hotspot{box-sizing:border-box;position:absolute;display:block;margin:0;padding:0;pointer-events:auto;cursor:pointer;border:1px solid transparent;background:transparent;border-radius:2px;min-width:2px;min-height:2px;touch-action:manipulation}
.handwriting-hotspot:is(:hover,:focus-visible,.hover-linked,.selected){background:rgba(255,204,36,.25);border:1px solid #ad7400;outline:1px solid rgba(173,116,0,.4)}
.handwriting-hotspot:focus-visible{outline:2px solid #936000}
.handwriting-result[hidden],.handwriting-card .download-button[hidden]{display:none!important}
@media(max-width:1170px){.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.result-grid{grid-template-columns:1fr}.handwriting-document-preview{height:480px}}

/* fixed57: reviewable, device-local redaction before web upload */
.privacy-gate{padding:14px;margin:10px 0;border:1px solid #b5c9d9;border-radius:12px;background:#fff}
.privacy-gate[hidden]{display:none!important}
.privacy-gate h3{margin:0 0 6px;font-size:15px}
.privacy-gate p{margin:7px 0;font-size:12px}
.privacy-gate label{display:block;font-size:12px;font-weight:700}
#privacy-header{width:min(440px,100%)}
.privacy-canvas-wrap{max-height:520px;overflow:auto;background:#e6edf2;border-radius:8px;padding:8px}
#privacy-canvas{display:block;max-width:100%;height:auto;margin:auto;touch-action:none;cursor:crosshair;background:white}
.privacy-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}
.privacy-warning{border-top:1px solid #e1e4e9;padding-top:10px;color:#6b3907}
#privacy-state{font-weight:650}

.privacy-confirm{display:block;margin-top:10px;font-size:12px;line-height:1.45}.privacy-confirm input{margin-right:7px}.privacy-gate button:disabled{opacity:.5;cursor:not-allowed}

/* fixed59: device-local template registration and narrow per-field masks */
.template-upload{padding:11px 14px;background:#f4f9fd;border:1px solid #bed4e1;border-radius:11px;display:grid;gap:7px}
.template-upload .template-header{display:grid;gap:2px}
.template-upload small{font-size:11px;color:var(--muted)}
.template-upload p{font-size:11px;margin:2px 0;color:#455868}
.template-choose{font-size:12px;font-weight:700;color:var(--blue)}
#template-input{display:block;max-width:100%;font:12px system-ui}
#template-panel[hidden]{display:none!important}
#template-canvas{max-width:min(100%,400px);height:auto;display:block;border:1px solid #8fa6b4;background:#fff;touch-action:none;cursor:crosshair}
.template-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px}
#template-status{font-weight:650}

/* fixed59a: explicit per-file acknowledgement when no template is selected */
.privacy-manual-panel{margin-top:12px;padding:11px 13px;border:1px solid #d3a36c;border-radius:9px;background:#fffaf3}
.privacy-manual-panel[hidden]{display:none!important}
.privacy-manual-panel .privacy-confirm{display:flex;align-items:flex-start;gap:9px;font-size:12px;font-weight:650;line-height:1.5;cursor:pointer}
.privacy-manual-panel .privacy-confirm input{flex:none;width:19px;height:19px;margin:1px 0 0;accent-color:#145d87}
.privacy-manual-panel p{margin:7px 0 0;font-size:11px;color:#80582e}

#privacy-extra-pages:empty{display:none}
#privacy-extra-pages p{margin:11px 0 5px;font-weight:700}
#privacy-extra-pages canvas{display:block;max-width:100%;height:auto;margin:0 auto 12px;background:#fff}

/* fixed59f – sichtbare interaktive Handschrift-Regeln */
.handwriting-error-list{margin:12px 0;padding:8px;border:1px solid #dce5ed;border-radius:8px;display:grid;gap:8px;max-height:330px;overflow:auto}
.handwriting-error-list[hidden]{display:none!important}
.handwriting-rule-row{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr);gap:10px;align-items:start;padding:8px;background:#f7fafc;border-radius:6px}
.handwriting-rule-button{font-weight:700;white-space:normal;min-height:36px;cursor:pointer}
.handwriting-rule-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.4}
@media(max-width:580px){.handwriting-rule-row{grid-template-columns:1fr}}
