:root{--ink:#223b32;--muted:#718078;--accent:#26725b;--paper:#f4f7f5;--line:#dce7df;--wash:#eaf2ee;--white:#fff;--danger:#a33f2d}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.6 -apple-system,BlinkMacSystemFont,"Microsoft YaHei","PingFang SC",sans-serif}button,input,select,textarea{font:inherit}button,a,label.upload-zone{ -webkit-tap-highlight-color:transparent}button{border:0;cursor:pointer;color:var(--ink);background:none;min-height:44px;border-radius:8px;padding:10px 14px;font-weight:500}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:hover:not(:disabled){filter:brightness(.96)}h1,h2,h3,p{margin:0}h2{font-size:17px;font-weight:600;line-height:1.5}h3{font-size:14px;font-weight:550}input,select,textarea{color:var(--ink);border:1px solid #cedbd2;background:#fff;border-radius:8px;padding:11px 12px;width:100%;min-height:46px}input::placeholder,textarea::placeholder{color:#96a199}input[type=checkbox]{width:36px;height:22px;min-height:22px;accent-color:var(--accent);flex-shrink:0}label{font-size:13px;display:block}label>input,label>select{margin-top:7px}small{font-size:11px;color:var(--muted)}[hidden]{display:none!important}.topbar{height:76px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));gap:16px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:17px;font-weight:600;white-space:nowrap}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff;display:inline-grid;place-items:center;font-size:16px;font-weight:500}.service{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.service button{font-size:12px;color:var(--accent)}.workspace{max-width:1248px;margin:auto;padding:36px 24px}.workspace-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.workspace-intro h1{font-size:27px;line-height:1.5;font-weight:600;letter-spacing:-.6px}.workspace-intro p{font-size:13px;color:var(--muted);margin-top:7px}.quiet{color:var(--accent);font-size:13px;border:1px solid var(--line);background:#fff}.mode-notice{font-size:12px;padding:10px 14px;color:#805824;background:#fbf4e6;border:1px solid #ecdfc4;border-radius:8px;margin-bottom:22px}.columns{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:28px;align-items:start}.editor{display:flex;flex-direction:column;gap:22px;min-width:0}.panel{background:#fff;padding:26px 28px;border:1px solid var(--line);border-radius:14px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.hint{font-size:11px;color:var(--muted)}.upload-zone{display:flex;align-items:center;gap:14px;padding:21px 18px;border:1px dashed #b3cbbd;border-radius:10px;background:#f7faf8;cursor:pointer;color:var(--accent)}.upload-zone>span:nth-child(2){flex:1;min-width:0}.upload-zone strong{display:block;font-size:13px;font-weight:500}.upload-zone small{display:block;margin-top:4px;line-height:1.6}.upload-action{font-size:12px;padding:5px 0;flex-shrink:0}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.upload-zone:has(+input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.text-button{color:var(--accent);font-size:12px;padding-left:0;padding-right:0;text-align:left}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.student-fields{margin-top:6px;grid-template-columns:1fr 1fr 100px}.required,.optional{font-size:10px;color:var(--muted);font-weight:400;margin-left:3px}.required{color:var(--accent)}.field-note{font-size:11px;color:var(--muted);margin-top:13px;line-height:1.8}.ocr-area{margin-top:14px;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:8px}.ocr-top{display:flex;gap:14px;align-items:flex-start}.ocr-top img{width:90px;height:72px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:5px}.ocr-progress{flex:1;min-width:0;font-size:12px}.ocr-progress progress{width:100%;accent-color:var(--accent);height:6px;display:block;margin:10px 0}.ocr-progress button{padding:0;min-height:32px;border:0;background:none}.candidates{display:grid;gap:8px;margin-top:12px}.candidate{background:#fff;text-align:left;border:1px solid var(--line);padding:10px 12px;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.candidate strong{font-weight:500;display:block}.candidate span{color:var(--accent);font-size:11px}.candidates>p{font-size:12px;color:var(--muted)}details{font-size:12px;color:var(--muted);margin-top:12px}summary{cursor:pointer;padding:5px 0}textarea{display:block;resize:vertical;font-size:12px;line-height:1.7;margin:8px 0}.segmented,.result-tabs{display:flex;padding:4px;border-radius:9px;background:#f1f5f2;gap:4px}.segmented{margin-bottom:22px}.segmented button,.result-tabs button{flex:1;color:var(--muted);min-height:42px}.segmented [aria-pressed=true],.result-tabs [aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 1px 3px #223b3212}.course-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.course-list{border:1px solid var(--line);border-radius:10px;padding:0 15px}.course-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0}.course-row+.course-row{border-top:1px solid var(--line)}.course-row strong{font-size:13px;font-weight:500}.course-row small{display:block;line-height:1.7;margin-top:3px}.stepper{display:grid;grid-template-columns:34px 34px 34px;align-items:center;border:1px solid var(--line);background:#f3f6f4;border-radius:7px;flex-shrink:0}.stepper button{padding:0;min-height:40px;font-size:20px;font-weight:400}.stepper input{border:0;background:none;border-radius:0;width:34px;min-height:40px;padding:0;text-align:center;appearance:textfield;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{appearance:none;margin:0}.omo-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 0;font-size:13px}.omo-toggle small{margin-left:8px;font-weight:400}.omo-toggle>span:last-child{font-size:12px;color:var(--accent);flex-shrink:0}.coupon{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 4px}.coupon strong{display:block;font-size:13px;font-weight:500}.coupon small{display:block;font-size:11px;margin-top:4px}.coupon input{margin:0}.price-breakdown{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-bottom:10px}.price-row strong{font-weight:500;color:var(--ink);text-align:right}.price-row.savings,.price-row.savings strong{color:var(--accent)}.rule-note{font-size:11px;line-height:1.8;color:var(--muted);margin-top:13px}.amount-total{margin-top:16px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:12px}.amount-total>span{font-size:13px}.amount-total strong{font-size:31px;font-weight:600;color:var(--accent);letter-spacing:-.7px;font-variant-numeric:tabular-nums}.primary{background:var(--accent);color:#fff}.secondary{border:1px solid #c9dfd1;background:#e2eee6;color:var(--accent);font-size:13px}.quote-actions{display:flex;gap:12px;margin-top:18px}.quote-actions button{flex:1}.money-input{display:flex;align-items:center;gap:12px;border:1px solid #cedbd2;border-radius:9px;padding:8px 16px;margin-top:8px}.money-input>span{font-size:24px;color:var(--muted)}.money-input input{border:0;padding:5px 0;font-size:30px;min-width:0;border-radius:0;min-height:48px}.money-input:focus-within{outline:2px solid var(--accent);outline-offset:2px}.money-input input:focus-visible{outline:none}.note-input{margin-top:22px}.feedback{font-size:12px;margin-top:14px;padding:12px;background:#fff;border-radius:8px;white-space:pre-line;overflow-wrap:anywhere}.feedback[data-tone=error]{color:var(--danger)}.result-panel{position:sticky;top:24px;min-width:0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px}.result-heading h2{font-size:16px}.result-heading p{font-size:11px;color:var(--muted);margin-top:4px}.preview-tag{font-size:10px;color:var(--muted);padding:4px 7px;border:1px solid var(--line);border-radius:5px;white-space:nowrap}.result-tabs{margin:0 20px 16px}.result-tabs button{font-size:12px;min-height:36px}.preview-empty{padding:42px 24px;text-align:center;background:#f3f7f4;min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center}.preview-empty h3{margin-top:26px;font-size:14px}.preview-empty p{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.9}.empty-sheet{width:115px;height:148px;border:1px solid #b4cabc;border-radius:8px;background:#fff;position:relative;padding:22px 17px;transform:rotate(-5deg)}.empty-sheet span{display:block;height:4px;background:#cfdfd4;border-radius:2px;margin-bottom:10px}.empty-sheet span:first-child{width:75%;background:#638d76}.empty-sheet div{width:42px;height:36px;background:#eaf2ee;margin:17px auto 0;border-radius:4px}.poster-view{background:#eaf2ee;padding:18px;max-height:620px;overflow:auto;overscroll-behavior:contain}.poster-view canvas{display:block;width:100%;height:auto}.qr-view{text-align:center;background:#f7faf8;padding:25px 24px 18px}.qr-view>p:first-child{font-size:14px;font-weight:500;overflow-wrap:anywhere}.qr-view>strong{display:block;font-size:28px;line-height:1.4;color:var(--accent);margin:8px 0 16px;font-variant-numeric:tabular-nums}.qr-view img{width:220px;max-width:100%;height:auto;display:block;margin:auto;border:1px solid var(--line);image-rendering:pixelated}.qr-view #qrNotice{font-size:12px;margin-top:15px;color:var(--muted)}.qr-view dl{display:grid;grid-template-columns:55px 1fr;text-align:left;font-size:11px;gap:9px 10px;border-top:1px solid var(--line);padding-top:18px;margin:20px 0 0}.qr-view dt{color:var(--muted)}.qr-view dd{margin:0;text-align:right;overflow-wrap:anywhere}.result-actions{padding:18px 22px;text-align:center;border-top:1px solid var(--line)}.result-actions .primary{width:100%;font-size:13px}.result-actions .quiet{margin-top:9px;border:0;min-height:32px;padding:3px 12px;font-size:12px}.result-actions p{color:var(--muted);font-size:10px;line-height:1.8;margin-top:8px}.workspace-footer{font-size:11px;text-align:center;color:var(--muted);padding-top:28px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:50;max-width:calc(100vw - 32px);padding:12px 20px;background:#223b32;color:#fff;border-radius:9px;font-size:12px;box-shadow:0 5px 30px #223b3220;text-align:center}dialog{color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:0}dialog::backdrop{background:#142a3280}.login-dialog{width:min(400px,calc(100vw - 32px));padding:30px}.login-dialog h2{margin-top:18px;font-size:20px}.login-dialog p{color:var(--muted);font-size:12px;margin:8px 0 22px}.login-dialog #loginError{color:var(--danger);margin:10px 0}.login-dialog button{width:100%;margin-top:12px}.image-dialog{width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}.image-dialog[open]{display:flex;flex-direction:column}.image-dialog-top{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;flex-shrink:0;border-bottom:1px solid var(--line)}.image-dialog-top h2{font-size:15px}.image-dialog-top button{border:0}.image-dialog-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:16px;background:var(--wash)}.image-dialog-body img{display:block;width:100%;height:auto;max-width:450px;margin:auto}.image-dialog>p{font-size:11px;text-align:center;padding:12px;color:var(--muted);flex-shrink:0}body:has(dialog[open]){overflow:hidden}@media(min-width:1450px){.workspace{padding-top:46px}.columns{gap:36px;grid-template-columns:minmax(0,1fr) 410px}.poster-view{max-height:700px}}@media(max-width:1000px){.columns{grid-template-columns:minmax(0,1fr) 340px;gap:20px}.panel,.student-fields{grid-template-columns:1fr 1fr}.grade-field{grid-column:1/-1}.grade-field select{max-width:160px}.upload-zone{flex-wrap:wrap}.upload-action{display:none}.workspace-intro h1{font-size:24px}.section-heading .hint{max-width:140px;text-align:right}.course-title{align-items:flex-start}.course-title .hint{font-size:10px;max-width:120px;text-align:right}}@media(max-width:760px){.topbar{height:62px;padding:0 20px}.brand{font-size:15px;gap:8px}.brand-mark{width:28px;height:28px;border-radius:8px;font-size:14px}.service{font-size:10px}.service button{padding:6px;font-size:11px}.workspace{padding:26px 16px}.workspace-intro{display:block;position:relative;margin-bottom:20px;padding-right:0}.workspace-intro h1{font-size:23px}.workspace-intro p{font-size:12px;max-width:270px}.workspace-intro>.quiet{margin-top:14px;font-size:12px;min-height:36px;padding:5px 10px}.columns{display:flex;flex-direction:column;gap:24px}.editor,.result-panel{width:100%}.editor{gap:18px}.result-panel{position:static}.panel,.section-heading{margin-bottom:18px}.section-heading .hint{max-width:none;font-size:10px}h2{font-size:16px}.upload-zone{padding:17px 14px;gap:10px}.upload-zone strong{font-size:12px}.upload-zone small{font-size:10px}.upload-zone svg{width:22px;flex-shrink:0}.student-fields{grid-template-columns:1fr 1fr;gap:16px 12px}.grade-field{grid-column:auto}.grade-field select{max-width:none}.grade-field{grid-column:1/-1}.grade-field select{max-width:160px}.course-title .hint{max-width:none}.course-row{padding:15px 0}.course-row small{font-size:10px}.course-list{padding:0 12px}.omo-toggle small{font-size:10px;margin-left:5px}.amount-total strong{font-size:28px}.result-heading{padding:20px}.poster-view{max-height:540px;padding:18px;display:flex;justify-content:center}.poster-view canvas{max-width:375px;align-self:flex-start}.result-actions{padding:16px 20px}.preview-empty{min-height:290px;padding:30px}.workspace-footer{text-align:left;line-height:1.8;padding-top:22px}.mode-notice{font-size:11px;margin-bottom:18px}.qr-view img{width:230px}.toast{bottom:18px;width:max-content;max-width:calc(100vw - 32px)}}@media(max-width:360px){.topbar{padding:0 14px}.workspace{padding:20px 12px}.workspace-intro h1{font-size:21px}.panel,.section-heading{gap:6px}.section-heading .hint{font-size:9px}.upload-zone strong{font-size:11px}.stepper{grid-template-columns:30px 30px 30px}.stepper input{width:30px}.course-title .hint{max-width:110px}.omo-toggle small{display:block;text-align:left;margin:0}.amount-total strong{font-size:25px}.brand{font-size:14px}.service{font-size:9px}}

.student-fields{grid-template-columns:1fr 1fr}.pricing-plan{margin-bottom:22px;max-width:220px}.quote-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.quote-actions button{padding:10px 8px;white-space:nowrap;font-size:12px;min-width:0}.quote-actions .primary{font-weight:550}.feedback[data-tone=error]{border:1px solid #ebd4cf;background:#fff7f5}.feedback[data-tone=success]{background:var(--wash);color:var(--accent)}@media(max-width:360px){.quote-actions{gap:6px}.quote-actions button{padding:10px 3px;font-size:11px}}

.admin-link{font-size:12px;color:var(--accent);text-decoration:none;padding:8px 4px;white-space:nowrap}

@media(max-width:360px){.topbar .service{gap:4px}.topbar .admin-link{font-size:10px;padding:4px 2px}}
