.profile-avatar,.profile-large{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:#31538333}.profile-avatar img,.profile-large img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.profile-large{width:88px;height:88px;border-radius:26px;font:800 30px Manrope,system-ui;color:#7d9cff}.profile-photo-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0}.profile-photo-controls small{max-width:440px;color:var(--muted);line-height:1.6}.photo-picker{position:relative;cursor:pointer}.photo-picker input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.profile-panel .modal-form{max-width:600px;padding:12px 0}.identity-details{border-top:1px solid var(--line,#31405b);margin-top:22px;padding:20px 0}.identity-details summary{cursor:pointer;font-size:16px;font-weight:700}.identity-details>p{line-height:1.7;margin:16px 0}.identity-role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:26px}.role-tile{border:1px solid var(--line,#31405b);border-radius:12px;padding:16px}.role-tile b{display:block;font-size:15px}.role-tile small{display:block;margin-top:8px;line-height:1.6;color:var(--muted)}.user-cell{display:flex;align-items:center;gap:12px}.user-actions{display:flex;flex-direction:column;align-items:start;gap:9px}.team-dashboard{margin:24px 0}.team-row{display:flex;gap:24px;padding:22px 0;border-bottom:1px solid var(--line,#31405b);align-items:center}.team-row:last-child{border:0}.team-row>div{flex:1;min-width:0}.team-row b,.team-row small{display:block}.team-row small{color:var(--muted);line-height:1.7;margin-top:6px}.goal-track{height:7px;border-radius:6px;background:#7182aa22;margin:12px 0;overflow:hidden}.goal-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#436afa,#fa345d);transition:width .4s}.team-goal-form{display:flex;align-items:end;gap:10px}.team-goal-form label{display:flex;flex-direction:column;gap:8px;font-size:12px}.team-goal-form input{width:100px;padding:11px;border-radius:9px;border:1px solid var(--line,#31405b);background:var(--surface,#14243a);color:inherit}.forgot-link{display:block;text-align:center;color:#3158b0;margin-top:20px;font-size:14px;font-weight:600;text-decoration:none}.forgot-link:hover{text-decoration:underline}.recovery-body{display:grid;min-height:100dvh;place-items:center;margin:0;padding:24px;box-sizing:border-box;background:radial-gradient(ellipse at 85% 80%,#941d4938,transparent 55%),radial-gradient(ellipse at 15% 10%,#2955b350,transparent 55%),#07152e;font:15px/1.7 'DM Sans',system-ui}.recovery-card{box-sizing:border-box;background:#fff;color:#20324d;width:100%;max-width:510px;border-radius:24px;padding:38px;box-shadow:0 30px 90px #0004}.recovery-card h1{font:800 29px/1.3 Manrope,system-ui;margin:30px 0 14px}.recovery-card p{color:#617087}.recovery-card label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600;margin:18px 0}.recovery-card input{box-sizing:border-box;width:100%;font:inherit;padding:13px;border-radius:10px;border:1px solid #d5ddec;background:#f7f9fc;color:#18304e}.recovery-card button{width:100%;border:0;border-radius:11px;background:#ed1749;color:#fff;padding:15px;font:700 14px 'DM Sans',system-ui;cursor:pointer}.recovery-card button:disabled{opacity:.5;cursor:default}.recovery-card .product-brand{margin:0;color:#193459;text-decoration:none}.back-login{display:block;margin-top:24px;text-align:center;color:#3158b0;text-decoration:none;font-weight:600}.recovery-alert{border-radius:10px;background:#fff0d9;padding:14px;color:#73511f!important}#authMessage{margin:16px 0;line-height:1.6;color:#263f68}.identity-details .field input,.identity-details .field select{max-width:100%}.profile-panel{margin-top:24px}
@media(max-width:950px){.identity-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-row{align-items:stretch;flex-direction:column;gap:14px}.team-goal-form{justify-content:space-between}.team-goal-form input{width:100%}}
@media(max-width:480px){.identity-role-grid{grid-template-columns:1fr}.recovery-card{padding:26px 22px}.recovery-body{padding:18px}.recovery-card h1{font-size:26px}.profile-large{width:64px;height:64px;border-radius:20px}.team-goal-form{flex-wrap:wrap}.team-goal-form label{flex:1}.team-goal-form .btn{font-size:12px}.profile-photo-controls .btn{font-size:12px}.user-cell{gap:8px}}
@media(prefers-reduced-motion:reduce){.goal-track i{transition:none}}

/* CP14: keep long states and configuration tables within small screens. */
.operational-status p{line-height:1.7;overflow-wrap:anywhere}.profile-panel,.instance-card{min-width:0}.identity-details input{box-sizing:border-box}.identity-details summary:focus-visible,.photo-picker:focus-within{outline:2px solid var(--blue);outline-offset:4px}
@media(min-width:761px){.rail{height:100dvh;overflow:hidden}.rail>.logo,.rail>.nav-caption,.rail>.rail-note,.rail>.rail-foot{flex-shrink:0}.rail nav{min-height:0;overflow-y:auto;flex:1;overscroll-behavior:contain}}
/* 1.18: public recovery forms keep strong contrast on white cards. */
.recovery-card p,.recovery-card label,.recovery-card small{color:#354963;opacity:1;line-height:1.7}.recovery-card p{font-size:15px}.recovery-card label{font-size:14px}.recovery-card input{color:#172b45}.recovery-card input::placeholder{color:#40516a;opacity:1}

/* Login always has a dark background; keep recovery link readable. */
.login-page .forgot-link,.login-body .forgot-link,.auth-body .forgot-link{color:#b4d0ff}

.auth-layout .forgot-link{color:#b4d0ff}.auth-layout .forgot-link:hover{color:#fff}
