/* Hallmark · pre-emit critique: P4 H4 E4 S5 R5 V4 · existing LumHub tokens */
.account-dashboard{--profile-accent:var(--color-accent);margin-block:var(--space-xl);min-width:0}
.auth-workspace [data-auth-signed-in]{max-width:none}.profile-photo img[hidden]{display:none}
.account-dashboard[data-accent=blue]{--profile-accent:var(--color-focus)}.account-dashboard[data-accent=green]{--profile-accent:var(--color-success)}.account-dashboard[data-accent=purple]{--profile-accent:var(--color-art-purple)}
.profile-masthead{display:flex;align-items:center;gap:var(--space-lg);padding-block:var(--space-xl);border-block:1px solid var(--color-rule)}
.profile-masthead h2{font:500 clamp(1.7rem,4vw,3rem)/1.1 var(--font-display);margin:0;overflow-wrap:anywhere}.profile-masthead p{color:var(--color-muted)}
.profile-photo{flex:none;display:grid;place-items:center;width:112px;height:112px;border-radius:50%;background:var(--color-soft);border:3px solid var(--profile-accent);overflow:hidden}.profile-photo img{object-fit:cover}.profile-photo span{font:500 3rem var(--font-display)}
.profile-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-3xl);padding-top:var(--space-xl)}
.profile-editor{min-width:0}.account-dashboard form,.suggestion-box form{display:grid;gap:var(--space-md)}
.account-dashboard label,.suggestion-box label{display:grid;gap:var(--space-sm);font-weight:500}
.account-dashboard button.text-link,.module-account button.text-link{background:none;border:0;color:var(--color-accent);font:inherit;text-decoration:underline;cursor:pointer;padding:var(--space-sm) 0;text-align:start}.account-dashboard fieldset{border:1px solid var(--color-rule);border-radius:var(--radius-sm);padding:var(--space-md)}.account-dashboard button:disabled{opacity:.55;cursor:wait}
.account-dashboard input:not([type=radio]):not([type=file]),.account-dashboard textarea,.account-dashboard select,.suggestion-box textarea,.suggestion-box select{box-sizing:border-box;width:100%;max-width:100%;padding:12px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);color:var(--color-ink);background:var(--color-surface);font:inherit}
.account-dashboard :is(input,select,textarea,button):focus-visible,.suggestion-box :is(textarea,select,button,summary):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.profile-swatches{display:flex;flex-wrap:wrap;gap:var(--space-md)}.profile-swatches label{display:flex;align-items:center;font-size:var(--text-sm)}.profile-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}
.profile-photo-tools{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--color-rule)}.profile-photo-tools input[type=file]{width:100%;font-size:var(--text-sm)}.profile-photo-tools .button{margin:var(--space-sm) 0;max-width:100%;font-size:var(--text-sm);white-space:nowrap}
.profile-records section{border-top:1px solid var(--color-rule);padding-block:var(--space-md)}.profile-records ul{list-style:none;padding:0}.profile-records li{padding:var(--space-md) 0;border-bottom:1px solid var(--color-rule);overflow-wrap:anywhere}.profile-records li a{font-weight:600}.profile-records time{display:block;color:var(--color-muted);font-size:var(--text-sm)}
.module-account{margin-block:var(--space-xl);border-top:1px solid var(--color-rule);padding-block:var(--space-lg);font-size:var(--text-sm)}.sync-line{display:flex;gap:var(--space-md);align-items:center;justify-content:space-between;flex-wrap:wrap}.sync-line p{color:var(--color-muted)}
.suggestion-box{max-width:640px;margin-top:var(--space-md)}.suggestion-box summary{cursor:pointer;font-weight:600;padding-block:var(--space-sm)}.suggestion-box p{color:var(--color-muted)}.suggestion-box button{justify-self:start}.module-account [hidden],.account-dashboard [hidden]{display:none!important}
[data-camera-dialog]{max-width:min(90vw,640px);background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-rule);border-radius:var(--radius-md);padding:var(--space-md)}[data-camera-dialog] video{width:100%;max-height:60vh;object-fit:contain}[data-camera-dialog]::backdrop{background:var(--color-dark);opacity:.8}
@media(max-width:768px){.profile-columns{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.profile-masthead{align-items:flex-start;flex-direction:column}.profile-selects{grid-template-columns:minmax(0,1fr)}.account-dashboard .button,.module-account .button{font-size:var(--text-sm);padding-inline:14px;white-space:nowrap}.profile-masthead h2{max-width:100%}}

.information.account-space{max-width:1200px;width:min(1200px,100% - 40px)}

/* Etapa 5A · favoritos: botón de la página de módulo y sección de la cuenta. Solo tokens del sistema. */
.module-favorite{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding-block:var(--space-sm);font-size:var(--text-sm)}
.favorite-link,.favorite-toggle{display:inline-flex;align-items:center;gap:var(--space-sm);min-height:44px;padding:8px 14px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);font:inherit;font-size:var(--text-sm);font-weight:500;line-height:1.2;text-decoration:none;cursor:pointer}
.favorite-link svg,.favorite-toggle svg{flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.favorite-toggle[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent)}.favorite-toggle[aria-pressed=true] svg{fill:currentColor}
.favorite-link:hover,.favorite-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}.favorite-toggle:disabled{opacity:.55;cursor:wait}
.favorite-link:focus-visible,.favorite-toggle:focus-visible,.favorite-open:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
.favorite-open{display:inline-flex;align-items:center;min-height:44px}.favorite-status{margin:0;color:var(--color-muted)}.favorite-status:empty{display:none}.module-favorite [hidden]{display:none!important}
.profile-save svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.favorites-count{color:var(--color-muted);font-size:var(--text-sm)}.favorites-count:empty{display:none}
.profile-records .favorites-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"kind kind" "name remove" "time remove";gap:2px var(--space-md);align-items:center}
.favorites-list .favorite-kind{grid-area:kind;color:var(--color-muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.favorites-list li>:nth-child(2){grid-area:name;min-width:0}.favorites-list time{grid-area:time}.favorites-list button{grid-area:remove;min-height:44px;min-width:44px}
.favorite-gone{color:var(--color-muted);font-style:italic}
.favorite-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);margin-top:var(--space-md)}.favorite-actions .button{font-size:var(--text-sm);padding-inline:14px}.favorite-actions button.text-link{min-height:44px;display:inline-flex;align-items:center}
.favorite-pending{margin-block:var(--space-md);padding:var(--space-md);border:1px solid var(--color-accent-line);border-inline-start:4px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface)}.favorite-pending p{margin:0 0 var(--space-sm);font-weight:600;overflow-wrap:anywhere}.favorite-pending div{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
/* Etapa 5B · Mi progreso */
.profile-progress h4{margin:var(--space-lg) 0 var(--space-xs);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}
.profile-progress [data-progress-status]:empty{display:none}
.profile-records .progress-list li{display:grid;gap:var(--space-xs)}
.progress-head a{font-weight:600}.progress-detail{margin:0;color:var(--color-muted);font-size:var(--text-sm)}
.profile-records .progress-detail a{font-weight:600;color:var(--color-accent-strong);display:inline-flex;align-items:center;min-height:44px}
.progress-course progress{appearance:none;-webkit-appearance:none;width:100%;height:10px;border:1px solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}
.progress-course progress::-webkit-progress-bar{background:var(--color-surface)}.progress-course progress::-webkit-progress-value{background:var(--color-accent-strong)}.progress-course progress::-moz-progress-bar{background:var(--color-accent-strong)}
.profile-records .progress-updated{display:block;color:var(--color-muted);font-size:var(--text-sm)}
.progress-records{display:grid;gap:var(--space-2xs);margin:0}.progress-records div{display:flex;justify-content:space-between;gap:var(--space-md);font-size:var(--text-sm)}.progress-records dt{color:var(--color-muted)}.progress-records dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;text-align:end}
/* Etapa 5C · Logros y racha */
.profile-recognition h4{margin:var(--space-lg) 0 var(--space-xs);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}
.profile-recognition [data-recognition-status]:empty{display:none}.recognition-block{min-width:0}
.recognition-note{margin:0 0 var(--space-xs);color:var(--color-muted);font-size:var(--text-sm)}
.recognition-streak{margin:0 0 var(--space-xs);font:500 var(--text-md)/1.3 var(--font-display);overflow-wrap:anywhere}
.profile-records .recognition-list li{display:grid;gap:var(--space-2xs);border-inline-start:4px solid var(--color-rule);padding-inline-start:var(--space-md)}
.profile-records .recognition-list li.is-earned{border-inline-start-color:var(--color-accent-strong)}
.recognition-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--space-xs) var(--space-md)}.recognition-head strong{overflow-wrap:anywhere}
.recognition-state{font-size:var(--text-sm);color:var(--color-muted)}.is-earned .recognition-state{color:var(--color-accent-strong);font-weight:600}
.profile-records .recognition-when{display:block;color:var(--color-muted);font-size:var(--text-sm)}
.recognition-list+.recognition-toggle{margin-top:var(--space-sm)}.profile-recognition button.recognition-toggle{min-height:44px;display:inline-flex;align-items:center}
