:root{color-scheme:dark;--ims-blue-50: #E6EFF7;--ims-blue-100: #CCE0F0;--ims-blue-200: #99C1E0;--ims-blue-300: #66A1D1;--ims-blue-400: #3382C1;--ims-blue-500: #2060A0;--ims-blue-600: #1A4F82;--ims-blue-700: #143D64;--ims-blue-800: #0E2C46;--ims-blue-900: #002040;--ims-orange-400: #F68633;--ims-orange-500: #E06020;--ims-orange-600: #B34D1A;--seven-blue: #006BDB;--seven-cyan: #00ADFF;--seven-light-blue: #71C2F2;--seven-gold: #FFBD3B;--seven-orange: #FF6926;--status-ok: #22C55E;--status-warning: #FFBD3B;--status-critical: #EF4444;--status-info: #00ADFF;--bg-0: var(--ims-blue-900);--bg-1: #001830;--surface: rgba(255, 255, 255, .06);--surface-strong: rgba(255, 255, 255, .1);--border-soft: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .22);--text-0: #F3F7FC;--text-1: rgba(243, 247, 252, .72);--text-2: rgba(243, 247, 252, .5);--shadow-brand: 0 20px 60px -20px rgba(0, 32, 64, .65);--radius-md: 12px;--radius-lg: 18px;--radius-full: 999px;--touch-target: 44px}@media(prefers-color-scheme:light){:root{color-scheme:light;--bg-0: #EEF3F9;--bg-1: #E1EAF4;--surface: rgba(255, 255, 255, .65);--surface-strong: rgba(255, 255, 255, .85);--border-soft: rgba(0, 32, 64, .1);--border-strong: rgba(0, 32, 64, .18);--text-0: #0E2C46;--text-1: rgba(14, 44, 70, .75);--text-2: rgba(14, 44, 70, .55);--shadow-brand: 0 20px 50px -24px rgba(0, 32, 64, .25)}}*{box-sizing:border-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html,body,#root{height:100%}body{margin:0;font-family:Inter,Nunito,Avenir,system-ui,sans-serif;background:radial-gradient(1200px 600px at 15% -10%,rgba(0,107,219,.28),transparent 60%),radial-gradient(900px 500px at 110% 10%,rgba(230,96,32,.16),transparent 55%),linear-gradient(180deg,var(--bg-0),var(--bg-1));background-attachment:fixed;color:var(--text-0);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.01em}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0;line-height:1.5;color:var(--text-1)}button,input,select,textarea{font-family:inherit;color:inherit}a{color:var(--seven-light-blue)}.link-button{appearance:none;background:none;border:none;padding:0;margin:0;font:inherit;color:var(--seven-light-blue);text-decoration:underline;cursor:pointer}.link-button:disabled{opacity:.6;cursor:default;text-decoration:none}.portal-shell{min-height:100vh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.center-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px}.glass-card{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-brand);padding:28px 24px;display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center}.status-card h1{font-size:1.3rem}.eyebrow{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--seven-light-blue)}.hint{font-size:.85rem;color:var(--text-2)}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--border-soft);border-top-color:var(--seven-cyan);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface-strong);color:var(--text-0);font-weight:700;font-size:.9rem;padding:0 18px;height:var(--touch-target);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s ease,filter .12s ease,opacity .12s ease;white-space:nowrap}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(1px) scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn:focus-visible{outline:2px solid var(--seven-cyan);outline-offset:2px}.btn-primary{background:linear-gradient(135deg,var(--ims-blue-500),var(--seven-blue));border-color:transparent;color:#fff}.btn-cta{background:linear-gradient(135deg,var(--ims-orange-400),var(--ims-orange-600));border-color:transparent;color:#fff}.btn-secondary{background:transparent}.btn-danger{background:transparent;border-color:#ef444466;color:#fca5a5}.btn-sm{height:34px;padding:0 12px;font-size:.78rem}.btn-icon{width:var(--touch-target);height:var(--touch-target);padding:0;flex:none}.form-shell{max-width:1040px;width:100%;margin:0 auto;padding:20px 16px 140px;display:flex;flex-direction:column;gap:18px}.topbar{display:flex;flex-direction:column;gap:6px}.topbar h1{font-size:1.35rem}.topbar .company{color:var(--seven-light-blue);font-weight:700}.banner{border-radius:var(--radius-md);border:1px solid var(--border-soft);padding:14px 16px;display:flex;gap:10px;align-items:flex-start;font-size:.88rem}.banner-returned{background:#ffbd3b1f;border-color:#ffbd3b59}.banner-error{background:#ef44441f;border-color:#ef444459}.banner-info{background:#00adff1a;border-color:#00adff4d}.banner strong{color:var(--text-0)}.empty-state{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:28px 20px;display:flex;flex-direction:column;gap:10px}.empty-state ul{margin:4px 0 0;padding-left:18px;color:var(--text-1);font-size:.85rem;display:flex;flex-direction:column;gap:4px}.empty-state .example{margin-top:6px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem;background:#0000002e;border-radius:var(--radius-md);padding:10px 12px;color:var(--text-1)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar .spacer{flex:1}.roster-count{font-size:.8rem;color:var(--text-2);font-weight:700}.roster{display:flex;flex-direction:column;gap:10px}.roster-row{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:14px;display:grid;grid-template-columns:1fr;gap:10px;transition:border-color .15s ease}.roster-row.is-invalid{border-color:#ef444473}.roster-row.is-locked{border-color:#00adff40;background:#00adff0a;opacity:.92}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2)}.field .desc{font-size:.72rem;color:var(--text-2)}input[type=text],input[type=search],select,textarea{width:100%;height:var(--touch-target);border-radius:var(--radius-md);border:1px solid var(--border-soft);background:#00000026;color:var(--text-0);padding:0 12px;font-size:.92rem}select{appearance:auto;background-color:var(--ims-blue-800);color:var(--text-0)}select option{background-color:var(--ims-blue-800);color:var(--text-0)}@media(prefers-color-scheme:light){select,select option{background-color:#fff;color:var(--text-0)}}textarea{height:auto;min-height:72px;padding:10px 12px;resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-2)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--seven-cyan);box-shadow:0 0 0 3px #00adff2e}.field.has-error input,.field.has-error select{border-color:var(--status-critical);background:#ef444414}.field-error{font-size:.72rem;color:#fca5a5;font-weight:600}.row-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}.save-indicator{font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}.save-indicator.saved{color:var(--status-ok)}.save-indicator.saving{color:var(--status-info)}.save-indicator.retrying,.save-indicator.frozen{color:var(--status-warning)}.save-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:var(--radius-full)}.badge-ok{background:#22c55e29;color:var(--status-ok)}.badge-invalid{background:#ef444429;color:#fca5a5}.badge-locked{background:#00adff24;color:var(--seven-light-blue)}@media(min-width:900px){.roster-row{grid-template-columns:1.3fr 1fr 1.3fr 1fr 1fr .9fr 90px;align-items:start;padding:10px 14px}.roster-row .field label{display:none}.roster-row .row-actions{grid-column:1 / -1;order:99}.roster-row .field.col-extra{grid-column:1 / -1}.roster-row .groups-field label{display:block}}.credential-notice{align-items:flex-start}.credential-notice svg{flex:none;margin-top:2px;color:var(--seven-gold)}.groups-select{display:flex;flex-wrap:wrap;gap:8px 16px}.groups-select-item{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-1);cursor:pointer;user-select:none}.groups-select-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--seven-cyan)}.entry-form{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:18px 16px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-brand)}.entry-form-head{display:flex;align-items:center;justify-content:space-between}.entry-form form{display:flex;flex-direction:column;gap:14px}.entry-form-grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:720px){.entry-form-grid{grid-template-columns:repeat(4,1fr)}.entry-form-grid .field.col-extra{grid-column:1 / -1}}.entry-form-actions{display:flex;justify-content:flex-end}.entry-form-error{margin:0}.collapsed-row{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s ease}.collapsed-row.is-invalid{border-color:#ef444473}.collapsed-row.is-locked{border-color:#00adff40;background:#00adff0a}.collapsed-row.is-expanded{border-color:var(--seven-cyan)}.collapsed-row-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;min-height:var(--touch-target);cursor:pointer}.collapsed-row-summary:focus-visible{outline:2px solid var(--seven-cyan);outline-offset:-2px}.collapsed-row-marker{flex:none;display:inline-flex;align-items:center;justify-content:center;width:16px;color:var(--text-2)}.collapsed-row.is-locked .collapsed-row-marker{color:var(--seven-light-blue)}.collapsed-row-chevron{font-size:.85rem;transition:transform .15s ease}.collapsed-row.is-expanded .collapsed-row-chevron{transform:rotate(90deg)}.collapsed-row-name{font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collapsed-row-name em{color:var(--text-2);font-style:italic;font-weight:500}.collapsed-row-meta{font-size:.82rem;color:var(--text-1);white-space:nowrap}.collapsed-row-optional{color:var(--text-2)}.collapsed-row-spacer{flex:1;min-width:8px}.collapsed-row-reason{font-size:.76rem;font-weight:700;color:#fca5a5;white-space:nowrap}.collapsed-row-body{border-top:1px solid var(--border-soft)}@media(min-width:900px){.collapsed-row-body .roster-row{grid-template-columns:1fr}.collapsed-row-body .roster-row .field label{display:block}}@media(min-width:640px){.collapsed-row-summary{flex-wrap:nowrap}.collapsed-row-name{max-width:220px}}.groups-panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px}.groups-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.groups-list{display:flex;flex-direction:column;gap:8px}.group-item{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--surface-strong);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:10px 12px}.group-item.is-locked{border-color:#00adff40;background:#00adff0a}.group-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.group-name{font-weight:700;display:inline-flex;align-items:center;gap:6px}.group-desc{font-size:.78rem;color:var(--text-2)}.group-item-actions{display:flex;gap:8px;flex:none}.group-form{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border-soft);padding-top:12px}@media(min-width:640px){.import-row{grid-template-columns:1.3fr 1fr 1.3fr}}.import-panel{display:flex;flex-direction:column;gap:14px}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:32px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;background:var(--surface);transition:border-color .15s ease,background .15s ease}.dropzone.is-dragging{border-color:var(--seven-cyan);background:#00adff14}.dropzone input[type=file]{display:none}.import-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.82rem}.import-toggle{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-1);cursor:pointer;user-select:none}.preview-list{display:flex;flex-direction:column;gap:8px}.preview-item{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:10px 14px;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:.85rem}.preview-item .name{font-weight:700}.preview-item .meta{color:var(--text-2);font-size:.78rem}.submit-bar{position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--bg-1) 30%);display:flex;justify-content:center;z-index:20}.submit-bar-inner{width:100%;max-width:1040px;display:flex;align-items:center;gap:12px;background:var(--surface-strong);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:10px 14px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-brand)}.submit-bar-inner .info{flex:1;font-size:.78rem;color:var(--text-2)}.submit-bar-inner .info strong{color:var(--text-0)}.overlay{position:fixed;inset:0;background:#000c188c;backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:30;padding:0}.overlay-panel{width:100%;max-width:720px;max-height:90vh;overflow-y:auto;background:var(--bg-1);border:1px solid var(--border-strong);border-radius:22px 22px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-brand)}@media(min-width:700px){.overlay{align-items:center;padding:24px}.overlay-panel{border-radius:var(--radius-lg);max-height:85vh}}.overlay-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
