/* Wash user auth. Generated from the final legacy cascade; edit this module only. */
.wash-user-page .wash-form-tip,.wash-user-page .wash-msg { margin-top: var(--space-2); }

.wash-user-page,.wash-user-page * { margin: 0; padding: 0; box-sizing: border-box; }

.wash-user-page { font-family: var(--font-sans); color: var(--color-text); margin: 0 auto; padding: 0; max-width: calc(var(--container-max) - 2 * var(--space-2)); }

.wash-user-page .wash-user-header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-2) 0; margin-bottom: var(--space-4); }

.wash-user-page .wash-form-row,.wash-user-page .wash-user-nav { display: flex; align-items: center; gap: var(--space-2); }

.wash-user-page .wash-user-logo { font-size: 1.25rem; font-weight: 700; color: var(--color-text); text-decoration: none; }

.wash-user-page .wash-form-group label,.wash-user-page .wash-form-tip,.wash-user-page .wash-user-nav a { color: var(--color-text-secondary); }

.wash-user-page .wash-user-nav a { text-decoration: none; font-size: .875rem; }

.wash-user-page .wash-user-nav a:hover { color: var(--color-primary); }

.wash-user-page .wash-form-group input[type=email],.wash-user-page .wash-form-group input[type=password],.wash-user-page .wash-form-group input[type=text],.wash-user-page .wash-form-group textarea { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); outline: 0; transition: border-color var(--transition-fast),box-shadow var(--transition-fast); }

.wash-user-page .wash-form-group input:focus,.wash-user-page .wash-form-group textarea:focus { border-color: var(--mc-green); box-shadow: 0 0 0 3px var(--mc-green-soft); }

.wash-user-page .wash-form-tip a { color: var(--mc-blue-deep); font-weight: 600; text-decoration: none; }

.wash-user-page .wash-btn-primary { display: block; width: 100%; padding: 12px; background: var(--color-primary); color: #fff; border: none; border-radius: var(--radius-sm); font-size: 1rem; font-weight: 600; cursor: pointer; }

.wash-user-page .wash-btn-primary:hover { background: var(--color-primary-hover); box-shadow: var(--shadow-md); transform: translateY(-1px); }

.wash-user-page .wash-btn-outline { padding: 8px 16px; background: 0 0; color: var(--color-text-secondary); border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: .875rem; cursor: pointer; transition: all var(--transition-fast); }

.wash-user-page .wash-btn-outline:hover { border-color: var(--color-primary); color: var(--color-primary); }

.wash-user-page .wash-msg { font-size: .875rem; text-align: center; min-height: 20px; }

.wash-user-page .wash-msg.error { color: var(--color-danger); }

.wash-user-page .wash-msg.success { color: var(--color-accent); }

.wash-user-page .wash-empty { text-align: center; color: var(--color-text-tertiary); padding: var(--space-4) 0; }

.wash-user-page .wash-theme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: none; background: 0 0; border-radius: var(--radius-full); cursor: pointer; color: var(--color-text-secondary); transition: background var(--transition-fast); }

.wash-user-page .wash-cal-cell,.wash-user-page .wash-theme-toggle:hover { background: var(--color-surface-hover); }

.wash-user-page .wash-theme-toggle svg { width: 20px; height: 20px; fill: currentColor; }

.wash-user-page .wash-btn-primary { transition: background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast); }

.wash-user-page .wash-btn-primary:active { transform: scale(.98); }

.wash-user-page .wash-user-nav .wash-theme-toggle { border: 1px solid var(--color-border); background: var(--color-surface); }

.wash-user-page .wash-user-nav .wash-theme-toggle:hover { border-color: var(--color-primary); background: var(--color-surface-hover); }

.wash-user-page #view-login,.wash-user-page #view-register { max-width: 480px; margin: 0 auto; }

.wash-user-page .wash-user-view[hidden] { display: none; }

.wash-user-page .wash-auth-sub { text-align: center; color: var(--color-text-secondary); font-size: .875rem; margin: 2px 0 var(--space-2); }

.wash-user-page .wash-form-tip { text-align: center; font-size: .875rem; color: var(--color-text-secondary); margin: var(--space-2) 0 0; }

