@font-face{font-family:Moul;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/moul-khmer-400-normal-BGpNh90c.woff2)format("woff2"),url(/assets/moul-khmer-400-normal-Lf6ZT74W.woff)format("woff")}@font-face{font-family:Moul;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/moul-latin-400-normal-CIZffheE.woff2)format("woff2"),url(/assets/moul-latin-400-normal-HkjSrq-h.woff)format("woff")}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/battambang-khmer-400-normal-s3caPRQm.woff2)format("woff2"),url(/assets/battambang-khmer-400-normal-qFamkjv4.woff)format("woff")}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/battambang-khmer-700-normal-C6Gn1NAv.woff2)format("woff2"),url(/assets/battambang-khmer-700-normal-DTQADywV.woff)format("woff")}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/battambang-latin-400-normal-BDG-aP-o.woff2)format("woff2"),url(/assets/battambang-latin-400-normal-DtOJnmI9.woff)format("woff")}@font-face{font-family:Battambang;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/battambang-latin-700-normal-D2vtMa_I.woff2)format("woff2"),url(/assets/battambang-latin-700-normal-CyOrc87b.woff)format("woff")}@font-face{font-family:Siemreap;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/siemreap-khmer-400-normal-BhP23VWx.woff2)format("woff2"),url(/assets/siemreap-khmer-400-normal-DMrDEgJp.woff)format("woff")}@font-face{font-family:Bokor;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bokor-khmer-400-normal-dEq4oEH6.woff2)format("woff2"),url(/assets/bokor-khmer-400-normal-BSsWGXJW.woff)format("woff")}@font-face{font-family:Bokor;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bokor-latin-400-normal-e78U_YRE.woff2)format("woff2"),url(/assets/bokor-latin-400-normal-D2hR72Pi.woff)format("woff")}@font-face{font-family:Koulen;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/koulen-khmer-400-normal-DopUO1ve.woff2)format("woff2"),url(/assets/koulen-khmer-400-normal-CSVpIXAL.woff)format("woff")}@font-face{font-family:Koulen;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/koulen-latin-400-normal-zff772AT.woff2)format("woff2"),url(/assets/koulen-latin-400-normal-DwCrhSFg.woff)format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kantumruy-pro-khmer-400-normal-B-rMTF1Y.woff2)format("woff2"),url(/assets/kantumruy-pro-khmer-400-normal-D_zYNomk.woff)format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/kantumruy-pro-khmer-600-normal-B9Zdttp3.woff2)format("woff2"),url(/assets/kantumruy-pro-khmer-600-normal-BaKBPySs.woff)format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kantumruy-pro-khmer-700-normal-wdAZ07zF.woff2)format("woff2"),url(/assets/kantumruy-pro-khmer-700-normal-B1sAwXXo.woff)format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/kantumruy-pro-latin-400-normal-CjZAwuY-.woff2)format("woff2"),url(/assets/kantumruy-pro-latin-400-normal-Bxtv0w9f.woff)format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/kantumruy-pro-latin-600-normal-0CbwgoLa.woff2)format("woff2"),url(/assets/kantumruy-pro-latin-600-normal-BmHpZGsD.woff)format("woff")}@font-face{font-family:Kantumruy Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/kantumruy-pro-latin-700-normal-CJYSeyEt.woff2)format("woff2"),url(/assets/kantumruy-pro-latin-700-normal-BRnJWN2X.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cormorant-garamond-latin-700-normal-DajfzrDU.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-700-normal-O25Qpphb.woff)format("woff")}.cert{color:var(--ink);text-rendering:optimizelegibility;background:#fff;font-family:Battambang,Siemreap,Kantumruy Pro,serif;font-size:16px;line-height:1.8;position:relative;overflow:hidden}.cert p,.cert h1,.cert h2{margin:0}.cert-frame{position:absolute;inset:0}.fit-box{justify-content:center;margin:0 auto;display:flex}.fit-box>*{white-space:nowrap;transform-origin:50%;flex:none}.cert-watermark{opacity:.095;filter:grayscale(.1);pointer-events:none;width:310px;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.cert-content{flex-direction:column;display:flex;position:absolute;inset:74px 108px}.cert-head{justify-content:space-between;align-items:flex-start;min-height:98px;display:flex}.head-left{text-align:center;width:260px;color:var(--deep);flex-direction:column;align-items:center;margin-top:6px;margin-left:6px;font-size:12px;line-height:1.75;display:flex}.head-emblem{height:64px;margin-bottom:4px}.head-left .dept,.head-left .school{font-family:Moul,serif;font-size:11.5px;font-weight:400;line-height:1.8}.head-left .cert-no-under{color:var(--deep);font-size:12.5px;font-weight:700;line-height:1.5}.head-center{text-align:center;color:var(--deep);flex-direction:column;align-items:center;margin-top:-2px;font-family:Moul,serif;display:flex}.head-center .kingdom{font-size:21px;line-height:1.7}.head-center .motto{margin-bottom:4px;font-size:18.5px;line-height:1.7}.head-right{justify-content:flex-end;margin-right:12px;display:flex}.cert-title{flex-direction:column;align-items:center;margin-top:-6px;margin-bottom:16px;display:flex}.title-row{justify-content:center;align-items:center;gap:16px;display:flex}.cert-title h1{color:var(--deep);text-shadow:0 1.5px 0 var(--gold-light), 2px 3px 0 #8a5c124d;font-family:Moul,serif;font-size:40px;font-weight:400;line-height:1.5}.cert-title .en{letter-spacing:.52em;text-indent:.52em;text-transform:uppercase;color:var(--gold-dark);margin-top:-4px;font-family:Cormorant Garamond,serif;font-size:13px;font-weight:700;line-height:1.4}.cert-body{flex:1;justify-content:center;align-items:center;gap:36px;min-height:0;margin-bottom:0;padding-top:6px;padding-bottom:0;display:flex}.cert-text{text-align:center;flex-direction:column;align-items:center;display:flex}.with-photo .cert-body{justify-content:flex-start;padding-left:10px}.with-photo .cert-text{flex:1;padding-right:10px}.issuer{color:var(--deep);font-family:Moul,serif;font-size:16.5px;font-weight:400;line-height:1.75;margin-top:6px!important;margin-bottom:2px!important}.lead{color:var(--mid);font-family:Siemreap,serif;font-size:19px;line-height:1.5;margin-bottom:1px!important}.name{color:var(--deep);font-family:Moul,serif;font-size:38px;font-weight:400;line-height:1.5;margin-bottom:0!important}.en-name{letter-spacing:.3em;text-indent:.3em;color:var(--gold-dark);margin-top:-6px;font-family:Cormorant Garamond,serif;font-size:15px;font-weight:700;line-height:1.4;margin-bottom:0!important}.cert-text svg{margin-top:-2px}.info{color:var(--mid);align-items:center;gap:12px;font-size:16.5px;font-weight:700;line-height:1.7;display:flex;margin-top:1px!important}.info i{color:var(--gold);font-size:7px;font-style:normal}.reason{max-width:820px;color:var(--ink);white-space:pre-line;word-break:break-word;font-size:17.5px;line-height:1.65;margin-top:4px!important;margin-bottom:2px!important}.with-photo .reason{max-width:620px}.no-photo .cert-body{padding-top:8px;padding-bottom:0}.no-photo .issuer{font-size:18px;line-height:1.7;margin-top:10px!important;margin-bottom:3px!important}.no-photo .lead{font-size:21px;line-height:1.48;margin-bottom:2px!important}.no-photo .name{font-size:43px;line-height:1.48;margin-bottom:0!important}.no-photo .en-name{font-size:16.5px}.no-photo .info{font-size:18px}.no-photo .reason{max-width:860px;font-size:19.5px;margin-bottom:2px!important}.photo-frame{filter:drop-shadow(0 3px 4px #281e0a40);flex:none;margin-top:-8px;position:relative}.photo-frame-art{position:absolute;inset:0}.photo-window{cursor:pointer;font:inherit;color:inherit;background:#f6efdc;border:0;border-radius:0;margin:0;padding:0;position:absolute;overflow:hidden}.photo-window img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.photo-empty{color:#e0d4b2;background:linear-gradient(#f9f3e2,#efe5c8);flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex;position:relative}.photo-empty svg{max-width:80%;height:78%;margin-bottom:-2px}.photo-empty small{color:var(--mid);opacity:.85;font-size:11.5px;line-height:1.4;position:absolute;top:12px;left:0;right:0}.is-exporting .photo-empty{visibility:hidden}@media print{.photo-empty{visibility:hidden}}.cert-sign{grid-template-columns:1fr 124px 1fr;align-items:end;height:138px;margin-top:0;margin-bottom:18px;padding:0 4px 2px;display:grid}.sign{text-align:center;font-size:14.5px;line-height:1.65}.sign .note,.sign .lunar{color:var(--ink);line-height:1.65;font-size:14.5px!important}.sign .role{color:var(--deep);font-family:Moul,serif;font-size:14.5px;line-height:1.75}.sign .space{height:35px}.sign .nm{color:var(--ink);font-weight:700}.sign-left{transform:translate(-1.2cm)}.teacher-name-shift{transform:translate(1.5cm)}.seal-slot{justify-content:center;align-items:flex-end;height:100%;margin-bottom:-6px;display:flex}:root{--navy:#0b2a6f;--navy-2:#1d4ba8;--gold:#c9962e;--gold-soft:#f6e7b6;--bg:#e9ecf3;--surface:#fff;--line:#dfe3ee;--text:#1b2340;--muted:#6b7491;--radius:12px;color:var(--text);font-family:Kantumruy Pro,Battambang,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}.app{grid-template-columns:410px 1fr;height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);z-index:2;min-height:0;box-shadow:4px 0 24px #141e460f}.stage{background:radial-gradient(circle at 50% 38%, #ffffffd9, #fff0 60%), repeating-linear-gradient(45deg, #0b2a6f06 0 14px, transparent 14px 28px), var(--bg);flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.scaler{flex:none;box-shadow:0 24px 60px #141c404d,0 3px 10px #141c402e}.scaler-inner{transform-origin:0 0;width:297mm;height:210mm}.fullview-btn{z-index:1;border:1px solid var(--line);color:var(--navy);cursor:pointer;background:#ffffffeb;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;font-weight:700;transition:all .12s;display:flex;position:absolute;top:12px;right:14px;box-shadow:0 2px 8px #141e461f}.fullview-btn:hover{border-color:var(--navy);background:#fff}.stage-hint{color:var(--muted);letter-spacing:.02em;margin:0;font-size:12px;position:absolute;bottom:10px}.panel{flex-direction:column;height:100%;display:flex}.brand{color:#fff;background:linear-gradient(120deg, var(--navy), var(--navy-2));border-bottom:3px solid var(--gold);align-items:center;gap:12px;padding:14px 18px;display:flex}.brand img{filter:drop-shadow(0 1px 2px #0006);flex:none;height:44px}.brand h1{margin:0;font-family:Moul,serif;font-size:15px;font-weight:400;line-height:1.8}.brand p{opacity:.8;margin:0;font-size:11.5px}.panel-scroll{flex:1;min-height:0;padding:6px 14px 14px;overflow-y:auto}.section{border-bottom:1px solid var(--line);padding:4px 0}.section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:baseline;gap:8px;padding:11px 2px;font-size:14.5px;font-weight:700;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary:before{content:"";border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);width:7px;height:7px;transition:transform .15s;transform:translateY(-2px)rotate(-45deg)}.section[open]>summary:before{transform:translateY(-3px)rotate(45deg)}.section>summary em{color:var(--muted);font-size:12px;font-style:normal;font-weight:400}.section-body{grid-template-columns:1fr 1fr;gap:10px;padding:2px 2px 14px;display:grid}.section-body>*{min-width:0}.section-body>.wide,.section-body>.segmented,.section-body>.layout-cards,.section-body>.dropzone,.section-body>.ranges,.section-body>.swatches,.section-body>.chips,.section-body>.toggles{grid-column:1/-1}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:12.5px;font-weight:600}.field-label em{color:var(--muted);margin-left:6px;font-size:11px;font-style:normal;font-weight:400}.field input,.field textarea{border:1px solid var(--line);background:#fafbfe;border-radius:8px;width:100%;padding:8px 10px;font-size:14px;line-height:1.7;transition:border-color .15s,box-shadow .15s,background .15s}.field textarea{resize:vertical;min-height:90px}.field input:focus,.field textarea:focus{border-color:var(--navy-2);background:#fff;outline:none;box-shadow:0 0 0 3px #1d4ba826}.layout-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.layout-card{border:1.5px solid var(--line);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:#fafbfe;flex-direction:column;align-items:center;gap:2px;padding:12px 8px 10px;transition:all .15s;display:flex}.layout-card:hover{border-color:#b9c2dd}.layout-card.on{border-color:var(--navy);color:var(--navy);background:#f1f5ff;box-shadow:0 0 0 3px #0b2a6f1f,0 4px 12px #0b2a6f1f}.layout-icon{width:88px;margin-bottom:4px}.layout-card strong{color:var(--text);font-size:14px}.layout-card small{font-size:11.5px}.dropzone{border-radius:var(--radius);background:#fafbfe;border:1.5px dashed #b9c2dd;grid-template-columns:72px 1fr;align-items:center;gap:8px 12px;padding:12px;transition:all .15s;display:grid}.dropzone.drag{border-color:var(--navy);background:#eef3ff}.drop-thumb{object-fit:contain;border:2px solid var(--gold);background:#eef1f8;border-radius:6px;width:72px;height:96px}.drop-thumb.empty{background:var(--gold-soft);color:var(--gold);place-items:center;font-weight:700;display:grid}.drop-actions{flex-wrap:wrap;gap:6px;display:flex}.drop-hint{color:var(--muted);grid-column:1/-1;margin:0;font-size:11.5px;line-height:1.6}.drop-hint em{opacity:.85;font-style:normal}.ranges{gap:8px;display:grid}.range span{justify-content:space-between;font-size:12.5px;font-weight:600;display:flex}.range b{color:var(--navy);font-weight:700}.range input{width:100%;accent-color:var(--navy)}.range.off{opacity:.45}.shape-picker{gap:6px;display:grid}.shape-picker .drop-hint{margin-top:2px}.segmented{border:1px solid var(--line);background:#f1f3f9;border-radius:10px;grid-template-columns:1fr 1fr;padding:3px;display:grid}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:center;padding:6px 4px;display:flex}.segmented button strong{font-size:12.5px}.segmented button small{font-size:10.5px}.segmented button.on{color:var(--navy);background:#fff;box-shadow:0 1px 4px #141e462e}.segmented.four{grid-template-columns:repeat(4,1fr)}.segmented.four button{padding:6px 2px}.segmented.four button strong{white-space:nowrap;font-size:12px}.swatches{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.swatch{border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#fafbfe;flex-direction:column;align-items:center;gap:1px;padding:10px 4px 8px;display:flex}.swatch .chip{width:34px;height:34px;box-shadow:0 0 0 1.5px var(--line);border:2px solid #fff;border-radius:50%;margin-bottom:4px}.swatch strong{font-size:12.5px}.swatch small{color:var(--muted);font-size:10.5px}.swatch.on{border-color:var(--navy);background:#f1f5ff}.swatch.on .chip{box-shadow:0 0 0 2px var(--navy)}.chips{flex-wrap:wrap;gap:6px;display:flex}.pill{border:1.5px solid var(--line);cursor:pointer;background:#fafbfe;border-radius:999px;padding:5px 11px;font-size:12.5px;transition:all .12s}.pill:hover{border-color:#b9c2dd}.pill.on{border-color:var(--navy);background:var(--navy);color:#fff}.rank-picker{flex-direction:column;gap:6px;display:flex}.rank-row{align-items:center;gap:8px;display:flex}.rank-btns{flex:1;grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.rank-btn{border:1.5px solid var(--line);cursor:pointer;background:#fafbfe;border-radius:8px;padding:6px 4px;font-size:12.5px;font-weight:700;transition:all .12s}.rank-btn:hover{border-color:#b9c2dd}.rank-btn.on{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:0 2px 6px #0b2a6f33}.rank-input{border:1px solid var(--line);text-align:center;background:#fafbfe;border-radius:8px;padding:6px 8px;font-size:13.5px;font-weight:700;width:60px!important}.rich-field{flex-direction:column;gap:6px;display:flex}.rich-toolbar{border:1px solid var(--line);background:#f4f6fb;border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.rich-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.rich-btn-group{align-items:center;gap:5px;display:flex}.quick-field{flex-direction:column;gap:6px;display:flex}.quick-chips{flex-wrap:wrap;gap:5px;display:flex}.mini-chip{border:1px solid var(--line);cursor:pointer;background:#f4f6fb;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .12s}.mini-chip:hover{border-color:var(--navy);background:#eef3ff}.mini-chip.on{border-color:var(--navy);background:var(--navy);color:#fff}.rich-btn{cursor:pointer;background:#fff;border:1px solid #c5cde2;border-radius:6px;padding:4px 9px;font-size:12px;transition:all .12s}.rich-btn:hover{border-color:var(--navy);background:#eef3ff}.color-dots{align-items:center;gap:5px;display:flex}.color-dot{cursor:pointer;border:2px solid #fff;border-radius:50%;width:22px;height:22px;padding:0;transition:transform .12s;box-shadow:0 0 0 1px #b9c2dd}.color-dot:hover{transform:scale(1.15)}.color-picker-wrap{cursor:pointer;background:#fff;border:1px dashed #9aa6c4;border-radius:999px;align-items:center;padding:3px 7px;font-size:11px;font-weight:600;display:inline-flex;position:relative}.color-picker-wrap input[type=color]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.rich-fonts{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.font-btn{cursor:pointer;background:#fff;border:1px solid #d0d7e8;border-radius:6px;padding:5px 6px;font-size:12px;line-height:1.5;transition:all .12s}.font-btn:hover{border-color:var(--navy);color:var(--navy);background:#eef3ff}.rich-editor{border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;background:#fafbfe;border-radius:8px;outline:none;min-height:98px;padding:10px 12px;font-family:Battambang,Siemreap,serif;font-size:14.5px;line-height:1.85;transition:border-color .15s,box-shadow .15s,background .15s}.rich-editor:focus{border-color:var(--navy-2);background:#fff;box-shadow:0 0 0 3px #1d4ba826}.toggles{gap:10px;display:grid}.toggle{cursor:pointer;align-items:center;gap:10px;font-size:13.5px;display:flex}.toggle input{opacity:0;position:absolute}.toggle-track{background:#c8cfe2;border-radius:999px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle input:checked+.toggle-track{background:var(--navy)}.toggle input:checked+.toggle-track:after{transform:translate(16px)}.toggle input:focus-visible+.toggle-track{box-shadow:0 0 0 3px #1d4ba84d}.btn{border:1.5px solid var(--navy);color:var(--navy);cursor:pointer;background:#fff;border-radius:9px;padding:9px 14px;font-size:13.5px;font-weight:700;transition:all .12s}.btn:hover:not(:disabled){background:#eef3ff}.btn.primary{background:var(--navy);color:#fff}.btn.primary:hover:not(:disabled){background:var(--navy-2)}.btn.ghost{color:var(--muted);border-color:#0000}.btn.ghost:hover:not(:disabled){color:var(--text);background:#f1f3f9}.btn.sm{padding:5px 10px;font-size:12.5px}.btn:disabled{opacity:.6;cursor:progress}.panel-actions{border-top:1px solid var(--line);background:#fbfcff;gap:8px;padding:12px 14px;display:flex}.panel-actions .btn.primary{flex:1.2}.panel-actions .btn:not(.primary):not(.ghost){flex:1}.brand-save-tag{color:#fff;white-space:nowrap;background:#ffffff26;border:1px solid #ffffff47;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:4px 9px;font-size:11px;display:inline-flex}.brand-save-tag .save-status-dot{background:#34d399;border-radius:50%;width:7px;height:7px;transition:all .2s;box-shadow:0 0 6px #34d399e6}.brand-save-tag.saving .save-status-dot{background:#fbbf24;box-shadow:0 0 6px #fbbf24e6}.reason-quick-actions{border-top:1px dashed var(--line);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding-top:6px;display:flex}.reason-quick-actions .quick-save-btn{padding:4px 10px;font-size:12px}.autosave-pill{color:#10b981;align-items:center;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.autosave-pill.saving{color:#d97706}.autosave-banner{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:12px;display:flex}.autosave-indicator-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 6px #10b981b3}.autosave-indicator-dot.saving{background:#f59e0b;box-shadow:0 0 6px #f59e0bb3}.template-save-form{gap:8px;margin-bottom:12px;display:flex}.template-name-input{border:1.5px solid var(--line);min-width:0;color:var(--text);background:#fff;border-radius:8px;outline:none;flex:1;padding:7px 11px;font-size:13px;transition:border-color .15s}.template-name-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #0b2a6f14}.template-save-btn{white-space:nowrap;flex-shrink:0}.template-toast{color:var(--navy);background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;margin-bottom:10px;padding:6px 12px;font-size:12px;font-weight:600}.saved-templates-list{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.saved-templates-empty{color:var(--muted);text-align:center;border:1px dashed var(--line);background:#f8fafc;border-radius:8px;margin:0;padding:12px;font-size:12px}.saved-template-card{border:1px solid var(--line);background:#fafbff;border-radius:10px;padding:10px 12px;transition:all .15s;box-shadow:0 1px 4px #141e460a}.saved-template-card:hover{background:#fff;border-color:#b8c4e6;box-shadow:0 3px 8px #141e4614}.saved-template-header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.saved-template-name{color:var(--navy);word-break:break-word;font-size:13px;font-weight:700}.saved-template-date{color:var(--muted);flex-shrink:0;font-size:11px}.saved-template-tags{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.mini-tag{color:#334155;background:#e2e8f0;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:500}.mini-tag.rank{color:#991b1b;background:#fee2e2;font-weight:700}.mini-tag.school{color:#3730a3;background:#e0e7ff}.saved-template-actions{align-items:center;gap:6px;display:flex}.saved-template-actions .btn{flex:1;padding:4px 8px;font-size:12px}.saved-template-actions .delete-btn{color:#ef4444;flex:none;padding:4px 8px;font-size:13px}.saved-template-actions .delete-btn:hover{color:#b91c1c;background:#fee2e2}.backup-toolbar{border-top:1px dashed var(--line);gap:8px;margin-top:10px;padding-top:10px;display:flex}.backup-btn{border:1px solid var(--line);color:var(--muted);background:#fff;flex:1;padding:6px 8px;font-size:11px}.backup-btn:hover{color:var(--text);background:#f1f5f9;border-color:#cbd5e1}.fullview{z-index:10;cursor:zoom-out;background:#0a1028ed;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fullview-page{flex:none;overflow:hidden;box-shadow:0 20px 70px #0000008c}.fullview-close{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;position:absolute;top:14px;right:16px}.fullview-close:hover,.fullview-close:focus-visible{background:#ffffff40;outline:none}@media (width<=900px){.app{flex-direction:column;height:auto;min-height:100%;display:flex}.stage{flex:none;order:-1;height:calc(70.6vw + 16.464px);padding-bottom:10px}.sidebar{border-right:0}.panel{height:auto}.panel-scroll{overflow:visible}.stage-hint{display:none}}@page{size:A4 landscape;margin:0}@media print{html,body,#root{background:#fff;height:auto;margin:0}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.sidebar,.stage-hint,.fullview-btn,.fullview{display:none!important}.app,.stage{background:0 0;height:auto;padding:0;display:block;overflow:visible}.scaler{box-shadow:none;break-inside:avoid;break-after:avoid;margin:0;overflow:hidden;width:297mm!important;height:210mm!important}.scaler-inner{transform:none!important}}
