:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#172033;background-color:#f5f7fb;--bg: #f5f7fb;--panel: #ffffff;--panel-strong: #fbfcfe;--muted: #64748b;--text: #172033;--text-strong: #0f172a;--accent: #1769d2;--accent-hover: #1256b3;--accent-soft: #e8f1ff;--success: #0f766e;--success-soft: #e7f6f3;--danger: #b42318;--danger-soft: #fff0ee;--warning: #b45309;--border: #dbe3ef;--border-strong: #c8d3e1;--ring: rgba(23, 105, 210, .24);--shadow: 0 18px 45px rgba(15, 23, 42, .1);--shadow-raised: 0 10px 28px rgba(15, 23, 42, .08);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#eef3f9 0,#f5f7fb 280px),var(--bg);color:var(--text)}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}button,input{font:inherit}.app-shell{width:min(1280px,100%);margin:0 auto;padding:28px 24px 56px}.hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;border:1px solid var(--border);border-radius:8px;background:#ffffffeb;box-shadow:var(--shadow-raised)}.hero h1{margin:2px 0 4px;color:var(--text-strong);font-size:clamp(1.7rem,2.4vw,2.35rem);line-height:1.12;letter-spacing:0}.hero-status{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:9px 12px;border:1px solid #b7e0d7;border-radius:999px;background:var(--success-soft);color:#115e59;font-size:.86rem;font-weight:700;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:999px;background:var(--success);box-shadow:0 0 0 4px #0f766e1f}.layout{display:grid;grid-template-columns:minmax(280px,336px) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}.providers-panel,.flow-card{border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-raised)}.providers-panel{position:sticky;top:20px;padding:16px}.providers-grid{display:grid;grid-template-columns:1fr;gap:8px}.provider-card{position:relative;width:100%;min-height:96px;text-align:left;border-radius:8px;padding:12px 12px 12px 14px;background:#fff;border:1px solid var(--border);color:inherit;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease;box-shadow:none}.provider-card:before{content:"";position:absolute;inset:12px auto 12px 0;width:3px;border-radius:0 999px 999px 0;background:var(--provider-accent, var(--accent));opacity:.65}.provider-card.active:hover{transform:translateY(-1px);border-color:#a9bbd2;background:#fbfdff;box-shadow:0 8px 20px #0f172a14}.provider-card:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.provider-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #1769d21a}.provider-card.selected:before{width:4px;opacity:1}.provider-card.disabled{opacity:.5;cursor:not-allowed}.provider-card.aruba{--provider-accent: #d64a1f}.provider-card.cie{--provider-accent: #16825d}.provider-card.poste{--provider-accent: #d89b00}.provider-card.infocert{--provider-accent: #0057d8}.provider-card.naimiral{--provider-accent: #2e6b57}.provider-card.lepida{--provider-accent: #008f8c}.provider-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.provider-mark{width:9px;height:9px;border-radius:999px;background:var(--provider-accent, var(--accent))}.provider-name{margin-bottom:3px;color:var(--text-strong);font-size:1rem;font-weight:750}.flow-panel{min-width:0;min-height:420px}.flow-card{padding:18px}.flow-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--border)}.flow-header h3,.panel-header h3,.panel-header h4{margin:0;color:var(--text-strong);line-height:1.25;letter-spacing:0}.flow-header h3{font-size:1.35rem}.flow-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;flex-wrap:wrap}.reset-button{min-height:32px;padding:7px 10px}.controls{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.loading-state{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid #b9c9dd;border-radius:8px;background:var(--accent-soft);color:#174a86;font-size:.9rem;font-weight:750}.loading-spinner{width:16px;height:16px;border:2px solid rgba(23,105,210,.24);border-top-color:var(--accent);border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.controls button:first-child{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 8px 18px #1769d22e}.controls button:first-child:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.panel{margin-top:14px;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--panel-strong);box-shadow:0 1px 2px #0f172a0a}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.header-pills{display:inline-flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:min(100%,360px)}.panel.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}.panel.two-col.single-col{grid-template-columns:1fr}.cie-login-grid,.poste-login-grid{grid-template-columns:minmax(280px,1fr) minmax(280px,360px);align-items:start}.otp-panel{border-color:#aac4e8;background:#fbfdff;box-shadow:inset 3px 0 0 var(--accent)}.session-closed-panel{border-color:#f0b4a8;background:snow;box-shadow:inset 3px 0 0 var(--danger)}.pill{display:inline-flex;align-items:center;max-width:100%;gap:6px;padding:5px 9px;border-radius:999px;border:1px solid #b9c9dd;background:var(--accent-soft);color:#174a86;font-size:.78rem;font-weight:750;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.pill.subtle{background:#f3f6fa;border-color:var(--border);color:var(--muted)}.authorization-summary{width:100%;align-items:stretch;border-radius:8px;background:#fff;white-space:normal}.authorization-summary p{margin:0;line-height:1.5}.authorization-summary dl{display:grid;grid-template-columns:minmax(120px,220px) minmax(0,1fr);gap:8px 14px;margin:0;width:100%}.authorization-summary dl div{display:contents}.authorization-summary dt{color:var(--muted);font-weight:700}.authorization-summary dd{min-width:0;margin:0;color:var(--text);overflow-wrap:anywhere}.text-summary{gap:12px}.summary-block{display:grid;gap:4px;width:100%}.summary-block span{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.summary-block p{color:var(--text);white-space:pre-line}.summary-block ul{margin:0;padding-left:18px;color:var(--text)}.summary-block li+li{margin-top:3px}.authorization-copy{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:#fff}.authorization-copy>p{margin:0;color:var(--text);line-height:1.55}.otp-message{margin:0;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);line-height:1.6;white-space:pre-line}.otp-prefix{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #b9c9dd;border-radius:8px;background:var(--accent-soft)}.otp-prefix span{color:#31557d;font-size:.82rem;font-weight:800;text-transform:uppercase}.otp-prefix strong{color:var(--text-strong);font-size:1.05rem;letter-spacing:.08em}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}.muted{margin:0;color:var(--muted)}.muted.small{font-size:.88rem;line-height:1.45}.badge{display:inline-flex;align-items:center;max-width:100%;padding:5px 8px;border-radius:999px;border:1px solid #c6d6ea;background:#f4f8fd;color:#31557d;font-size:.78rem;font-weight:750;line-height:1.2}.badge.small{font-size:.74rem;padding:4px 7px}button{min-height:36px;border-radius:8px;padding:8px 12px;border:1px solid var(--border-strong);background:#fff;color:var(--text-strong);cursor:pointer;font-size:.9rem;font-weight:750;line-height:1.2;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}button:hover:not(:disabled){transform:translateY(-1px);border-color:#a7b8ce;background:#f8fbff;box-shadow:0 8px 18px #0f172a14}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}button.ghost{background:#fff;color:#334155;border-color:var(--border)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 8px 18px #1769d22e}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.alert{display:flex;align-items:flex-start;gap:10px;margin:12px 0;padding:11px 13px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font-size:.94rem;line-height:1.45}.alert:before{content:"";flex:0 0 auto;width:8px;height:8px;margin-top:.46em;border-radius:999px;background:currentColor}.alert.success{background:var(--success-soft);border-color:#b7e0d7;color:#115e59}.alert.danger{background:var(--danger-soft);border-color:#f4b4ad;color:var(--danger)}.qr-area{display:flex;justify-content:center;align-items:center;min-height:238px;padding:18px;border:1px dashed #c6d3e2;border-radius:8px;background:#fff;text-align:center}.qr-wrapper{position:relative;display:inline-flex;padding:12px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 10px 24px #0f172a1a}.qr-wrapper img{display:block;width:174px;height:174px;object-fit:contain}.qr-wrapper.expired{opacity:.5}.qr-wrapper .badge{position:absolute;right:10px;bottom:10px;border-color:#f4b4ad;background:var(--danger-soft);color:var(--danger)}.stack{display:flex;flex-direction:column;gap:12px}.stack.compact{gap:8px}.field{display:flex;flex-direction:column;gap:7px;color:#334155;font-size:.91rem;font-weight:750}.password-wrapper{position:relative;display:flex;align-items:center}.password-wrapper input{padding-right:44px}.password-toggle{position:absolute;right:0;top:0;bottom:0;min-height:unset;width:44px;padding:0;border:none;border-radius:0 8px 8px 0;background:transparent;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s ease;box-shadow:none}.password-toggle:hover:not(:disabled){color:var(--accent);background:transparent;transform:none;box-shadow:none}.password-toggle:disabled{opacity:.4}input{width:100%;min-height:44px;border-radius:8px;border:1px solid var(--border-strong);padding:10px 12px;background:#fff;color:var(--text);font-weight:500;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}input::placeholder{color:#94a3b8}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}input:disabled{background:#f1f5f9;color:#64748b;cursor:not-allowed}.disabled-actions{margin-top:16px;padding:16px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.modal-backdrop{position:fixed;inset:0;z-index:10;display:flex;justify-content:center;align-items:center;padding:16px;background:#0f172a57;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(420px,100%);padding:20px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.modal-card h3{margin:0 0 8px;color:var(--text-strong)}.modal-actions{display:flex;justify-content:flex-end;margin-top:16px}@media(max-width:960px){.app-shell{padding:18px 14px 40px}.layout{grid-template-columns:1fr}.providers-panel{position:relative;top:auto}.providers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cie-login-grid,.poste-login-grid{grid-template-columns:1fr}}@media(max-width:640px){.hero,.flow-header,.panel-header{flex-direction:column;align-items:stretch}.flow-actions{justify-content:flex-start}.hero-status,.pill{width:fit-content}.providers-grid,.panel.two-col{grid-template-columns:1fr}.flow-card,.providers-panel,.panel{padding:14px}.controls,.action-row{flex-direction:column}.controls button,.action-row button{width:100%}.authorization-summary dl{grid-template-columns:1fr;gap:4px}.qr-area{min-height:220px;padding:14px}.qr-wrapper img{width:156px;height:156px}}
