*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Microsoft YaHei","微软雅黑","PingFang SC",sans-serif;background:#f0f2f5;color:#333;line-height:1.6}
.top-bar{background:linear-gradient(135deg,#003399,#0066cc);color:#fff;padding:14px 24px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.top-bar-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}
.logo{font-size:20px;font-weight:bold}.subtitle{font-size:13px;opacity:.85}
.app-container{max-width:1100px;margin:0 auto;display:flex;gap:20px;padding:20px}
.side-nav{width:200px;flex-shrink:0;position:sticky;top:80px;align-self:flex-start;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.06);overflow:hidden;max-height:calc(100vh - 100px);overflow-y:auto}
.side-nav ul{list-style:none}.side-nav li{border-bottom:1px solid #f0f0f0}.side-nav li:last-child{border-bottom:none}
.side-nav a{display:flex;align-items:center;gap:6px;padding:10px 14px;text-decoration:none;color:#555;font-size:13px;transition:all .2s}
.side-nav a:hover{background:#f0f5ff;color:#003399}
.side-nav a.active{background:#003399;color:#fff;font-weight:bold}
.nav-num{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;background:#e8ecf1;border-radius:50%;font-size:11px;font-weight:bold;flex-shrink:0}
.side-nav a.active .nav-num{background:rgba(255,255,255,.3)}
.side-nav a.completed{color:#27ae60}.side-nav a.completed::after{content:'✓';margin-left:auto;font-weight:bold;color:#27ae60}
.form-main{flex:1;min-width:0}
.form-section{background:#fff;border-radius:8px;padding:24px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.06);scroll-margin-top:80px}
.section-title{font-size:18px;color:#003399;border-bottom:2px solid #0066cc;padding-bottom:10px;margin-bottom:20px;display:flex;align-items:baseline;gap:8px}
.section-num{background:#0066cc;color:#fff;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-size:14px}
.section-hint{font-size:12px;color:#e67e22;margin-bottom:12px}
.sub-section-title{font-size:14px;color:#444;margin:14px 0 10px;padding-left:10px;border-left:3px solid #0066cc}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field-group{display:flex;flex-direction:column}.field-group.full-width{grid-column:1/-1}
.field-group label{font-size:13px;font-weight:600;color:#444;margin-bottom:4px}
.required{color:#e74c3c}
.field-group input[type="text"],.field-group input[type="tel"],.field-group input[type="email"],.field-group input[type="date"],.field-group select,.field-group textarea{padding:10px 12px;border:1px solid #d0d5dd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s;background:#fafbfc}
.field-group input:focus,.field-group select:focus,.field-group textarea:focus{outline:none;border-color:#0066cc;box-shadow:0 0 0 3px rgba(0,102,204,.1);background:#fff}
.field-group input.field-error,.field-group select.field-error,.field-group textarea.field-error{border-color:#e74c3c;background:#fff5f5}
.field-hint{font-size:11px;color:#e67e22;margin-top:2px}.error-msg{font-size:12px;color:#e74c3c;margin-top:2px}
.radio-group{display:flex;gap:16px}.radio-group label{display:flex;align-items:center;gap:4px;font-weight:normal;cursor:pointer}
.radio-group input[type="radio"]{accent-color:#0066cc}
.conditional-block{margin:10px 0}.conditional-hidden{display:none}
.dynamic-row{background:#f8f9fb;border:1px solid #e0e3e8;border-radius:6px;padding:14px;margin-bottom:10px;position:relative}
.dynamic-row .form-grid{margin-bottom:0}
.btn-add-row{margin-top:8px;padding:8px 20px;background:#0066cc;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}
.btn-add-row:hover{background:#003399}
.btn-remove-row{position:absolute;top:6px;right:10px;background:#e74c3c;color:#fff;border:none;border-radius:4px;padding:4px 12px;font-size:12px;cursor:pointer}
.btn-remove-row:hover{background:#c0392b}
.passport-upload-area{display:flex;gap:16px;margin-bottom:14px;padding:14px;background:linear-gradient(135deg,#f0f5ff,#e8f0fe);border-radius:8px;border:2px dashed #0066cc;align-items:center}
.passport-upload-box{width:140px;min-height:100px;border-radius:6px;cursor:pointer;overflow:hidden;flex-shrink:0;background:#fff;display:flex;align-items:center;justify-content:center;border:1px solid #d0d5dd}
.passport-upload-box:hover{border-color:#0066cc}
.passport-upload-box.scan-success{border-color:#27ae60;box-shadow:0 0 0 3px rgba(39,174,96,.15)}
.upload-prompt{text-align:center;color:#666;font-size:12px}.upload-icon{font-size:28px;display:block;margin-bottom:2px}
.passport-upload-box img{width:100%;height:100%;object-fit:cover}
#passportPreview{position:relative;width:100%;height:100%}
.btn-rescan{position:absolute;bottom:4px;right:4px;padding:3px 6px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:4px;font-size:10px;cursor:pointer}
.passport-upload-info{font-size:11px;color:#555;line-height:1.5}
.scan-progress{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:14px;background:#fffdf5;border:1px solid #e5d98a;border-radius:6px;font-size:13px;color:#8c6e00}
.scan-spinner{width:20px;height:20px;border:2px solid #ddd;border-top-color:#0066cc;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.declaration-box{background:#fffdf5;border:1px solid #e5d98a;border-radius:8px;padding:18px;margin-bottom:18px}
.declaration-box h4{color:#8c6e00;margin-bottom:6px}.declaration-box p{font-size:13px;color:#666;margin-bottom:4px}
.signature-area{background:#f8f9fb;border-radius:6px;padding:14px;margin-top:14px;text-align:center}
.signature-note{font-size:13px;color:#e67e22}
.submit-area{text-align:center;padding:20px}
.btn-submit{padding:14px 48px;background:linear-gradient(135deg,#003399,#0066cc);color:#fff;border:none;border-radius:8px;font-size:17px;font-weight:bold;cursor:pointer;box-shadow:0 4px 14px rgba(0,51,153,.3)}
.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,51,153,.4)}
.btn-submit:disabled{background:#999;cursor:not-allowed;box-shadow:none}
.ocr-debug{margin-bottom:12px;border:1px solid #d0d5dd;border-radius:6px;overflow:hidden;font-size:12px}
.ocr-debug-header{background:#f0f2f5;padding:8px 12px;cursor:pointer;color:#555;font-weight:600;user-select:none}
.ocr-debug-content{padding:10px;margin:0;background:#fafbfc;max-height:180px;overflow-y:auto;font-size:10px;line-height:1.4;color:#333;white-space:pre-wrap;word-break:break-all;font-family:"Courier New",monospace}
.ocr-debug-content.hidden{display:none}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:200;display:flex;align-items:center;justify-content:center}
.modal-box{background:#fff;border-radius:12px;padding:36px;text-align:center;max-width:400px;width:90%;box-shadow:0 10px 40px rgba(0,0,0,.2)}
.modal-icon{width:56px;height:56px;border-radius:50%;background:#27ae60;color:#fff;font-size:30px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.modal-box h2{color:#27ae60;margin-bottom:10px}.modal-box p{color:#666;margin-bottom:6px}
.modal-id{font-size:17px;color:#003399}
.btn-close-modal{margin-top:18px;padding:10px 36px;background:#0066cc;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer}
@media(max-width:768px){
  .app-container{flex-direction:column;padding:8px}
  .side-nav{width:100%;position:sticky;top:52px;z-index:99;max-height:none;border-radius:0;margin:-8px -8px 8px;overflow-x:auto}
  .side-nav ul{display:flex;padding:4px}
  .side-nav li{border-bottom:none;flex-shrink:0}.side-nav a{padding:7px 9px;font-size:11px;white-space:nowrap;gap:3px}
  .nav-num{width:16px;height:16px;font-size:9px}
  .side-nav a.completed::after{display:none}
  .form-grid{grid-template-columns:1fr;gap:10px}
  .form-section{padding:14px;margin-bottom:10px;border-radius:6px;scroll-margin-top:100px}
  .section-title{font-size:16px}
  .field-group input[type="text"],.field-group input[type="tel"],.field-group input[type="email"],.field-group input[type="date"],.field-group select,.field-group textarea{padding:12px;font-size:16px;border-radius:8px}
  .passport-upload-area{flex-direction:column;gap:10px}
  .passport-upload-box{width:100%;min-height:160px}
  .btn-submit{width:100%;padding:16px;font-size:16px;border-radius:10px}
  .top-bar{padding:10px 14px}.logo{font-size:15px}
}
