:root{--primary: #2b54a3;--primary-hover: #1e3f7a;--navy: #1e3a5f;--success: #059669;--error: #dc2626;--warning: #f59e0b;--bg: #f0f2f5;--bg-white: #ffffff;--bg-secondary: #f9fafb;--info-bg: #dbeafe;--info-text: #1e40af;--text-primary: #1a1a1a;--text-secondary: #666;--text-muted: #737373;--border: #d1d5db;--border-light: #e5e7eb;--radius: 8px;--radius-sm: 4px;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--max-width: 1200px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text-primary);line-height:1.5}.navbar{background:var(--navy);color:#fff;height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100}.navbar-brand{color:#fff;text-decoration:none;font-weight:700;font-size:16px;display:flex;align-items:center}.navbar-right{display:flex;align-items:center;gap:12px;font-size:14px}.navbar-user-name{opacity:.9}.navbar-avatar{width:32px;height:32px;border-radius:50%}.navbar-logout{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);padding:4px 12px;border-radius:4px;font-size:13px;cursor:pointer;transition:background .15s}.navbar-logout:hover{background:#ffffff40}.staff-layout{min-height:100vh;display:flex;flex-direction:column}.staff-layout-body{display:flex;flex:1}.staff-layout-content{flex:1;padding:24px;max-width:var(--max-width);width:100%}.sidebar{width:200px;background:var(--bg-white);border-right:1px solid var(--border-light);padding:16px 0;flex-shrink:0;display:flex;flex-direction:column}.sidebar a{display:block;padding:10px 24px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:background .15s,color .15s}.sidebar a:hover{background:var(--bg);color:var(--text-primary)}.sidebar a.active{color:var(--primary);background:#eef2ff;border-right:3px solid var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:600;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background .15s,box-shadow .15s;text-decoration:none;line-height:1.4}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{background:var(--bg-white);color:var(--text-primary);border-color:var(--border)}.btn-outline:hover{background:var(--bg)}.btn-danger{background:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover{background:#b91c1c}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover{background:#047857}.btn-sm{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-white);border:1px solid var(--border-light);border-radius:var(--radius);padding:16px}.stat-card-label{font-size:13px;color:var(--text-muted);margin-bottom:4px}.stat-card-value{font-size:28px;font-weight:700;color:var(--navy)}input,select,textarea{font-family:var(--font);font-size:14px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:border-color .15s}input[type=checkbox],input[type=radio]{width:auto;padding:0;border:0}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2b54a326}label{display:block;font-size:14px;font-weight:600;margin-bottom:4px;color:var(--text-primary)}.form-group{margin-bottom:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-help{font-size:12px;color:var(--text-muted);margin-top:2px}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-light);font-size:14px}th{font-weight:600;color:var(--text-secondary);font-size:13px;background:#fafafa}tr:hover{background:#f9fafb}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--bg-white);border-radius:var(--radius);padding:24px;max-width:560px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header h2{font-size:18px;color:var(--navy)}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);padding:4px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius-sm);color:#fff;font-size:14px;font-weight:500;box-shadow:var(--shadow-md);animation:slideIn .3s ease;display:flex;align-items:center;gap:12px}.toast-dismiss{background:none;border:none;color:inherit;font-size:18px;cursor:pointer;padding:0 4px;opacity:.8}.toast-dismiss:hover{opacity:1}.toast-success{background:var(--success)}.toast-error{background:var(--error)}.toast-warning{background:var(--warning);color:#000}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600}.badge-applied{background:#dbeafe;color:#1d4ed8}.badge-approved{background:#d1fae5;color:#065f46}.badge-active{background:#059669;color:#fff}.badge-denied{background:#fee2e2;color:#991b1b}.badge-withdrawn{background:#f3f4f6;color:#6b7280}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{font-size:24px;color:var(--navy)}.empty-state{text-align:center;padding:32px 20px;color:var(--text-muted, #64748b)}.empty-state-title{font-size:15px;font-weight:600;color:var(--text-secondary, #475569);margin-bottom:4px}.empty-state-message{font-size:14px;line-height:1.5}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-light, #e5e7eb);border-top-color:var(--primary, #2b54a3);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:12px;font-size:14px;color:var(--text-muted, #64748b)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--bg-white);padding:48px;border-radius:var(--radius);box-shadow:var(--shadow-md);text-align:center;max-width:400px;width:90%}.login-card h1{color:var(--navy);margin-bottom:8px;font-size:24px}.login-card p{color:var(--text-secondary);margin-bottom:32px;font-size:15px}.settings-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-light);margin-bottom:24px}.settings-tab{padding:10px 20px;font-size:14px;font-weight:600;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer}.settings-tab:hover{color:var(--text-primary)}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tiptap-wrapper{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:200px;padding:12px}.tiptap-wrapper .tiptap{outline:none;min-height:180px}.tiptap-wrapper .tiptap p{margin-bottom:8px}.tiptap-wrapper .tiptap h2{font-size:18px;margin-bottom:8px}.tiptap-wrapper .tiptap h3{font-size:16px;margin-bottom:6px}.tiptap-wrapper .tiptap ul,.tiptap-wrapper .tiptap ol{padding-left:24px;margin-bottom:8px}.tiptap-wrapper .tiptap a{color:var(--primary);text-decoration:underline}@media(max-width:1024px)and (min-width:769px){.sidebar{width:140px}.sidebar a{font-size:13px;padding:8px 14px}.staff-layout-content{padding:20px}}.mobile-nav{display:none}@media(max-width:768px){.sidebar{display:none}.staff-layout-content{padding:16px 16px 80px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg-white);border-top:1px solid var(--border-light);z-index:100;height:64px;padding-bottom:env(safe-area-inset-bottom,0)}.mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--text-muted);font-size:11px;font-weight:500;min-height:44px;padding:6px 0;-webkit-tap-highlight-color:transparent}.mobile-nav-item:hover{text-decoration:none}.mobile-nav-item.active{color:var(--primary)}.mobile-nav-icon{display:flex;align-items:center;justify-content:center;height:24px}.mobile-nav-label{line-height:1;white-space:nowrap}.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.stat-cards{grid-template-columns:repeat(2,1fr)}table{font-size:12px}th,td{padding:6px 5px;white-space:nowrap}.card:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch}.btn{min-height:40px}.btn-sm{min-height:36px}input,select,textarea{font-size:16px}.modal-overlay>div{width:100vw!important;max-width:100vw!important;border-radius:0!important}.page-header h1{font-size:20px}}.help-content h2{font-size:22px}.help-content h4{margin:18px 0 8px;font-size:15px;color:var(--navy)}.help-content p{margin-bottom:12px;font-size:14px;line-height:1.6}.help-content ul,.help-content ol{margin-bottom:12px;padding-left:24px;font-size:14px;line-height:1.7}.help-content li{margin-bottom:4px}.help-content strong{color:var(--text-primary)}.help-status-flow{display:flex;align-items:center;gap:8px;margin:16px 0;padding:16px;background:#f8fafc;border-radius:8px;border:1px solid var(--border-light);flex-wrap:wrap;justify-content:center}.help-status-box{padding:8px 20px;border-radius:6px;font-weight:600;font-size:14px;text-align:center}.help-status-box.applied{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.help-status-box.approved{background:#dbeafe;color:#1e40af;border:1px solid #3b82f6}.help-status-box.active{background:#dcfce7;color:#166534;border:1px solid #22c55e}.help-arrow{font-size:20px;color:var(--text-muted)}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive table{min-width:600px}@media(max-width:768px){.help-status-flow{flex-direction:column;gap:4px}.help-arrow{transform:rotate(90deg)}}:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary, #2563eb);color:#fff;padding:8px 16px;z-index:10000;font-size:14px;text-decoration:none;transition:top .2s}.skip-link:focus{top:0}.breadcrumb-trail{display:flex;align-items:center;gap:6px;margin-bottom:12px}.breadcrumb-trail a{color:var(--navy);text-decoration:none;font-size:14px}.breadcrumb-trail a:hover{text-decoration:underline}.breadcrumb-sep{color:#999;font-size:13px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.field-error input,.field-error select,.field-error textarea{border-color:var(--error, #dc2626)!important}.field-error-message{color:var(--error, #dc2626);font-size:12px;margin-top:4px}.apply-page{min-height:100vh;background:var(--bg);display:flex;justify-content:center;padding:40px 16px}.apply-container{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:40px;max-width:680px;width:100%}.apply-container h1{color:var(--navy);text-align:center;font-size:24px;margin-bottom:4px}.apply-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:32px;font-size:15px}.apply-notice{background:#eff6ff;color:#1e40af;padding:14px 18px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px;line-height:1.5;border:1px solid #bfdbfe}.apply-notice a{color:#1e40af;font-weight:600;text-decoration:underline}.apply-error{background:#fef2f2;color:var(--error);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:20px;font-size:14px;border:1px solid #fecaca}fieldset{border:1px solid var(--border-light);border-radius:var(--radius);padding:20px;margin-bottom:24px}legend{font-size:16px;font-weight:700;color:var(--navy);padding:0 8px}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;padding:4px 0}.checkbox-label input[type=checkbox],.checkbox-label input[type=radio]{width:auto;margin:0}.apply-exhibitor-cost{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;margin-top:12px}@media(max-width:600px){.apply-container{padding:24px 16px}.checkbox-grid{grid-template-columns:1fr}}.portal-page{min-height:100vh;background:var(--bg);display:flex;justify-content:center;padding:40px 16px}.portal-container{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:40px;max-width:640px;width:100%}.portal-container h1{color:var(--navy);text-align:center;font-size:24px;margin-bottom:4px}.portal-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:28px;font-size:15px}.portal-complete{background:#d1fae5;color:#065f46;text-align:center;padding:16px;border-radius:var(--radius-sm);font-weight:600;margin-bottom:24px}.portal-checklist{display:flex;flex-direction:column;gap:16px}.portal-check-item{display:flex;gap:16px;padding:16px;border:1px solid var(--border-light);border-radius:var(--radius);transition:border-color .2s}.portal-check-item.done{border-color:#a7f3d0;background:#f0fdf4}.portal-check-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;background:#e0e7ff;color:var(--primary)}.portal-check-item.done .portal-check-icon{background:#059669;color:#fff}.portal-check-title{font-weight:700;font-size:16px;color:var(--navy);margin-bottom:4px}.portal-check-desc{font-size:14px;color:var(--text-secondary)}.portal-check-date{font-size:12px;color:var(--text-muted);margin-top:4px}.contract-page{min-height:100vh;background:#e8e8e8;display:flex;justify-content:center;padding:40px 16px}.contract-document{background:#fff;max-width:800px;width:100%;padding:60px 64px;box-shadow:0 1px 8px #0000001f,0 0 0 1px #0000000a;line-height:1.7;color:#222;font-size:15px}.contract-header{text-align:center;padding-bottom:28px;margin-bottom:28px;border-bottom:2px solid #1e3a5f}.contract-org{font-size:13px;text-transform:uppercase;letter-spacing:2.5px;color:#666;margin-bottom:10px}.contract-title{font-size:26px;font-weight:700;color:#1e3a5f;margin-bottom:4px;letter-spacing:.5px}.contract-year{font-size:16px;color:#555;font-weight:500}.contract-parties{margin-bottom:32px;padding:20px 24px;background:#f8f9fb;border-left:3px solid #1e3a5f;font-size:15px;line-height:1.8}.contract-parties strong{color:#1e3a5f}.contract-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;padding:12px 16px;border-radius:4px;margin-bottom:24px;font-size:14px}.contract-section{margin-bottom:32px}.contract-section-title{font-size:17px;font-weight:700;color:#1e3a5f;padding-bottom:10px;margin-bottom:16px;border-bottom:1px solid #d1d5db;display:flex;align-items:baseline;gap:10px}.contract-section-num{font-size:15px;color:#666;font-weight:600;min-width:28px}.contract-section-body{font-size:15px;line-height:1.8;color:#333}.contract-section-body p{margin-bottom:12px}.contract-section-body ul,.contract-section-body ol{padding-left:28px;margin-bottom:12px}.contract-section-body li{margin-bottom:6px}.contract-section-body strong{color:#1e3a5f}.contract-section-body h3{font-size:15px;font-weight:700;color:#1e3a5f;margin:16px 0 8px}.contract-agree-label{display:flex;align-items:flex-start;gap:12px;padding:20px 24px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;margin-bottom:36px;cursor:pointer;font-size:15px;font-weight:600;color:#1e3a5f;line-height:1.5}.contract-agree-label input[type=checkbox]{width:20px;height:20px;margin-top:2px;flex-shrink:0;accent-color:#1e3a5f}.contract-signature-block{border-top:2px solid #1e3a5f;padding-top:28px}.contract-sig-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.contract-sig-field{margin-bottom:12px}.contract-sig-field label{display:block;font-size:13px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.contract-sig-field input{font-family:inherit;font-size:15px;padding:10px 12px;border:1px solid #d1d5db;border-radius:3px;width:100%;background:#fff}.contract-sig-field input:focus{outline:none;border-color:#1e3a5f;box-shadow:0 0 0 2px #1e3a5f1f}.contract-sig-field input:disabled{background:#f9fafb;color:#555}.contract-required{color:#dc2626}.contract-sig-canvas-area{margin-top:24px}.contract-sig-canvas-area>label{display:block;font-size:13px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.contract-sig-pad{position:relative;border:2px solid #d1d5db;border-radius:3px;background:#fff}.contract-sig-pad.disabled{opacity:.5;pointer-events:none;background:#f9fafb}.signature-canvas{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none}.contract-sig-clear{position:absolute;top:8px;right:8px;background:#fff;border:1px solid #d1d5db;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer;border-radius:3px;color:#555}.contract-sig-clear:hover{background:#f3f4f6}.contract-sig-hint{font-size:13px;color:#888;margin-top:6px}.contract-submit-btn{display:block;width:100%;margin-top:24px;padding:16px;font-size:16px;font-weight:700;color:#fff;background:#1e3a5f;border:none;border-radius:4px;cursor:pointer;letter-spacing:.3px;transition:background .15s}.contract-submit-btn:hover:not(:disabled){background:#15304f}.contract-submit-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:640px){.contract-document{padding:32px 24px}.contract-header{padding-bottom:20px;margin-bottom:20px}.contract-title{font-size:22px}.contract-sig-fields{grid-template-columns:1fr}}.agreement-section{margin-bottom:24px;border:1px solid var(--border-light);border-radius:var(--radius);padding:20px}.agreement-section h3{color:var(--navy);font-size:16px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-light)}.agreement-text{font-size:14px;line-height:1.7;color:var(--text-secondary)}.agreement-text p{margin-bottom:8px}@media(max-width:600px){.portal-container{padding:24px 16px}}
