.profile-page{max-width:800px;margin:0 auto;padding:2rem 1rem 4rem}.unauth-card{text-align:center;padding:4rem 2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-top:1rem}.unauth-icon{font-size:3rem;margin-bottom:1rem}.unauth-card h2{color:var(--text);margin-bottom:.75rem}.unauth-card p{color:var(--text-muted);max-width:400px;margin:0 auto 1.5rem}.loading-card{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent-indigo-light);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.profile-card{display:flex;align-items:center;gap:1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;position:relative}.profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--accent-indigo);color:#fff;font-size:1.4rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.profile-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.profile-identity{flex:1;min-width:0}.profile-name{font-size:1.375rem;font-weight:700;color:var(--text);margin:0 0 .35rem}.profile-meta{font-size:.875rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.35rem 1rem}.profile-meta span:not(:first-child):before{content:"·";margin-right:1rem}.profile-badge{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#6366f126;color:var(--accent-indigo-light);padding:.25rem .6rem;border-radius:4px;white-space:nowrap;align-self:flex-start}.info-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}.section-title{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.info-field{display:flex;flex-direction:column;gap:2px}.info-label{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.info-value{font-size:.875rem;color:var(--text)}.info-value.empty{color:var(--text-muted);font-style:italic}.profile-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:600px){.form-row{grid-template-columns:1fr}.profile-card{flex-direction:column;text-align:center}.profile-meta{justify-content:center}}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group--full{grid-column:1 / -1}.form-group label{font-size:.8125rem;font-weight:600;color:var(--text-muted)}.label-hint{font-weight:400;font-size:.75rem;color:var(--text-dim, #475569)}.form-group input,.form-group textarea{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.875rem;font-family:inherit;padding:.45rem .75rem;transition:border-color .15s;width:100%;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-indigo-light)}.form-group textarea{resize:vertical;min-height:100px}.field-hint{font-size:.75rem;color:var(--text-muted)}.char-count{float:right}.form-actions{display:flex;align-items:center;gap:1rem;padding-top:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1.25rem;border-radius:6px;font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;border:none;text-decoration:none;transition:background .15s,transform .1s}.btn--primary{background:var(--accent-indigo);color:#fff}.btn--primary:hover{background:var(--accent-indigo-light);transform:translateY(-1px)}.btn--primary:disabled{opacity:.6;cursor:default;transform:none}.btn--secondary{background:var(--bg-hover);color:var(--text);border:1px solid var(--border)}.btn--secondary:hover{background:var(--bg-card)}.save-status{font-size:.8125rem;color:var(--accent-teal-light, #2dd4bf);transition:opacity .3s}.save-status.error{color:var(--accent-rose-light, #fb7185)}
