:root{--ink:#16231d;--muted:#607069;--paper:#f5f7f4;--white:#fff;--green:#1c6848;--green-dark:#124b34;--green-light:#e4f1e9;--gold:#c7942c;--line:#dbe3de;--danger:#a53232;--shadow:0 18px 50px rgba(20,47,34,.08);font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0;line-height:1.6}.hero{background:linear-gradient(120deg,#103d2b 0%,#1b6647 62%,#29765a 100%);color:#fff;padding:48px 24px 56px;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-100px;top:-200px;box-shadow:0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.025)}.hero__inner{max-width:1000px;margin:auto;display:flex;gap:30px;align-items:flex-start;position:relative;z-index:1}.brand-mark{width:78px;height:78px;border:1px solid rgba(255,255,255,.65);display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif;font-size:16px;letter-spacing:.08em;flex:0 0 auto}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:13px;font-weight:700;color:#d3e6db;margin:0 0 8px}h1{font-family:Georgia,"Noto Serif TC",serif;font-size:clamp(30px,5vw,52px);line-height:1.2;margin:0}.hero__copy{max-width:680px;color:#dcebe3;margin:16px 0 0}.page-shell{width:min(920px,calc(100% - 32px));margin:-24px auto 70px;position:relative;z-index:2}.notice{padding:15px 18px;border-radius:10px;margin-bottom:18px}.notice--loading{background:#fff5d9;color:#694f16;border:1px solid #ead28c}.notice--error{background:#fff0f0;color:var(--danger);border:1px solid #e7b8b8}.card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:30px;margin-bottom:18px;box-shadow:var(--shadow)}.section-heading{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px}.section-heading>span,.summary-number{color:var(--gold);font:700 14px Georgia,serif;border-top:2px solid var(--gold);padding-top:5px;min-width:28px}.section-heading h2{font-size:22px;line-height:1.3;margin:0 0 3px}.section-heading p{color:var(--muted);margin:0;font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:650}.field--wide{grid-column:1/-1}.field b,.choice-group b,.check-row b{color:var(--danger)}input,select,textarea{width:100%;border:1px solid #bdcac2;border-radius:8px;background:#fff;padding:11px 12px;font:inherit;color:var(--ink);transition:.18s border-color,.18s box-shadow}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(28,104,72,.12)}input:user-invalid,select:user-invalid{border-color:#c75a5a}select:disabled{background:#f0f3f1;color:#88948e}textarea{resize:vertical}.card--details{padding:0}.card--details summary{list-style:none;cursor:pointer;display:flex;gap:16px;align-items:center;padding:24px 30px}.card--details summary::-webkit-details-marker{display:none}.card--details summary strong{font-size:19px;display:block}.card--details summary small{color:var(--muted);display:block}.details-body{padding:4px 30px 30px}.dynamic-fields:empty{display:none}.drop-zone{border:2px dashed #9bb9a9;background:#f7fbf8;border-radius:14px;padding:34px 20px;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;transition:.2s}.drop-zone:hover,.drop-zone:focus,.drop-zone.is-over{border-color:var(--green);background:var(--green-light);outline:none}.drop-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:25px;margin-bottom:10px}.drop-zone span{color:var(--muted);font-size:14px}.file-list{margin-top:14px}.file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.file-meta{min-width:0}.file-name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:12px;color:var(--muted)}.remove-file{border:0;background:transparent;color:var(--danger);cursor:pointer;padding:6px}.file-progress{grid-column:1/-1;height:5px;background:#e5ebe7;border-radius:5px;overflow:hidden}.file-progress span{display:block;width:0;height:100%;background:var(--green);transition:width .2s}.optional-file{margin-top:22px}.choice-group{border:0;padding:0;margin:0 0 20px}.choice-group legend{font-weight:650;font-size:14px;margin-bottom:8px}.choice-list{display:flex;flex-wrap:wrap;gap:10px}.choice-list label{border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer}.choice-list input{width:auto;margin-right:6px}.check-row{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:14px}.check-row input{width:18px;height:18px;margin-top:3px}.check-row--consent{background:#f6f8f6;border-radius:10px;padding:14px}.primary-button,.secondary-button{border:0;border-radius:10px;padding:15px 22px;font:700 16px inherit;cursor:pointer}.primary-button{width:100%;background:var(--green);color:#fff;display:flex;justify-content:center;gap:12px;box-shadow:0 10px 28px rgba(28,104,72,.2)}.primary-button:hover{background:var(--green-dark)}.primary-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button{background:var(--green-light);color:var(--green-dark)}.progress-view,.complete-view{text-align:center;padding:55px 30px}.spinner{width:44px;height:44px;border-radius:50%;border:4px solid var(--green-light);border-top-color:var(--green);animation:spin .85s linear infinite;margin:auto}.progress-view h2,.complete-view h2{font-size:28px;margin:18px 0 6px}.muted{color:var(--muted);font-size:14px}.overall-progress{height:9px;background:#e5ebe7;border-radius:8px;overflow:hidden;max-width:500px;margin:20px auto}.overall-progress span{display:block;width:0;height:100%;background:var(--green);transition:width .25s}.complete-view{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.complete-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--green-light);color:var(--green);font-size:34px;font-weight:700;margin:auto}.complete-view .eyebrow{color:var(--green);margin-top:16px}.upload-id{display:inline-block;background:#f2f5f3;border:1px solid var(--line);padding:11px 20px;border-radius:8px;font:700 20px ui-monospace,monospace;margin:16px}.confirmation-summary{text-align:left;max-width:620px;margin:10px auto 24px;border-top:1px solid var(--line)}.summary-row{display:grid;grid-template-columns:145px 1fr;gap:15px;padding:10px 4px;border-bottom:1px solid var(--line);font-size:14px}.summary-row span:first-child{color:var(--muted)}footer{text-align:center;color:var(--muted);padding:0 20px 36px;font-size:13px}footer p{margin:2px}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.hero{padding:34px 20px 48px}.hero__inner{display:block}.brand-mark{width:58px;height:58px;margin-bottom:20px}.page-shell{width:min(100% - 20px,920px)}.card{padding:22px 18px}.form-grid,.form-grid--three{grid-template-columns:1fr}.field--wide{grid-column:auto}.card--details summary{padding:20px 18px}.details-body{padding:0 18px 22px}.summary-row{grid-template-columns:1fr;gap:1px}.choice-list{display:grid}.choice-list label{border-radius:8px}.section-heading{gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
[hidden]{display:none!important}
.hp-field{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.select-filter{font-weight:400}
.access-status{align-self:end;margin:0 0 12px}
.access-status.is-ok{color:var(--green-dark)}
.access-status.is-error{color:var(--danger)}
.file-error{margin-top:12px;white-space:pre-line}
.retry-panel{margin-top:26px;text-align:left;background:#fff5d9;border:1px solid #ead28c;border-radius:12px;padding:18px}
.retry-list{font-size:14px;color:var(--muted);margin:6px 0 14px;white-space:pre-line}
.retry-actions{display:grid;gap:10px}
[hidden]{display:none!important}
