:root{--green:#69d129;--green-deep:#4fa815;--green-ink:#10200c;--green-soft:#eef9e0;--ink:#171a17;--ink-2:#1f241f;--muted:#666c66;--line:#d9ddd7;--line-dark:#3a403a;--paper:#f5f6f3;--white:#fff;--ok:#1d7a44;--warn:#b4820c;--err:#c03219;--f-head:"Barlow Condensed", "Noto Sans SC", sans-serif;--f-body:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--f-mono:"DM Mono", "Consolas", monospace;--gutter:clamp(24px, 6vw, 96px);--space-1:8px;--space-2:16px;--space-3:24px;--space-4:40px;--space-5:64px;--space-6:96px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-soft:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}body{font-family:var(--f-body);background:var(--paper);color:var(--ink);min-height:100vh;font-size:15px;line-height:1.7}#app{min-height:100vh}@media (width>=781px){.masthead .shell,.page,.footer .shell{padding-left:40px;padding-right:40px}}h1,h2,h3,h4{font-family:var(--f-head);letter-spacing:-.02em;font-weight:800;line-height:1.12}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select{color:var(--ink);font-family:inherit;font-size:16px}em{color:var(--green);font-style:normal}::selection{background:var(--green);color:var(--ink)}.shell{max-width:1120px;margin:0 auto;padding:0}.page{max-width:1120px;padding:var(--space-5) 0 calc(var(--space-6) * 1.5);background:var(--white);min-height:calc(100vh - 156px);margin:0 auto}.masthead{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;background:#fffffff5;position:sticky;top:0}.masthead .shell{justify-content:space-between;align-items:center;height:80px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand img{width:auto;height:40px;display:block}.brand-divider{background:#cfd3cd;width:1px;height:32px}.brand-slogan{font-family:var(--f-mono);letter-spacing:.08em;color:#626862;text-transform:uppercase;font-size:8px;line-height:1.45}nav.main-nav{align-items:center;gap:30px;display:flex}.nav-link{font-family:var(--f-mono);letter-spacing:.08em;color:#414640;padding:10px 0;font-size:13px;transition:color .2s;position:relative}.nav-link:after{content:"";background:var(--green);width:0;height:2px;transition:width .35s var(--ease-out-expo);position:absolute;bottom:2px;left:0}.nav-link:hover:after{width:100%}.nav-link:hover{color:var(--green)}.nav-link.active{color:var(--ink);font-weight:500}.nav-link.active:after{width:100%}.hero{border-bottom:1px solid var(--line);padding:clamp(56px,7vw,104px) 0 clamp(40px,5vw,64px)}.eyebrow{font-family:var(--f-mono);letter-spacing:.14em;color:#4c534c;text-transform:uppercase;margin-bottom:var(--space-3);align-items:center;gap:10px;font-size:10px;display:flex}.eyebrow .dot{background:var(--green);border-radius:50%;width:8px;height:8px;animation:2.6s ease-in-out infinite dotPulse}@keyframes dotPulse{0%,to{box-shadow:0 0 0 4px #69d12940}50%{box-shadow:0 0 0 9px #69d12914}}.hero h1{font-family:var(--f-head);letter-spacing:-.03em;max-width:14em;font-size:clamp(40px,5.2vw,62px);font-weight:800;line-height:1.08}.hero h1 .accent{color:var(--green)}.hero .sub{margin-top:var(--space-3);color:var(--muted);letter-spacing:.04em;max-width:34em;font-size:14px}.hero-footer{border-top:1px solid var(--line);font-family:var(--f-mono);letter-spacing:.1em;color:#6f756e;justify-content:space-between;align-items:center;margin-top:clamp(40px,5vw,64px);padding-top:16px;font-size:10px;display:flex}.hero-footer .status{align-items:center;gap:8px;display:inline-flex}.hero-footer .status i{background:var(--green);border-radius:50%;width:7px;height:7px}.hero-footer .status i.off{background:#b9beb6}.tag{font-family:var(--f-mono);letter-spacing:.12em;border:1px solid var(--line);background:var(--white);color:var(--muted);text-transform:uppercase;align-items:center;gap:10px;padding:8px 14px;font-size:12px;display:inline-flex}.tag .dot{background:var(--green);border-radius:50%;width:7px;height:7px}.tag .dot.off{background:#b9beb6}.tag.ok{border-color:var(--ok);color:var(--ok)}.tag.warn{border-color:var(--warn);color:var(--warn)}.panel{background:var(--white);border:1px solid var(--line);padding:clamp(36px,5vw,64px)}.panel h2{letter-spacing:-.03em;margin-bottom:var(--space-2);font-size:clamp(26px,3vw,34px)}.panel .panel-sub{font-family:var(--f-mono);letter-spacing:.14em;color:var(--muted);margin-bottom:var(--space-5);text-transform:uppercase;font-size:11px}.field{margin-bottom:var(--space-4)}.field label{font-family:var(--f-mono);letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-bottom:10px;font-size:12px;display:block}.field label .req{color:var(--err)}.input{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;outline:none;width:100%;padding:13px 2px;transition:border-color .15s}.input:focus{border-color:var(--green)}.input::placeholder{color:#aab0aa}.input.invalid{border-color:var(--err)}.field-hint{color:var(--muted);margin-top:8px;font-size:12px}.field-error{color:var(--err);margin-top:8px;font-size:12px}.seg{border:1px solid var(--line);background:var(--white);grid-template-columns:repeat(2,1fr);display:grid}.seg-btn{color:var(--muted);border-right:1px solid var(--line);padding:13px 0;font-size:15px;transition:background .15s,color .15s}.seg-btn:last-child{border-right:none}.seg-btn:hover{color:var(--ink);background:var(--green-soft)}.seg-btn.active{background:var(--green);color:var(--green-ink);font-weight:700}.captcha-row{grid-template-columns:1fr auto;align-items:center;gap:16px;display:grid}.captcha-badge{background:var(--ink);color:#fff;min-height:48px;font-family:var(--f-mono);letter-spacing:.1em;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease, transform .3s var(--ease-spring);align-items:center;gap:12px;padding:0 20px;font-size:17px;display:inline-flex}.captcha-badge:hover{background:var(--green);color:var(--green-ink)}.captcha-badge:hover .refresh{transform:rotate(180deg)}.captcha-badge .refresh{opacity:.65;font-size:15px;transition:transform .45s}.captcha-row .input{min-width:0}.btn{background:var(--green);min-width:200px;color:var(--green-ink);border:2px solid var(--green);letter-spacing:.02em;transition:transform .3s var(--ease-spring), box-shadow .3s ease, background .15s ease;justify-content:center;align-items:center;gap:14px;padding:14px 22px;font-size:14px;font-weight:800;display:inline-flex}.btn .arr{font-size:20px;line-height:1}.btn:hover{transform:translateY(-3px);box-shadow:0 10px 28px #69d12966}.btn:active{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn.block{width:100%;min-width:0}.btn.ghost{border-color:var(--ink);color:var(--ink);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--ink);color:#fff;transform:translateY(-2px);box-shadow:0 8px 22px #0000002e}.btn.sm{min-width:0;padding:9px 16px;font-size:12px;font-weight:700}.btn.sm .arr{font-size:15px}.alert{margin-bottom:var(--space-4);border:1px solid;align-items:flex-start;gap:12px;padding:15px 18px;font-size:14px;animation:.25s fade-slide;display:flex}.alert.err{border-color:var(--err);color:#7e2413;background:#fdf3f0}.alert.ok{border-color:var(--ok);color:#0d5a30;background:#f0f8f1}.alert.warn{border-color:var(--warn);color:#7a5a08;background:#fbf6ea}@keyframes fade-slide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.result-card{background:var(--white);border:1px solid var(--line);margin-top:var(--space-5);text-align:center;padding:clamp(40px,6vw,80px)}.badge-icon{width:68px;height:68px;margin:0 auto var(--space-4);border:1px solid var(--line);color:var(--muted);border-radius:50%;place-items:center;font-size:30px;display:grid}.badge-icon.ok{background:var(--green-soft);border-color:var(--green-deep);color:var(--green-deep)}.badge-icon.wait{border-color:var(--warn);color:var(--warn);background:#fdfdf5}.badge-icon.no{border-color:var(--muted);color:var(--muted);background:#f7f7f5}.badge-icon.deny{border-color:var(--err);color:var(--err);background:#fdf3f0}.result-status{font-family:var(--f-head);letter-spacing:-.02em;margin-bottom:var(--space-2);font-size:clamp(26px,3.4vw,34px);font-weight:800}.result-card .result-body{color:var(--muted);max-width:32em;margin:0 auto var(--space-5);font-size:15px;line-height:1.9}.pass-ticket{max-width:460px;margin:var(--space-5) auto 0;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--green);text-align:left;padding:30px 30px 24px}.pass-ticket.unapproved{border-left-color:var(--muted)}.pass-top{font-family:var(--f-mono);letter-spacing:.2em;color:var(--green-deep);text-transform:uppercase;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:18px;font-size:11px;display:flex}.pass-body{text-align:left}.pass-row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;padding:11px 0;font-size:14px;display:flex}.pass-row:last-child{border-bottom:none}.pass-row .k{color:var(--muted);font-family:var(--f-mono);letter-spacing:.1em;font-size:12px}.pass-row .v{font-weight:700}.pass-code{font-family:var(--f-mono);letter-spacing:.24em;color:var(--green-deep);font-size:28px;font-weight:500}.footer{color:#fff;padding:var(--space-4) 0;background:#101310}.footer .shell{flex-wrap:wrap;align-items:flex-end;gap:24px;display:flex}.footer .wordmark{font-family:var(--f-head);letter-spacing:.02em;color:#fff;font-size:34px;font-weight:800;line-height:.8}.footer .wordmark em{color:var(--green)}.footer .tagline b{color:#fff;font-size:12px}.footer .tagline p,.footer .copy{font-family:var(--f-mono);color:#879087;margin-top:6px;font-size:9px}.footer .copy{margin-left:auto}.info-line{color:var(--muted);font-size:13px}.mono{font-family:var(--f-mono)}.btn-block-hover{transition:transform .45s var(--ease-out-expo)}@media (width<=1024px){.shell,.page{max-width:calc(100% - 64px)}.panel{padding:48px}.hero h1{font-size:clamp(38px,6vw,56px)}.captcha-row{grid-template-columns:minmax(0,1fr) auto}}@media (width<=780px){.masthead .shell,.page,.footer .shell{padding-left:20px;padding-right:20px}.shell,.page{max-width:calc(100% - 32px)}.page{padding-top:var(--space-4);margin-left:16px;margin-right:16px}.masthead .shell{height:64px}.brand img{height:30px}.brand-divider,.brand-slogan{display:none}nav.main-nav{gap:18px}.nav-link{letter-spacing:.05em;font-size:12px}.hero{padding-top:48px;padding-bottom:40px}.hero h1{font-size:36px}.hero .sub{font-size:14px}.hero-footer{flex-wrap:wrap;gap:16px;font-size:9px}.page>div>.panel,.page>form.panel{margin-top:24px;margin-bottom:48px}.panel{padding:28px 22px}.panel h2{font-size:28px}.panel .panel-sub{margin-bottom:36px}.field{margin-bottom:28px}.captcha-row{grid-template-columns:1fr;gap:12px}.captcha-badge{width:100%}.btn{width:100%;min-width:0}.btn.sm{width:auto}.result-card{padding:40px 22px}.pass-ticket{margin-top:36px;padding:24px 20px 18px}.pass-top{flex-direction:column;align-items:flex-start;gap:12px}.pass-row{flex-wrap:wrap;gap:18px}.pass-row .v,.pass-code{text-align:right;margin-left:auto}.footer .shell{flex-direction:column;align-items:flex-start;gap:16px}.footer .copy{margin-left:0}}@media (width<=420px){.page{padding-left:12px;padding-right:12px}.brand-name{display:none}nav.main-nav{gap:14px}.hero h1{font-size:32px}.hero-footer{flex-direction:column;align-items:flex-start}.panel{padding:24px 18px}.result-card{padding:32px 18px}}@media print{.masthead,.footer,.btn,.hero .sub,.hero-footer,.query-bar{display:none!important}body{background:#fff}.result-card{border:none;margin:0;padding:0}.pass-ticket{box-shadow:none;border:1px solid #000;border-left-width:4px;max-width:520px;margin:24px auto}}.page>form.panel,.page>div>form.panel{max-width:760px;margin:var(--space-4) auto var(--space-6)}.page>div>.panel{margin-top:var(--space-4);margin-bottom:var(--space-5)}.page>div>.result-card{margin-top:var(--space-5);margin-bottom:var(--space-6)}.hero+form.panel,.hero+div{margin-top:var(--space-4)}@media (width<=780px){.page>form.panel{margin-top:var(--space-3);margin-bottom:var(--space-5)}.page>div>.panel{margin-top:var(--space-3);margin-bottom:var(--space-4)}}
