:root{--ink:#24332f;--green:#116b58;--green-dark:#0a5647;--mint:#eaf5f1;--paper:#fff;--line:#dce5e2;--muted:#6d7b77;--bg:#edf1ef;--orange:#ef5b32;--warning:#fff5dc}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);overflow:hidden}
button,input{font:inherit}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 22px;position:relative;z-index:5}.topbar>img{width:39px;height:44px;object-fit:contain}.product strong{display:block;font-size:15px}.product span,.local-status span{display:block;color:var(--muted);font-size:11px}.local-status{margin-left:auto;display:flex;align-items:center;gap:8px;padding-right:8px}.local-status i{width:8px;height:8px;border-radius:50%;background:#25a06f;box-shadow:0 0 0 4px #dff3e9}.topbar button{height:36px;padding:0 16px;border-radius:8px;border:1px solid var(--line);cursor:pointer}.topbar button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);border:0;color:#fff}.primary:hover:not(:disabled){background:var(--green-dark)}.ghost{background:#fff;color:var(--ink)}
.workspace{height:calc(100vh - 66px);display:grid;grid-template-columns:290px minmax(560px,1fr) 285px}.import-panel,.review-panel{background:#fff;padding:24px 20px;overflow:auto}.import-panel{border-right:1px solid var(--line)}.review-panel{border-left:1px solid var(--line)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:800;color:var(--green)}h1{font-size:24px;line-height:1.15;margin:6px 0 8px}h2{font-size:19px;margin:6px 0 8px}.muted{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 18px}
.dropzone{display:flex;min-height:185px;border:1.5px dashed #a9bbb6;border-radius:12px;background:#f9fbfa;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:22px 14px;cursor:pointer;transition:.18s}.dropzone:hover,.dropzone.dragging{border-color:var(--green);background:var(--mint)}.dropzone input{display:none}.dropzone .upload-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:var(--green);font-size:24px;margin-bottom:12px}.dropzone b{font-size:13px}.dropzone>span:not(.upload-icon){font-size:11px;color:var(--muted);margin-top:4px}.dropzone small{font-size:9px;color:#87938f;margin-top:15px}
.file-card{display:flex;align-items:center;gap:10px;margin:14px 0;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.file-card .pdf-badge{background:#f9e4de;color:#ad452d;font-size:9px;font-weight:800;padding:8px 5px;border-radius:5px}.file-card div{min-width:0;flex:1}.file-card b,.file-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card b{font-size:11px}.file-card small{font-size:9px;color:var(--muted);margin-top:2px}.file-card button{border:0;background:transparent;color:#80908c;font-size:20px;cursor:pointer}.wide{width:100%;height:43px;border-radius:8px;font-weight:700;cursor:pointer}.wide:disabled{background:#aab7b4;cursor:not-allowed}.secondary{margin-top:9px;border:1px solid #b9cbc6;background:#fff;color:var(--green)}.secondary:hover{background:var(--mint)}.privacy-note{margin-top:18px;padding:11px;border-radius:8px;background:var(--mint);color:#45615a}.privacy-note b,.privacy-note span{display:block}.privacy-note b{font-size:10px;text-transform:uppercase;letter-spacing:.06em}.privacy-note span{font-size:10px;line-height:1.4;margin-top:3px}
.document-area{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.toolbar{height:48px;flex:0 0 48px;background:#f8faf9;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:4px;padding:0 14px}.toolbar button{width:30px;height:30px;border:1px solid transparent;background:transparent;border-radius:6px;color:#40534e;cursor:pointer}.toolbar button:hover:not(:disabled){background:#fff;border-color:var(--line)}.toolbar button:disabled{opacity:.4;cursor:not-allowed}.toolbar .edit-toggle{width:auto;padding:0 11px;border-color:#cddbd7;background:#fff;font-size:10px;font-weight:700}.toolbar .edit-toggle.active{color:#fff;background:var(--green);border-color:var(--green)}.toolbar>span{height:20px;width:1px;background:var(--line);margin:0 5px}.toolbar small{margin-left:auto;color:var(--muted);font-size:10px}.toolbar small.active{color:var(--green);font-weight:700}.paper-wrap{flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable;padding:28px 22px 80px}
.paper{width:210mm;min-height:297mm;margin:0 auto;background:var(--paper);box-shadow:0 8px 30px #203b3420;padding:14mm 14mm 15mm;outline:0 solid transparent;font-family:Arial,Helvetica,sans-serif;font-size:8.75pt;line-height:1.1;color:#2e2e2e;transition:outline-color .15s}.paper.editing{outline:3px solid #68a998;cursor:text}.paper.editing:focus{outline-color:var(--green)}.contract-head{position:relative;min-height:24mm;padding-top:9mm}.school-logo{position:absolute;top:0;left:0;width:18mm;height:auto}.contract-title{text-align:center;font-size:10.3pt;font-weight:700;letter-spacing:.025em;margin:0 22mm 9mm}.contract-subtitle{display:block;font-size:8.5pt;margin-top:2px}.identity-box{border:1px dotted #bbb;padding:1.5mm;margin-bottom:5mm;break-inside:avoid}.contracted-row{border:1px dotted #c7c7c7;padding:1.5mm 1.8mm;margin-bottom:1mm}.party-grid{display:grid;grid-template-columns:1fr 1fr;border:1px dotted #c7c7c7}.party{padding:3mm 2mm;min-height:34mm}.party:first-child{border-right:1px dotted #c7c7c7}.party p,.student-info p{margin:0 0 .65mm;text-align:left}.student-info{margin-top:3mm}.body-copy p{margin:0 0 2.1mm;text-align:justify;orphans:3;widows:3}.body-copy p.clause strong,.body-copy p.paragraph strong{font-weight:700}.finance-table{width:72%;margin:3mm auto;border-collapse:collapse;font-size:8.2pt;break-inside:avoid}.finance-table th,.finance-table td{border:1px solid #777;padding:2mm 1.2mm;text-align:center}.finance-table th{font-weight:700}.signature-date{text-align:center;margin:7mm 0 6mm}.signatures{display:grid;grid-template-columns:1fr 1fr;border:1px dotted #c7c7c7;break-inside:avoid}.signature-cell{height:24mm;padding:7mm 4mm 2mm;text-align:center}.signature-cell:nth-child(odd){border-right:1px dotted #c7c7c7}.signature-cell:nth-child(-n+2){border-bottom:1px dotted #c7c7c7}.signature-line{border-top:1px solid #555;padding-top:2mm}.signature-cell small{display:block;font-weight:700;margin-top:1mm}.witnesses{text-align:center;margin-top:5mm;font-weight:700;font-size:7.7pt;break-inside:avoid}.empty-state{height:245mm;display:grid;place-content:center;text-align:center;color:#899793}.empty-state div{font-size:44px;color:#afbfbb}.empty-state h2{margin:8px 0 4px}.empty-state p{text-align:center;margin:0;font-size:11px}
.summary{border-top:1px solid var(--line);margin-top:16px}.summary-row{padding:11px 0;border-bottom:1px solid var(--line)}.summary-row span,.summary-row b{display:block}.summary-row span{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:3px}.summary-row b{font-size:12px;line-height:1.35}.empty-summary{border:1px dashed var(--line);border-radius:8px;padding:18px;text-align:center;color:var(--muted);font-size:11px}.alert{margin-top:14px;padding:10px;border-radius:8px;background:var(--warning);font-size:10px;line-height:1.4}.checklist{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.checklist h3{font-size:12px;margin:0 0 10px}.checklist label{display:flex;align-items:center;gap:8px;font-size:11px;padding:5px 0;color:#4d5d59}.checklist input{accent-color:var(--green)}
.mode-badge{display:inline-block;margin-bottom:12px;padding:6px 9px;border-radius:999px;background:#fff0d2;color:#80590d;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.generic-document{padding:0;background:transparent;box-shadow:none}.imported-page{position:relative;width:210mm;min-height:297mm;margin:0 auto 12mm;padding:18mm 17mm;background:#fff;box-shadow:0 8px 30px #203b3420;font-family:Arial,Helvetica,sans-serif;font-size:10pt;line-height:1.35;color:#222}.imported-page:first-child{padding-top:38mm}.fallback-logo{position:absolute;top:12mm;left:50%;width:19mm;transform:translateX(-50%)}.imported-page p{margin:0 0 2.2mm;text-align:justify;white-space:pre-wrap}.imported-page p:first-of-type{text-align:center;font-weight:700;margin-bottom:8mm}.pdf-layout-page,.pdf-layout-page:first-child{box-sizing:border-box;height:297mm;min-height:297mm;padding:0;overflow:hidden}.pdf-page-background,.pdf-text-layer{position:absolute;inset:0;width:100%;height:100%}.pdf-page-background{display:block;object-fit:fill;pointer-events:none;user-select:none}.pdf-text-layer{z-index:1;pointer-events:none}.pdf-text-run{position:absolute;display:block;min-height:1em;overflow:visible;white-space:pre;line-height:1;color:transparent;caret-color:#173f36;transform-origin:0 0;pointer-events:auto}.paper.editing .pdf-text-run:hover{outline:1px dashed #16806a;background:#e8f5f1aa}.paper.editing .pdf-text-run.active-run,.pdf-text-run.modified{z-index:2;color:#222;background:#fff;outline:2px solid #16806a}.pdf-text-run.page-number-overlay{color:#222;background:#fff}.pdf-layout-page .pdf-text-run.suspect{color:#222;background:#ffe59a;border-bottom:2px solid #d28b00}.suspect{background:#ffe59a;border-bottom:2px solid #d28b00;padding:0 2px}.issue-list{margin-top:12px}.issue-item{padding:9px 10px;margin-top:7px;border-radius:7px;background:#fff5dc;border-left:3px solid #d29a22;font-size:10px;line-height:1.35}.issue-item b,.issue-item span{display:block}.issue-item span{margin-top:3px;color:#785b1d;word-break:break-word}
#originalDialog{width:min(980px,92vw);height:88vh;padding:0;border:0;border-radius:12px;box-shadow:0 24px 80px #10251f55}#originalDialog::backdrop{background:#14211e99}#originalDialog header{height:48px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--line)}#originalDialog header button{margin-left:auto;border:0;background:transparent;font-size:24px;cursor:pointer}#originalDialog iframe{width:100%;height:calc(100% - 48px);border:0}
#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);padding:11px 16px;border-radius:8px;background:#173f36;color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:20}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1120px){.workspace{grid-template-columns:270px minmax(520px,1fr)}.review-panel{display:none}.paper{transform-origin:top center;transform:scale(.83);margin-bottom:-50mm}}
@media print{html,body{width:auto!important;height:auto!important;overflow:visible!important;background:#fff}.topbar,.import-panel,.review-panel,.toolbar,#originalDialog,#toast{display:none!important}.workspace{display:block!important;width:auto!important;height:auto!important}.document-area,.paper-wrap{display:block!important;width:auto!important;height:auto!important;padding:0!important;overflow:visible!important}.paper{display:block;width:auto!important;max-width:none!important;min-height:0;margin:0!important;padding:0!important;box-shadow:none!important;outline:0!important;transform:none!important;font-size:9.4pt;line-height:1.12;color:#111}.contract-head{min-height:22mm;padding-top:8mm;break-inside:avoid;page-break-inside:avoid}.identity-box{margin-bottom:4mm}.party{min-height:31mm;padding:2mm}.body-copy{display:block!important}.body-copy p{display:block;margin:0 0 1.8mm;orphans:3;widows:3;break-inside:avoid;page-break-inside:avoid}.finance-table{font-size:8.5pt;margin:3mm auto}.signature-date{margin:5mm 0;break-after:avoid;page-break-after:avoid}.signature-cell{height:21mm}.signatures,.identity-box,.finance-table,.witnesses{break-inside:avoid;page-break-inside:avoid}.generic-document{padding:0!important}.imported-page{box-sizing:border-box;width:auto!important;min-height:0!important;margin:0!important;padding:0!important;box-shadow:none!important;break-after:page;page-break-after:always;font-size:8.16pt!important;line-height:1.12!important}.imported-page p{margin:0 0 2.55mm!important;white-space:pre-wrap;break-inside:avoid;page-break-inside:avoid}.imported-page p.source-heading{margin-top:1.8mm!important}.imported-page p:first-of-type{margin-bottom:4mm!important}.imported-page:first-child{padding-top:41.5mm!important}.imported-page:last-child{break-after:auto;page-break-after:auto}.fallback-logo{top:8mm;width:24mm}.pdf-layout-page{page:pdf-layout;width:210mm!important;height:297mm!important;min-height:297mm!important;padding:0!important;overflow:hidden!important}.pdf-layout-page:first-child{padding-top:0!important}.pdf-page-background{position:absolute!important;inset:0!important;width:210mm!important;height:297mm!important}.pdf-text-run{color:transparent!important;background:transparent!important;border:0!important;outline:0!important;padding:0!important}.pdf-text-run.modified,.pdf-text-run.page-number-overlay{color:#222!important;background:#fff!important}.suspect{background:transparent!important;border:0!important;padding:0!important;color:inherit!important;-webkit-print-color-adjust:economy;print-color-adjust:economy}.pdf-layout-page .pdf-text-run.suspect{color:transparent!important;background:transparent!important;border:0!important}.pdf-layout-page .pdf-text-run.suspect.modified{color:#222!important;background:#fff!important}@page{size:A4 portrait;margin:10mm 15mm}@page pdf-layout{size:A4 portrait;margin:0}}
