:root { --app-max:1220px; }
.account-main { width:min(var(--app-max),calc(100% - 48px)); margin:0 auto; padding:40px 0 72px; }
.loading-mark { border:2px solid color-mix(in srgb,var(--app-violet) 25%,transparent); border-top-color:var(--app-violet); }
.account-hero { position:relative; min-height:186px; display:flex; align-items:center; justify-content:space-between; gap:28px; overflow:hidden; padding:28px 32px; border:1px solid var(--border-subtle); border-radius:22px; background:linear-gradient(120deg,color-mix(in srgb,var(--bg-surface-1) 97%,transparent) 8%,color-mix(in srgb,var(--bg-surface-1) 88%,transparent) 72%),radial-gradient(circle at 80% 10%,rgba(25,136,247,.2),transparent 45%); box-shadow:var(--app-shadow); }
.account-hero::after { content:''; position:absolute; width:460px; height:230px; top:-146px; right:-48px; border:1px solid rgba(113,56,240,.26); border-radius:50%; transform:rotate(-10deg); box-shadow:0 0 0 34px rgba(25,136,247,.025),0 0 0 68px rgba(113,56,240,.02); pointer-events:none; }
.account-hero>* { position:relative; z-index:1; }
#edit-username { --btn-height:0px; --btn-radius:var(--radius-md); --btn-pad-x:16px; padding:8px var(--btn-pad-x); gap:8px; font:600 13px var(--font-sans); letter-spacing:normal; }
.account-hero-identity { min-width:0; display:flex; align-items:center; gap:22px; }
.avatar-frame { width:112px; height:112px; padding:5px; flex:0 0 auto; border:1px solid color-mix(in srgb,var(--accent-violet) 42%,var(--border-subtle)); border-radius:26px; background:linear-gradient(145deg,rgba(113,56,240,.18),rgba(25,136,247,.08)); }
.profile-avatar { width:100%; height:100%; display:grid; place-items:center; object-fit:cover; color:#fff; border-radius:20px; background:linear-gradient(145deg,#7138f0,#1988f7); font-size:34px; font-weight:800; }
.hero-profile-copy { min-width:0; }
.profile-title-line { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.profile-title-line h1 { margin:0; color:var(--text-primary); font-size:clamp(28px,3vw,40px); line-height:1.05; letter-spacing:-.04em; }
.public-id { color:var(--accent-cyan); font:600 13px/1 var(--font-mono); }
.hero-profile-copy>p { margin-top:9px; color:var(--text-secondary); font-size:14px; }
.member-since { display:inline-flex; align-items:center; gap:7px; margin-top:14px; color:var(--text-muted); font-size:12px; }
.role-badge, .status-badge { gap:5px; border:1px solid transparent; white-space:nowrap; font-size:10.5px; }
.role-admin { background:color-mix(in srgb,var(--accent-amber) 12%,transparent); border-color:color-mix(in srgb,var(--accent-amber) 26%,transparent); }
.role-moderator { background:color-mix(in srgb,var(--accent-violet) 11%,transparent); }
.role-partner { background:color-mix(in srgb,var(--accent-cyan) 10%,transparent); }
.status-connected, .status-approved { border-color:color-mix(in srgb,var(--accent-emerald) 24%,transparent); }
.status-processing { color:var(--accent-cyan); background:color-mix(in srgb,var(--accent-cyan) 10%,transparent); }
.status-coming_soon { color:var(--text-muted); background:var(--bg-surface-2); border-color:var(--border-subtle); text-transform:uppercase; letter-spacing:.05em; font-size:8.5px; }
.account-signal { min-width:0; min-height:64px; display:grid; grid-template-columns:36% minmax(0,1fr); overflow:hidden; border:1px solid var(--border-subtle); border-radius:16px; background:var(--app-panel); }
.signal-intro { display:flex; align-items:center; gap:6px; padding:8px 10px; border-right:1px solid var(--border-subtle); color:var(--text-primary); font-size:12px; }
.signal-line { width:42px; height:3px; flex:0 0 auto; border-radius:9px; background:linear-gradient(90deg,var(--app-violet),var(--app-blue)); }
.signal-metrics { min-width:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.signal-metrics>div { min-width:0; display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 4px; border-right:1px solid var(--border-subtle); }
.signal-metrics>div:last-child { border-right:0; }
.signal-metrics strong { flex:0 0 auto; color:var(--text-primary); font-size:14px; font-weight:600; }
.signal-metrics span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-secondary); font-size:11px; }
.account-layout { display:grid; grid-template-columns:380px minmax(0,1fr); align-items:start; gap:18px; margin-top:18px; }
.account-column { min-width:0; display:grid; align-content:start; gap:18px; }
.account-sidebar { display:grid; gap:18px; }
.notifications-panel { scroll-margin-top:80px; }
.notifications-panel[hidden] { display:none; }
.notification-preferences-form { display:grid; gap:0; }
.notification-group-title { margin:16px 0 4px; font-size:12px; font-weight:700; color:var(--text-primary); }
.notification-group-title:first-child { margin-top:0; }
.notification-setting { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:5px 0; border-bottom:1px solid var(--border-subtle); color:var(--text-primary); font-size:12px; }
.notification-setting-heading { min-width:0; display:flex; align-items:center; gap:4px; }
.notification-setting-heading>label { min-width:0; cursor:pointer; }
#notifications .notification-setting .btn.frost-toggle { --btn-height:32px; --btn-pad-x:8px; --btn-radius:var(--radius-md); flex:0 0 auto; border-color:transparent; background:none; box-shadow:none; transform:none; outline:none; }
#notifications .notification-setting .frost-toggle>input:focus-visible+.frost-toggle__switch { outline:2px solid var(--accent-violet); outline-offset:2px; }
.notification-setting-status { margin:0 0 0 auto; white-space:nowrap; }
.notification-intervals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:12px 0; }
.notification-interval { min-width:0; display:grid; gap:6px; color:var(--text-secondary); font-size:11px; }
.notification-interval .filter-select,.notification-interval .ui-select-trigger { width:100%; min-width:0; height:36px; font:500 12px var(--font-sans); }
.notification-preferences-form>.btn { --btn-height:36px; --btn-pad-x:14px; justify-self:start; font-size:12px; }
.notification-preferences-form>.field-feedback { min-height:18px; margin:8px 0; }
.checkin-content { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.checkin-status { min-width:0; display:flex; align-items:center; }
.checkin-streak { margin:0; display:flex; align-items:center; gap:8px; color:var(--text-secondary); font-size:12px; }
.checkin-fire { flex:0 0 auto; color:var(--accent-amber); }
.checkin-streak strong { margin-left:3px; color:var(--text-primary); font-size:14px; font-weight:600; }
.checkin-feedback { margin:0; color:var(--text-secondary); font-size:12px; }
/* Geometry only; the original Frost V2 owns the button surface and effects. */
.checkin-content .btn.frost-btn { --btn-height:36px; --btn-radius:var(--radius-md); --btn-pad-x:12px; flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:136px; min-width:136px; max-width:100%; height:36px; min-height:var(--btn-height); padding:7px var(--btn-pad-x); gap:8px; font:600 12px/1.5 var(--font-sans); letter-spacing:normal; white-space:nowrap; }
.checkin-content .btn>i { flex:0 0 12px; width:12px; font-size:12px; line-height:1; }
.checkin-content .checkin-sparkle { flex:0 0 12px; width:12px; height:12px; background:currentColor; clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%); }
/* Completed stays a readable green status while retaining the Frost surface. */
.checkin-content .btn.frost-btn.is-completed:disabled { opacity:1; color:var(--accent-emerald); box-shadow:none; }

