*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f6fa;color:#253247;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#17243b;color:#fff;padding:20px 32px;box-shadow:0 2px 8px #00000026}.app-header h1{letter-spacing:-.025em;font-size:1.5rem;font-weight:600}.app-main{flex:1;display:flex;align-items:center;justify-content:center}.button-group{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.btn{display:inline-block;padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;text-decoration:none;text-align:center;transition:background .2s,opacity .2s;-webkit-user-select:none;user-select:none}.btn--disabled,.btn.btn--disabled{background:#cbd5e1!important;color:#64748b!important;border-color:#cbd5e1!important;opacity:.7;cursor:not-allowed!important;pointer-events:none}.btn-large{padding:18px 40px;font-size:1.1rem}.btn-primary{background:#4f46e5;color:#fff}.btn-primary:hover:not(.btn--disabled){background:#4338ca}.btn-secondary{background:#e9edf3;color:#475569}.btn-secondary:hover:not(.btn--disabled){background:#dce3ed}.btn-success{background:#16856b;color:#fff}.btn-success:hover:not(.btn--disabled){background:#106b55}.btn-outline{background:transparent;color:#4f46e5;border:2px solid #4f46e5}.btn-outline:hover:not(.btn--disabled){background:#eef0ff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e317a;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:12px;padding:28px 32px;width:100%;max-width:480px;box-shadow:0 8px 32px #0003;position:relative;z-index:101;max-height:90vh;overflow-y:auto;overflow-wrap:break-word}.modal-wide{max-width:680px}.modal h3{letter-spacing:-.02em;font-size:1.2rem;font-weight:600;margin-bottom:24px;color:#17243b}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:8px;color:#475569}.form-group input,.form-group textarea{width:100%;padding:9px 12px;border:1.5px solid #d6deea;border-radius:6px;font-size:.95rem;outline:none;transition:border-color .2s;font-family:inherit}.form-group textarea{resize:vertical;max-width:100%;word-break:break-word}.form-group input:focus,.form-group textarea:focus{border-color:#4f46e5}.candidates-table{width:100%;border-collapse:collapse;margin-top:4px;font-size:.9rem;table-layout:fixed}.candidates-table th,.candidates-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e4e9f1;vertical-align:middle}.candidates-table th{background:#f5f7fb;font-weight:600;color:#526078;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.loading,.empty{text-align:center;color:#6b7890;padding:24px 0;font-size:.95rem}.error{color:#dc2626;font-size:.875rem;margin-top:8px}.success-msg{color:#16856b;font-size:.875rem;margin-top:10px;text-align:right}.file-name{font-size:.85rem;color:#526078;margin-top:6px;text-align:right}.char-count{display:block;font-size:.75rem;color:#6b7280;margin-top:4px;text-align:right}.char-count--invalid{color:#dc2626;font-weight:500}.required-indicator{color:#dc2626;font-weight:600;margin-left:2px}.inline-field{display:flex;align-items:center;gap:10px;border:1.5px solid #d6deea;border-radius:6px;padding:8px 12px;background:#f8fafc;min-height:40px;min-width:0;max-width:100%}.value-label{flex:1 1 0%;min-width:0;font-size:.95rem;color:#253247;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.value-label.placeholder{color:#7b879b;font-style:italic}.btn-sm{padding:5px 12px;font-size:.82rem;white-space:nowrap;flex-shrink:0}.candidates-table tbody tr.selected{background:#eef0ff}.candidates-table tbody tr{cursor:pointer}.candidates-table tbody tr:hover{background:#f3f4ff}.drop-zone{border:2px dashed #d6deea;border-radius:8px;padding:36px 20px;text-align:center;cursor:pointer;color:#6b7280;font-size:.95rem;transition:border-color .2s,background .2s;margin-bottom:4px}.drop-zone:hover,.drop-zone.drag-over{border-color:#4f46e5;background:#f3f4ff;color:#4f46e5}.pending-file{color:#4f46e5;font-weight:500}.file-chip{font-size:.85rem;color:#4f46e5}.candidates-table td .placeholder{color:#7b879b}.btn-download{background:none;padding:0;cursor:pointer;color:#4f46e5;font-size:.88rem;font-family:inherit;text-align:left;text-decoration:underline;text-underline-offset:2px}.btn-download:hover:not(.btn--disabled){color:#4338ca}.btn-download.btn--disabled{color:#7b879b;cursor:default;text-decoration:none}.upload-done{color:#16856b;font-weight:500}.drop-zone--disabled{cursor:default;opacity:.7}.pref-wrap{position:relative;-webkit-user-select:none;user-select:none}.pref-trigger{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border:1.5px solid #d6deea;border-radius:6px;background:#fff;cursor:pointer;font-size:.95rem;transition:border-color .2s}.pref-trigger:hover,.pref-trigger--active{border-color:#4f46e5}.pref-trigger__label{color:#253247;flex:1}.pref-trigger__label:empty:before,.pref-trigger__label[data-empty]:before{color:#7b879b}.pref-trigger__icon{font-size:.7rem;color:#6b7890;margin-left:8px}.pref-panel{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1.5px solid #d6deea;border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:200;max-height:200px;overflow-y:auto}.pref-item{padding:9px 14px;font-size:.93rem;cursor:pointer;color:#253247;transition:background .15s}.pref-item:hover{background:#f3f4ff}.pref-item--picked{background:#eef0ff;color:#4f46e5;font-weight:500}.app-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.app-nav{position:relative}.nav-link--trigger{display:inline-flex;align-items:center;gap:8px;color:#ffffffe6;text-decoration:none;font-size:.9rem;font-weight:500;padding:7px 16px;border-radius:6px;border:1.5px solid rgba(255,255,255,.35);background:#ffffff14;transition:background .18s,border-color .18s;-webkit-user-select:none;user-select:none;white-space:nowrap}.nav-link--trigger:hover,.nav-link--open{background:#ffffff2e;border-color:#ffffffb3;color:#fff}.nav-caret{font-size:.65rem;opacity:.75}.nav-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #00000024;border:1px solid #e4e9f1;overflow:hidden;z-index:300}.nav-dropdown-item{display:flex;align-items:center;gap:10px;padding:12px 18px;font-size:.92rem;font-weight:500;color:#253247;text-decoration:none;transition:background .15s;-webkit-user-select:none;user-select:none;cursor:pointer}.nav-dropdown-item:hover{background:#f3f4ff;color:#4f46e5}.nav-dropdown-item+.nav-dropdown-item{border-top:1px solid #edf0f6}.nav-dropdown-icon{font-size:1rem}.app-main--split{align-items:flex-start;justify-content:center;gap:32px;padding:48px 24px;flex-wrap:wrap}.home-form-section{flex:0 1 460px}.home-form-card{background:#fff;border-radius:12px;padding:28px 32px;box-shadow:0 4px 18px #0000001a}.home-form-card h2{letter-spacing:-.02em;font-size:1.2rem;font-weight:600;margin-bottom:24px;color:#17243b}.modal-wide{display:flex;flex-direction:column;max-height:80vh}.table-scroll{overflow-y:auto;flex:1 1 auto;min-height:0;border:1px solid #e4e9f1;border-radius:6px}.table-scroll .candidates-table thead th{position:sticky;top:0;background:#f5f7fb;z-index:1}.candidates-table th.col-select,.candidates-table td.col-select{width:68px;text-align:center;padding:10px 4px;white-space:nowrap}.candidates-table th.col-idx,.candidates-table td.col-idx{width:50px;text-align:center;padding:10px 6px}.candidates-table th.col-name,.candidates-table td.col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.candidates-table th.col-date,.candidates-table td.col-date{width:110px;white-space:nowrap}.virtual-spacer td{padding:0!important;border:none!important;line-height:0!important;height:inherit}.feature-intro{color:#64748b;font-size:.9rem;line-height:1.5;margin:-12px 0 22px}.preview-panel,.invite-preview{background:#f7f8fc;border:1px solid #e4e9f1;border-radius:8px;padding:14px 16px;margin-top:18px}.preview-heading{color:#526078;font-size:.78rem;font-weight:700;letter-spacing:.06em;margin-bottom:8px;text-transform:uppercase}.preview-panel pre{color:#253247;font:.88rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.candidate-choices{border:1px solid #e4e9f1;border-radius:8px;margin-bottom:20px;max-height:190px;overflow-y:auto}.candidate-choice{align-items:center;display:flex;gap:10px;padding:11px 14px;cursor:pointer}.candidate-choice+.candidate-choice{border-top:1px solid #edf0f6}.candidate-choice:hover{background:#f3f4ff}.invite-preview p{color:#526078;font-size:.88rem;line-height:1.45}.invite-link{color:#4f46e5;display:block;font-size:.85rem;margin-top:8px;overflow-wrap:anywhere}.modal-actions--left{justify-content:flex-start;margin-top:14px}
