@font-face{font-family:'Noto Sans SC';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/noto-sans-sc-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Sans SC';font-style:normal;font-weight:500;font-display:swap;src:url('./fonts/noto-sans-sc-latin-500-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Sans SC';font-style:normal;font-weight:700;font-display:swap;src:url('./fonts/noto-sans-sc-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Noto Sans SC';font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/noto-sans-sc-chinese-simplified-400-normal.woff2') format('woff2');unicode-range:U+3000-303F,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF}
@font-face{font-family:'Noto Sans SC';font-style:normal;font-weight:500;font-display:swap;src:url('./fonts/noto-sans-sc-chinese-simplified-500-normal.woff2') format('woff2');unicode-range:U+3000-303F,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF}
@font-face{font-family:'Noto Sans SC';font-style:normal;font-weight:700;font-display:swap;src:url('./fonts/noto-sans-sc-chinese-simplified-700-normal.woff2') format('woff2');unicode-range:U+3000-303F,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF}
:root{--ink:#382c2b;--muted:#7c6d68;--hint:#91837d;--brand:#b43b42;--deep:#842e35;--pale:#fbecea;--bg:#faf7f3;--line:#e9dfd8;--sky:#fff3e9;--error:#a62a26;--white:#fff;font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink);background:#eee7e1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit;color:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}p,h1,h2,fieldset{margin:0}fieldset{padding:0;border:0;min-width:0}h1{font-size:28px;line-height:40px;white-space:nowrap;font-weight:700}h2{font-size:21px;line-height:30px;font-weight:700}p{font-size:16px;line-height:26px}a{color:var(--brand)}#app{max-width:390px;min-height:100dvh;margin:auto;background:var(--bg);outline:none}.brand{padding:24px;background:var(--deep)}.brand.compact{padding:16px 24px}.logo{display:block;width:100%;height:73px;object-fit:contain}.intro{padding:24px;background:var(--sky);display:grid;gap:8px}.campus{display:block;width:100%;height:200px;object-fit:cover}.content{padding:24px;display:flex;flex-direction:column;gap:20px}.content.form-content{padding:20px}.query-content{gap:24px}.stack{display:flex;flex-direction:column;gap:4px}.caption{font-size:12px;line-height:20px;color:var(--muted)}.muted{color:var(--muted)}.red{color:var(--brand)}.label,legend{font-size:14px;line-height:22px;font-weight:500}.card{background:white;border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:16px}.form-card{padding:20px;gap:20px}.receipt{gap:20px}.resource{gap:16px}.section-title{display:flex;gap:12px;align-items:flex-start}.section-title h2{white-space:pre}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:14px;line-height:22px;font-weight:500}.input{border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:15px 16px;min-height:60px;width:100%;font-size:16px;line-height:28px;outline:0}.input::placeholder,textarea::placeholder{color:var(--hint)}.input:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #b43b4214}:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{display:flex;gap:8px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:12px;min-height:60px;font-size:14px;line-height:22px;font-weight:500;cursor:pointer}.choice:has(input:checked){background:var(--pale);border-color:var(--brand);color:var(--brand)}.choice input{margin:0;width:15px;height:15px;accent-color:var(--brand);flex:none}.choice:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}.btn{display:block;width:100%;border:0;border-radius:12px;padding:16px;min-height:58px;background:var(--brand);color:white;text-align:center;font-size:16px;line-height:26px;text-decoration:none}.btn:hover{filter:brightness(.96)}.btn.secondary{background:white;color:var(--brand);box-shadow:inset 0 0 0 1px var(--line)}.entry{background:var(--pale);color:var(--brand);font-size:14px;line-height:22px;padding:12px;min-height:46px;font-weight:500}.clear{align-self:flex-start;background:none;border:0;color:var(--brand);font-size:12px;line-height:20px;padding:8px 0;min-height:44px;margin:-8px 0}.need-panel{background:var(--pale);padding:16px;border-radius:12px;display:grid;gap:8px;animation:reveal .18s ease-out}.textarea-shell{background:white;border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:8px}textarea{border:0;outline:0;resize:vertical;width:100%;min-height:68px;font-size:16px;line-height:24px;background:transparent}.error{color:var(--error);font-size:12px;line-height:20px}.invalid{border-color:var(--error)!important;background:#fff0ee}.status{display:flex;align-items:center;gap:10px}.status img{display:block;width:22px;height:22px}.code-card{border-radius:12px;background:var(--pale);padding:16px;display:flex;flex-direction:column;gap:8px}.code{font-size:22px;line-height:30px;font-weight:700;color:var(--brand);user-select:all;overflow-wrap:anywhere}.detail-line{display:grid;gap:4px}.detail-line p{overflow-wrap:anywhere;white-space:pre-wrap}.demo-note{padding:12px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:11px;line-height:18px;color:var(--muted)}.demo-note button{background:none;border:0;text-decoration:underline;padding:4px;color:var(--brand);font-size:11px}#toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:12px 20px;font-size:14px;max-width:90vw;pointer-events:none;opacity:0;transition:opacity .15s;z-index:5}#toast.show{opacity:1}form{display:contents}[hidden]{display:none!important}@keyframes reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media(max-width:359px){h1{font-size:24px}.content{padding:20px}.card{padding:20px}.form-card{padding:16px}.code{font-size:19px}}@media(min-width:600px){#app{box-shadow:0 0 60px #382c2b0a}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}h2,p{overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.boot{min-height:50vh;display:flex;align-items:center}.req{color:var(--brand)}.hero-banner{background:var(--sky)}.hero-banner .intro{position:relative;z-index:1;padding:12px 24px 0;gap:2px}.hero-banner h1{font-size:26px;line-height:32px}.hero-banner .campus{height:156px;margin-top:-4px;object-position:center 74%;-webkit-mask-image:linear-gradient(#0000,#000 26px);mask-image:linear-gradient(#0000,#000 26px)}