.nz-checkin-fx { position:fixed; inset:0; z-index:2000; pointer-events:none; overflow:hidden; contain:layout style; }
.nz-checkin-fx canvas { position:absolute; pointer-events:none; }
@media (prefers-reduced-motion:reduce) {
  .checkin-content .btn.frost-btn:not(:disabled):hover,.checkin-content .btn.frost-btn:not(:disabled):active { transform:none; }
}
.panel-heading h2 { letter-spacing:-.02em; }
.panel-heading p { line-height:1.5; }
.panel-heading>i { color:var(--accent-violet); }
.identity-list,.wallet-list { display:grid; }
.identity-row,.wallet-row { min-width:0; display:flex; align-items:center; gap:12px; min-height:64px; padding:10px 0; border-top:1px solid var(--border-subtle); }
.identity-row:first-child,.wallet-row:first-child { border-top:0; padding-top:2px; }
.identity-row .btn.frost-btn,.identity-row .status-connected { width:92px; flex:0 0 auto; min-height:36px; padding:7px 12px; border-radius:var(--radius-md); gap:8px; font:600 12px var(--font-sans); letter-spacing:normal; }
.identity-row .status-connected { text-transform:none; }
.provider-mark,.wallet-mark { width:40px; height:40px; display:grid; place-items:center; flex:0 0 auto; border:1px solid var(--border-subtle); border-radius:12px; background:var(--bg-surface-2); font-size:17px; }
.provider-mark.google { color:#4285f4; }.provider-mark.discord { color:#5865f2; }.provider-mark.twitter { color:var(--text-primary); }
.wallet-mark img { width:20px; height:20px; }
.identity-copy { min-width:0; flex:1; }
.identity-copy strong,.identity-copy span { display:block; overflow:hidden; text-overflow:ellipsis; }
.identity-copy strong { color:var(--text-primary); font-size:12.5px; }.identity-copy span { margin-top:3px; color:var(--text-muted); font-size:10.5px; white-space:nowrap; }
.copy-button { width:34px; height:34px; }
.submissions-heading { align-items:center; }
.submissions-heading .btn.frost-btn { --btn-height:30px; --btn-radius:var(--radius-md); --btn-pad-x:16px; gap:8px; font:600 13px var(--font-sans); letter-spacing:normal; flex:0 0 auto; }
.submission-list { display:grid; }
.submission-item { min-height:68px; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:13px; padding:10px 4px; border-top:1px solid var(--border-subtle); }
.submission-item:first-child { border-top:0; padding-top:2px; }
.submission-art { width:48px; height:48px; display:grid; place-items:center; object-fit:cover; overflow:hidden; border:1px solid var(--border-subtle); border-radius:12px; color:var(--text-muted); background:var(--bg-surface-2); }
.submission-main { min-width:0; }.submission-title-line { display:flex; align-items:center; justify-content:space-between; gap:12px; }.submission-title-line h3 { min-width:0; overflow:hidden; text-overflow:ellipsis; margin:0; color:var(--text-primary); font-size:13px; white-space:nowrap; }
.submission-meta { display:flex; flex-wrap:wrap; gap:5px 13px; margin-top:6px; color:var(--text-muted); font-size:9.5px; }.submission-meta span { display:inline-flex; align-items:center; gap:5px; }.submission-meta b { color:var(--text-secondary); font-weight:600; }.submission-meta .chain-icon-img { width:13px; height:13px; }
.rejection-note { display:flex; gap:7px; margin-top:8px; padding:7px 9px; border-radius:9px; color:var(--accent-rose); background:color-mix(in srgb,var(--accent-rose) 7%,transparent); font-size:10px; }
.submissions-toggle { min-height:38px; margin-top:8px; border:1px solid var(--border-subtle); border-radius:10px; color:var(--text-secondary); background:var(--bg-surface-2); font:650 11px/1 var(--font-sans); cursor:pointer; }
.empty-state p { max-width:390px; }
dialog.username-dialog { width:min(510px,calc(100% - 28px)); max-height:calc(100dvh - 28px); margin:auto; border-radius:19px; }.dialog-accent { height:3px; background:linear-gradient(90deg,var(--app-violet),var(--app-blue)); }
.username-dialog .dialog-footer .btn.frost-btn { --btn-height:36px; --btn-radius:var(--radius-md); --btn-pad-x:12px; width:min(112px,calc((100% - 10px)/2)); flex:0 0 auto; gap:8px; font:600 13px var(--font-sans); letter-spacing:normal; }
.username-field { height:42px; gap:5px; margin-top:7px; padding:0 12px; }
#username-dialog .username-field { --search-focus-shadow:var(--search-shadow); }
#username-dialog .username-field input { font:600 13px/1 var(--font-sans); }
.field-help { margin-top:9px; color:var(--text-muted); font-size:10px; }
@media (prefers-reduced-motion:reduce) { .loading-mark { animation-duration:1.5s; } }
.avatar-frame { position:relative; }
.avatar-frame .avatar-edit { position:absolute; right:-5px; bottom:-5px; width:32px; height:32px; border-radius:50%; color:var(--text-primary); background:var(--bg-surface-2); font-size:13px; box-shadow:0 2px 8px #0003; }
.avatar-dialog { width:min(388px,calc(100% - 24px)); max-height:calc(100dvh - 24px); margin:auto; border-radius:var(--radius-lg); }
.avatar-dialog .dialog-header { padding:16px 20px; }
.avatar-dialog .dialog-header h2 { font-size:18px; }
.avatar-dialog .dialog-body { padding:16px 20px; overflow:auto; }
.image-crop { position:relative; width:100%; aspect-ratio:1; overflow:hidden; border-radius:var(--crop-radius,0); background:var(--bg-surface-2); touch-action:none; user-select:none; contain:layout paint; }
.image-crop--avatar { --crop-radius:20px; }
.image-crop::after { content:''; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px var(--border-subtle); pointer-events:none; }
.image-crop img { position:absolute; left:0; top:0; max-width:none; transform-origin:0 0; pointer-events:none; }
.image-crop img[hidden],.image-crop-loading[hidden] { display:none; }
.image-crop:has(img:not([hidden])) { cursor:grab; }
.image-crop.is-dragging { cursor:grabbing; }
.image-crop-loading { position:absolute; inset:0; display:grid; place-items:center; color:var(--text-muted); font-size:12px; }
#avatar-preview:focus-visible { outline:2px solid var(--accent-violet); outline-offset:3px; }
#avatar-zoom { display:block; width:100%; min-height:36px; accent-color:var(--accent-violet); }
.avatar-dialog .dialog-footer { padding:12px 20px; }
.avatar-dialog .btn.frost-btn { --btn-height:36px; min-height:36px; min-width:96px; padding:7px 16px; border-radius:var(--radius-md); font-size:12px; }
.avatar-dialog[open] { animation:avatar-dialog-in 140ms ease-out; }
.avatar-dialog[open]::backdrop { animation:avatar-backdrop-in 140ms ease-out; }
.avatar-dialog.is-closing { animation:avatar-dialog-out 140ms ease-in both; }
.avatar-dialog.is-closing::backdrop { animation:avatar-backdrop-out 140ms ease-in both; }
@keyframes avatar-dialog-in { from { opacity:0; } to { opacity:1; } }
@keyframes avatar-dialog-out { to { opacity:0; } }
@keyframes avatar-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes avatar-backdrop-out { to { opacity:0; } }