.wash-user-page .wash-form-tip a:hover { text-decoration: underline; }

.wash-user-page .wash-checkin-top { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }

.wash-user-page .wash-checkin-stat { font-size: .875rem; color: var(--color-text-secondary); }

.wash-user-page .wash-cal-nav { display: flex; align-items: center; justify-content: space-between; margin: var(--space-2) 0; }

.wash-user-page .wash-cal-title { font-weight: 600; color: var(--color-text); }

.wash-user-page .wash-cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 4px; }

.wash-user-page .wash-cal-head { text-align: center; font-size: .75rem; color: var(--color-text-tertiary); padding: 4px 0; }

.wash-user-page .wash-cal-cell { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; font-size: .8125rem; border-radius: var(--radius-sm); color: var(--color-text-secondary); }

.wash-user-page .wash-cal-cell.is-blank { background: 0 0; }

.wash-user-page .wash-cal-cell.signed { background: var(--mc-green-soft); color: var(--mc-green-deep); font-weight: 600; }

.wash-user-page .wash-cal-cell.today { box-shadow: 0 0 0 2px var(--mc-blue); }

.wash-user-page .wash-completion { margin-bottom: var(--space-2); display: flex; align-items: center; gap: var(--space-1); padding: var(--space-2); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); }

.wash-user-page .wash-completion-text { font-size: .75rem; color: var(--color-text-tertiary); white-space: nowrap; }

.wash-user-page .wash-completion-bar { flex: 1; height: 6px; border-radius: var(--radius-full); background: var(--color-surface-hover); overflow: hidden; }

.wash-user-page .wash-completion-bar i { display: block; height: 100%; width: 0; border-radius: var(--radius-full); background: linear-gradient(90deg,var(--mc-green),var(--mc-blue)); transition: width .4s; }

.wash-user-page .wash-form-group { margin-bottom: var(--space-2); }

.wash-user-page .wash-form-group label { display: block; font-size: .8125rem; font-weight: 600; color: var(--color-text); margin-bottom: 6px; }

.wash-user-page .wash-form-group input[type=email],.wash-user-page .wash-form-group input[type=password],.wash-user-page .wash-form-group input[type=text],.wash-user-page .wash-form-group select,.wash-user-page .wash-form-group textarea { width: 100%; min-height: 40px; height: auto; padding: 9px 14px; line-height: 1.4; box-sizing: border-box; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-text); font-size: .9375rem; transition: border-color var(--transition-fast),box-shadow var(--transition-fast); }

.wash-user-page .wash-form-group textarea { min-height: 84px; resize: vertical; }

.wash-user-page .wash-form-group input:focus,.wash-user-page .wash-form-group select:focus,.wash-user-page .wash-form-group textarea:focus { outline: 0; border-color: var(--mc-blue); box-shadow: 0 0 0 3px var(--mc-blue-soft); }

.wash-user-page .wash-form-group input[readonly] { background: var(--color-surface-hover); color: var(--color-text-secondary); }

.wash-user-page .wash-form-actions { display: flex; gap: var(--space-1); align-items: center; margin-top: var(--space-1); }

.wash-user-page .wash-form-actions .wash-btn-outline,.wash-user-page .wash-form-actions .wash-btn-primary { flex: 1; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; width: auto; }

.wash-user-page .wash-code-inline { display: flex; gap: var(--space-1); align-items: center; }

.wash-user-page .wash-code-inline input { flex: 1; min-width: 0; }

.wash-user-page .wash-code-inline .wash-btn-outline { flex-shrink: 0; min-width: 112px; white-space: nowrap; }

.wash-user-page #view-forgot:not([hidden]),.wash-user-page #view-login:not([hidden]),.wash-user-page #view-register:not([hidden]) { display: flex; align-items: center; justify-content: center; min-height: min(62vh,640px); }

.wash-user-page #view-login .wash-user-card,.wash-user-page #view-register .wash-user-card { width: 100%; max-width: 420px; }

.wash-user-page #pf-avatar-preview { position: relative; width: 96px; height: 96px; cursor: pointer; transition: box-shadow var(--transition-fast); }

.wash-user-page #pf-avatar-preview:hover { box-shadow: 0 0 0 4px var(--mc-blue-soft); }
