.ext-header{background:var(--color-navy);height:56px;display:flex;align-items:center;flex-shrink:0}.ext-header-inner{max-width:640px;margin:0 auto;width:100%;padding:0 var(--space-4);display:flex;align-items:center}.ext-header-logo{max-height:36px;max-width:180px;object-fit:contain}.ext-header-name{font-size:var(--font-size-base);font-weight:700;color:var(--color-white);letter-spacing:.02em}.auth-page{min-height:100vh;background:var(--color-bg);display:flex;align-items:flex-start;justify-content:center;padding:var(--space-8) var(--space-4)}.auth-card{width:100%;max-width:440px;padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}.auth-header{display:flex;flex-direction:column;gap:var(--space-2)}.auth-title{font-size:var(--font-size-xl);font-weight:800;color:var(--color-navy)}.auth-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.input-readonly{background:var(--color-bg)!important;color:var(--color-text-muted);cursor:default}.auth-footer-note{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center}.workspace-page{flex:1;overflow-y:auto;padding:var(--space-4)}.workspace-container{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:var(--space-10)}.workspace-intro{padding:var(--space-5)}.workspace-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-navy);margin-bottom:var(--space-2)}.workspace-description{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6}.workspace-progress{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);position:sticky;top:var(--space-2);z-index:10}.progress-header{display:flex;justify-content:space-between;align-items:center}.progress-label{font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.progress-fraction{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary)}.progress-fraction--done{color:var(--color-success)}.progress-track{height:8px;background:var(--color-border);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--color-teal);border-radius:99px;transition:width .3s ease}.progress-fill--done{background:var(--color-success)}.doc-checklist{display:flex;flex-direction:column;gap:var(--space-3)}.checklist-section-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-navy);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.checklist-section-title--optional{color:var(--color-text-muted)}.doc-list{display:flex;flex-direction:column;gap:var(--space-2)}.doc-item{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--space-3) var(--space-4);gap:var(--space-3);border-left:4px solid transparent}.doc-item--required{border-left-color:var(--color-teal)}.doc-item--optional{border-left-color:var(--color-border)}.doc-item--uploaded.doc-item--required{border-left-color:var(--color-success)}.doc-item-left{display:flex;align-items:flex-start;gap:var(--space-3);flex:1;min-width:0}.doc-status-icon{font-size:18px;color:var(--color-border);flex-shrink:0;margin-top:2px;font-weight:700}.doc-status-icon--done{color:var(--color-success)}.doc-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.doc-type-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.doc-description{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.4}.doc-filename-uploaded{font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-item-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.upload-btn{display:flex;align-items:center;gap:5px}.doc-delete-btn{background:var(--color-error-bg);color:var(--color-error);border:none;border-radius:var(--radius-sm);width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;font-size:12px}.doc-delete-btn:hover:not(:disabled){background:#fca5a5}.workspace-submit-section{padding-top:var(--space-3)}.submit-tooltip-wrap{display:flex;flex-direction:column;gap:var(--space-2)}.submit-btn{width:100%}.submit-disabled-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.workspace-error{max-width:640px;margin:var(--space-4) auto}.submitted-page{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-8) var(--space-4)}.submitted-card{width:100%;max-width:480px;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-5);text-align:center}.submitted-icon{width:72px;height:72px;background:var(--color-success-bg);color:var(--color-success);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800}.submitted-title{font-size:var(--font-size-xl);font-weight:800;color:var(--color-navy)}.submitted-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6;max-width:360px}.submitted-details{background:var(--color-bg);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);width:100%;text-align:left}.detail-row{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);gap:var(--space-4)}.detail-row:last-child{border-bottom:none}.detail-row dt{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-row dd{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.detail-ref{font-family:Courier New,monospace;font-weight:700;color:var(--color-teal);font-size:var(--font-size-base)!important}.submitted-note{width:100%;text-align:left}.expired-page{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-8) var(--space-4)}.expired-card{width:100%;max-width:420px;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-4);text-align:center}.expired-icon{font-size:48px;opacity:.5}.expired-title{font-size:var(--font-size-xl);font-weight:800;color:var(--color-navy)}.expired-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6;max-width:340px}:root{--color-navy: #09202E;--color-teal: #1A988B;--color-teal-hover: #157a70;--color-bg: #f0f3f7;--color-white: #ffffff;--color-border: #d1d9e0;--color-text-primary: #1a2332;--color-text-secondary: #4a5568;--color-text-muted: #718096;--color-error: #dc2626;--color-error-bg: #fee2e2;--color-success: #16a34a;--color-success-bg: #dcfce7;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 18px;--font-size-xl: 22px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-size:var(--font-size-base);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;color:var(--color-text-primary);background:var(--color-bg);-webkit-font-smoothing:antialiased}*{font-size:max(inherit,var(--font-size-sm))}label,.label{font-size:max(var(--font-size-xs),12px)}#root{height:100%;display:flex;flex-direction:column}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:var(--font-size-base)}a{color:var(--color-teal);text-decoration:none}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-teal);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.alert--error{background:var(--color-error-bg);color:#991b1b;border-left:4px solid var(--color-error)}.alert--success{background:var(--color-success-bg);color:#14532d;border-left:4px solid var(--color-success)}.alert--info{background:#dbeafe;color:#1e3a8a;border-left:4px solid #2563eb}.state-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) var(--space-6);gap:var(--space-3);text-align:center;color:var(--color-text-muted)}.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.form-field label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-white);width:100%;min-height:44px}.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 3px #1a988b26}.form-field input.error{border-color:var(--color-error)}.field-error{font-size:var(--font-size-xs);color:var(--color-error)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--radius-md);font-weight:600;font-family:inherit;font-size:var(--font-size-base);min-height:44px;padding:10px 20px;cursor:pointer;white-space:nowrap;transition:background .15s,opacity .15s;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-teal);color:var(--color-white)}.btn--primary:hover:not(:disabled){background:var(--color-teal-hover)}.btn--ghost{background:transparent;color:var(--color-teal);border:1.5px solid var(--color-teal)}.btn--ghost:hover:not(:disabled){background:#1a988b12}.btn--sm{font-size:var(--font-size-sm);min-height:36px;padding:6px 14px;width:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
