*{box-sizing:border-box}:root{--brand: #4b3f9e;--brand-dark: #38307a;--brand-soft: #efecf9;--line: #d8d4ee;--text: #23223a;--muted: #6f6d8a;--danger: #c0392b;--ok: #1d7a4f}html,body{margin:0;padding:0}body{font-family:PingFang TC,Microsoft JhengHei,Noto Sans TC,Helvetica Neue,Arial,sans-serif;background:var(--brand-soft);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}#app{min-height:100vh}.container{max-width:760px;margin:0 auto;padding:0 16px 48px}.banner{background:var(--brand);color:#fff;padding:18px 16px}.banner-inner{max-width:760px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.banner .school{font-size:15px;font-weight:500;letter-spacing:1px}.banner .badge{background:#ffffff29;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:2px 12px;font-size:12px;white-space:nowrap}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 26px;margin-top:22px;box-shadow:0 1px 2px #3c32780f}h1{font-size:22px;font-weight:500;margin:0 0 6px;color:var(--brand-dark)}h1.en{font-size:15px;font-weight:400;color:var(--muted);margin:0 0 16px}.meta{list-style:none;padding:0;margin:0 0 18px;font-size:14px}.meta li{padding:4px 0;border-bottom:1px dashed var(--line)}.meta li:last-child{border-bottom:0}.meta b{color:var(--brand-dark);font-weight:500;margin-right:8px}.field{margin-bottom:22px}.field>label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}.field .req{color:var(--danger);margin-left:2px}.hint{font-size:12px;color:var(--muted);margin-top:4px}.err{font-size:12px;color:var(--danger);margin-top:4px}.privacy{margin-top:22px;padding:14px 16px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px}.privacy h2{font-size:13px;font-weight:600;margin:0 0 6px;color:var(--text)}.privacy h2.en{margin-top:12px;font-style:italic;font-weight:500;color:var(--muted)}.privacy p{font-size:12px;line-height:1.7;color:#45505e;margin:0}.privacy p.en{font-style:italic;color:var(--muted)}input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}.radio-row{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:14px}.radio-row input[type=radio]{accent-color:var(--brand);width:16px;height:16px;flex:none;cursor:pointer}.radio-row>label{cursor:pointer}.radio-row .sub{margin-left:8px;flex:1;min-width:0}.btn{display:inline-block;border:0;border-radius:999px;padding:11px 30px;font-size:15px;font-weight:500;cursor:pointer;background:var(--brand);color:#fff}.btn:hover{background:var(--brand-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:#fff;color:var(--brand-dark);border:1px solid var(--brand)}.actions{display:flex;gap:12px;margin-top:26px}.qr-wrap{text-align:center;padding:18px 0 6px}.qr-wrap img{width:190px;height:190px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.admission-no{font-size:26px;font-weight:500;letter-spacing:4px;color:var(--brand-dark);text-align:center;margin:10px 0 2px}.admission-label{text-align:center;font-size:12px;color:var(--muted)}.success-msg{font-size:14px;white-space:pre-line;background:#f6fbf8;border:1px solid #cfe8da;border-radius:10px;padding:16px 18px;margin-top:18px}.simulated-tip{margin-top:14px;font-size:12px;color:#8a6d1a;background:#fdf6e3;border:1px solid #f0e0ad;border-radius:8px;padding:8px 12px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.photo{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fff}.photo img{width:100%;display:block}.photo .ph{aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;background:repeating-linear-gradient(45deg,#f4f2fb 0,#f4f2fb 12px,#ece9f7 12px,#ece9f7 24px)}.banner-img{margin:8px 0 12px}.banner-img img{width:100%;display:block;border-radius:12px;border:1px solid var(--line);max-height:300px;object-fit:cover}.banner-ph{aspect-ratio:3 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;border-radius:12px;background:var(--brand-dark)}.banner-ph .big{font-size:22px;font-weight:500;letter-spacing:2px}.banner-ph .small{font-size:13px;opacity:.85}@media (max-width: 560px){.card{padding:20px 16px}.photo-grid{grid-template-columns:1fr}}
