:root{--primary: #1a56db;--error: #d92d20;--text: #1f2937;--muted: #6b7280;--border: #e5e7eb;--bg: #f7f8fa;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text)}.app-shell{--primary: #000;--error: #000;--bg: #f5f5f5;max-width:480px;margin:0 auto;min-height:100%;background:#fff;display:flex;flex-direction:column}.header{padding:22px 20px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.header h1{font-size:16px;margin:0}.header-brand{display:flex;align-items:center;gap:8px}.shield-check-icon{color:var(--primary);flex-shrink:0}.header-info-icon{color:var(--muted);flex-shrink:0}.step-indicator{display:flex;gap:6px;padding:18px 20px}.step-indicator .dot{flex:1;height:4px;border-radius:0;background:var(--border)}.step-indicator .dot.done,.step-indicator .dot.active{background:var(--primary)}.card{display:flex;flex-direction:column;gap:24px;padding:32px 20px 40px}.card.card-compact{gap:16px;padding-top:24px;padding-bottom:28px}.card h2{font-size:18px;margin:0}.card p.intro{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.welcome-row{display:flex;align-items:flex-start;gap:12px}.welcome-row svg{flex-shrink:0;color:var(--text);margin-top:2px}.card p.welcome-note{margin-left:32px}.welcome-row p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.doc-link{color:var(--primary);font-weight:700;text-decoration:underline;white-space:nowrap}.form-group{margin-bottom:16px}.card>.form-group,.card>.consent-row,.card>.banner-error,.card>.upload-group{margin:0}.form-group>.consent-row{margin:0;display:flex}.form-group label,.form-group .form-label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.form-group input:not([type=checkbox]),.form-group select,.contact-textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:0;font-size:15px;font-family:inherit}.contact-textarea{resize:vertical}.form-group input:focus,.form-group select:focus,.contact-textarea:focus{outline:none;border-color:var(--primary)}.form-group input:disabled{background:var(--bg);color:var(--muted);cursor:not-allowed}.school-picker{position:relative}.school-picker-list{position:absolute;z-index:9999;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow-y:auto;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:0;box-shadow:0 4px 12px #00000014}.school-picker-list li{padding:10px 12px;font-size:14px;cursor:pointer}.school-picker-list li:hover{background:var(--bg)}.school-picker-list li.school-picker-empty{color:var(--muted);cursor:default}.school-picker-list li.school-picker-empty:hover{background:none}.field-error{color:var(--error);font-size:12px;margin-top:6px}#captcha-element{border:1px solid var(--border);box-sizing:border-box;width:100%;max-width:320px;margin:0 auto;border-radius:0;overflow:hidden;position:relative;touch-action:none}.consent-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--muted);margin:16px 0;line-height:1.5}.consent-row input{margin-top:3px}.btn-primary{width:100%;padding:14px;border:none;border-radius:0;background:var(--primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary{width:100%;padding:12px;border:1px solid var(--border);border-radius:0;background:#fff;color:var(--text);font-size:14px;cursor:pointer;margin-top:8px}.btn-secondary:disabled{color:var(--muted);cursor:not-allowed}.otp-row{display:flex;gap:8px}.otp-row input,.otp-row button{height:46px}.otp-row input{flex:1}.otp-row button{flex-shrink:0;width:auto;padding:0 14px;font-size:13px;margin-top:0}.banner-error{display:flex;align-items:flex-start;gap:10px;background:var(--bg);color:var(--error);border:1px solid var(--text);border-left:4px solid var(--error);border-radius:0;padding:14px 16px;font-size:14px;font-weight:500;line-height:1.6;margin-bottom:16px}.banner-error:before{content:"⚠️";flex-shrink:0;font-size:16px;line-height:1.6}.upload-box{display:block;border:2px dashed var(--primary);border-radius:0;padding:28px 16px;text-align:center;color:var(--primary);font-weight:600;background:var(--bg);cursor:pointer;transition:background-color .15s ease}.upload-box:hover{background:#e9e9e9}.upload-box.has-file{color:var(--text);font-weight:400;border:1px solid var(--border);background:#fff}.upload-file-row{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);padding:12px}.upload-file-preview{width:56px;height:56px;object-fit:cover;border:1px solid var(--border);flex-shrink:0}.upload-file-info{flex:1;min-width:0}.upload-file-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-file-meta{color:var(--muted);font-size:12px;margin-top:2px}.upload-progress-track{height:4px;background:var(--border);margin-top:8px}.upload-progress-fill{height:100%;background:var(--primary);transition:width .15s ease}.upload-file-delete{flex-shrink:0;border:none;background:none;color:var(--text);cursor:pointer;padding:4px}.link-inline{color:var(--primary);text-decoration:underline;font-weight:700;font-size:13px}.center-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px}.center-state.result-state{align-items:flex-start;text-align:left}.center-state .icon{font-size:48px;margin-bottom:16px}.center-state h2{font-size:18px;margin-bottom:8px}.center-state p{color:var(--muted);font-size:14px;line-height:1.6}.center-contact{display:inline-block;margin-top:24px;padding:10px 24px;border:1px solid var(--primary);border-radius:0;color:var(--primary);font-size:14px;font-weight:700;text-decoration:underline}.return-box{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:0 20px 32px;text-align:center}.return-note{margin:0;color:var(--muted);font-size:14px}.link-button{display:block;text-decoration:none;text-align:center}.return-box .center-contact{align-self:center;margin-top:0}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:16px;border-top:1px solid var(--border);margin-top:auto}.footer-links a{font-size:13px;color:var(--primary);font-weight:700;text-decoration:underline}.admin-shell{max-width:1100px;margin:0 auto;padding:20px 24px 60px}.admin-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--border)}.admin-header h1{font-size:18px;margin:0}.admin-username{color:var(--muted);font-size:13px;margin-right:12px}.admin-login{display:flex;justify-content:center;padding-top:80px}.admin-login-card{width:320px;padding:24px;border:1px solid var(--border);border-radius:8px}.admin-login-card h2{margin-top:0;font-size:16px}.admin-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.admin-tab{padding:10px 16px;border:none;background:none;color:var(--muted);font-size:14px;cursor:pointer;border-bottom:2px solid transparent}.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.admin-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.admin-filters input,.admin-filters select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table tbody tr[onclick],.admin-session-list .admin-table tbody tr{cursor:pointer}.admin-session-list .admin-table tbody tr:hover{background:var(--bg)}.admin-table-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.admin-pagination{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:13px;color:var(--muted)}.admin-pagination button{padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer}.admin-pagination button:disabled{color:var(--muted);cursor:not-allowed}.admin-field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:16px 0}.admin-field{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0}.admin-field-label{color:var(--muted);font-size:12px}.admin-field-value{word-break:break-all}.admin-session-detail h3{margin:32px 0 12px;padding-top:20px;border-top:1px solid var(--border);font-size:16px}.admin-session-detail h4{margin:20px 0 8px;font-size:14px;color:var(--muted)}.admin-muted{color:var(--muted);font-size:13px}.admin-wrap{white-space:normal!important;word-break:break-word}.admin-delivery{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:12px 16px;border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:8px;background:#eef2ff;font-size:13px}.admin-raw{margin-top:16px}.admin-raw summary{cursor:pointer;color:var(--primary);font-size:13px}.admin-json{max-height:420px;overflow:auto;margin:8px 0 0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5}.admin-related tbody tr{cursor:pointer}.admin-related tbody tr:hover{background:var(--bg)}.admin-chsi-image{max-width:100%;border:1px solid var(--border);border-radius:8px;margin-top:8px}
