/* LimpMedi — estilos dos componentes. Carregue depois de tokens.css. */
body { margin: 0; font-family: var(--font-sans); font-size: 16px; line-height: 24px; background: var(--surface); color: var(--ink); -webkit-font-smoothing: antialiased; }
.lm-logo { display: block; flex: none; }
.lm-icon { display: inline-block; flex: none; vertical-align: middle; }
.lm-link { color: var(--link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.lm-link:hover { text-decoration-thickness: 2px; }
.lm-link:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); border-radius: 2px; }

/* Button */
.lm-btn { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: var(--control-md); padding: 0 var(--space-5); border: 1.5px solid transparent; border-radius: var(--radius-md); font: inherit; font-size: 15px; font-weight: 600; line-height: 20px; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; }
.lm-btn--sm { height: var(--control-sm); padding: 0 var(--space-3); font-size: 14px; }
.lm-btn--lg { height: var(--control-lg); padding: 0 var(--space-6); font-size: 16px; }
.lm-btn--block { display: flex; width: 100%; }
.lm-btn--primary { background: var(--action); color: var(--on-action); }
.lm-btn--primary:hover { background: var(--action-hover); }
.lm-btn--secondary { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.lm-btn--secondary:hover { border-color: var(--ink); background: var(--surface-alt); }
.lm-btn--ghost { background: transparent; color: var(--ink); padding: 0 var(--space-3); }
.lm-btn--ghost:hover { background: var(--surface-alt); }
.lm-btn:focus-visible { outline: 2px solid transparent; outline-offset: 2px; box-shadow: var(--focus-ring); }
.lm-btn:disabled, .lm-btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }

/* Tag */
.lm-tag { box-sizing: border-box; display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 var(--space-2); border-radius: var(--radius-sm); font-size: 13px; line-height: 16px; font-weight: 600; white-space: nowrap; }
.lm-tag--conforme { background: var(--success-soft); color: var(--success); }
.lm-tag--pendente { background: var(--warning-soft); color: var(--warning); }
.lm-tag--atrasado { background: var(--danger-soft); color: var(--danger); }
.lm-tag--info { background: var(--info-soft); color: var(--info); }
.lm-tag--neutro { background: var(--info-soft); color: var(--ink); }
.lm-tag--marca { background: var(--accent-soft); color: var(--accent-ink); }

/* Card */
.lm-card { box-sizing: border-box; position: relative; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-raised); color: var(--ink); box-shadow: var(--shadow-sm); overflow: hidden; text-decoration: none; }
.lm-card--destaque { background: var(--surface); border-color: var(--surface); padding: var(--space-8); }
.lm-card--destaque .lm-card__title { padding-right: var(--space-12); }
.lm-card--link { transition: box-shadow .15s, border-color .15s; }
.lm-card--link:hover { box-shadow: var(--shadow-md); border-color: var(--line-strong); }
.lm-card--link:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }
.lm-card__arc { position: absolute; top: 0; right: 0; width: 72px; height: 72px; background: radial-gradient(circle at 0 100%, transparent 71.5px, var(--accent) 72px); }
.lm-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); background: var(--accent-soft); color: var(--accent-ink); }
.lm-card__eyebrow { margin: 0; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); }
.lm-card__title { margin: 0; font-size: 22px; line-height: 28px; font-weight: 600; color: var(--ink); }
.lm-card__body { font-size: 16px; line-height: 24px; color: var(--ink-muted); }
.lm-card__body p { margin: 0 0 var(--space-3); }
.lm-card__body > :last-child { margin-bottom: 0; }
.lm-card__footer { margin-top: auto; padding-top: var(--space-2); }

/* Field */
.lm-field { display: flex; flex-direction: column; gap: 6px; }
.lm-field__label { font-size: 14px; line-height: 20px; font-weight: 500; color: var(--ink); }
.lm-field__req { color: var(--danger); }
.lm-field__control { box-sizing: border-box; width: 100%; min-height: var(--control-md); margin: 0; padding: 7px var(--space-3); border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: var(--surface-raised); color: var(--ink); font: inherit; font-size: 16px; line-height: 24px; -webkit-appearance: none; appearance: none; }
.lm-field__control::placeholder { color: var(--ink-muted); opacity: 1; }
.lm-field__control:hover { border-color: var(--ink); }
.lm-field__control:focus-visible { outline: 2px solid transparent; border-color: var(--focus); box-shadow: var(--focus-ring); }
textarea.lm-field__control { resize: vertical; }
.lm-field__select { position: relative; display: block; }
.lm-field__select .lm-field__control { padding-right: 40px; }
.lm-field__chev { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); color: var(--ink-muted); pointer-events: none; }
.lm-field__hint { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.lm-field__error { display: flex; gap: 6px; align-items: flex-start; margin: 0; font-size: 14px; line-height: 20px; font-weight: 500; color: var(--danger); }
.lm-field__error .lm-icon { margin-top: 2px; }
.lm-field--error .lm-field__control { border: 2px solid var(--danger); padding: 6px 11px; }

/* Checklist */
.lm-checklist { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.lm-check { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); list-style: none; }
.lm-check__main { min-width: 0; }
.lm-check__req { margin: 0; font-size: 15px; line-height: 22px; font-weight: 500; color: var(--ink); }
.lm-check__ref { margin: 2px 0 0; font-size: 12px; line-height: 16px; font-weight: 500; letter-spacing: .01em; color: var(--ink-muted); }
.lm-check__note { margin: var(--space-1) 0 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }

/* RoomPlate — peça impressa: força o tema claro (papel branco) e o marinho só no cabeçalho */
.lm-plate { box-sizing: border-box; width: 280px; margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); color: var(--ink); box-shadow: var(--shadow-sm); font-family: var(--font-sans); }
.lm-plate__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-4); background: var(--surface); color: var(--ink); }
.lm-plate__code { font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: .04em; font-variant-numeric: tabular-nums; color: var(--accent-ink); }
.lm-plate__body { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-5) var(--space-5) var(--space-6); text-align: center; }
.lm-plate__class { margin: 0; font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
.lm-plate__room { margin: 0; font-size: 26px; line-height: 30px; font-weight: 700; color: var(--ink); }
.lm-plate__client { margin: 0; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.lm-plate__qr { margin: var(--space-3) 0 var(--space-2); padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.lm-plate__qr img, .lm-plate__qr svg { display: block; width: 150px; height: 150px; }
.lm-plate__cta { max-width: 220px; margin: 0; font-size: 13px; line-height: 18px; color: var(--ink-muted); }

/* SiteHeader */
.lm-header { box-sizing: border-box; display: flex; align-items: center; gap: var(--space-8); padding: var(--space-4) var(--space-10); border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.lm-header__brand { display: inline-flex; margin-right: auto; border-radius: var(--radius-sm); }
.lm-header__brand:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); }
.lm-header__nav { display: flex; gap: var(--space-6); }
.lm-header__link { padding: var(--space-2) 0; border-bottom: 2px solid transparent; color: var(--ink); font-size: 15px; line-height: 20px; font-weight: 500; text-decoration: none; }
.lm-header__link:hover { border-bottom-color: var(--line-strong); }
.lm-header__link[aria-current="page"] { border-bottom-color: var(--accent-ink); }
.lm-header__link:focus-visible { outline: 2px solid transparent; box-shadow: var(--focus-ring); border-radius: 2px; }
@media (max-width: 720px) {
  .lm-header { gap: var(--space-4); padding: var(--space-3) var(--space-4); }
  .lm-header__nav { display: none; }
}

/* Padrões de fundo — a cor vem de pattern-ink e segue o tema; o elemento define o próprio fundo */
.lm-pattern { position: relative; isolation: isolate; --lm-pattern-ink: var(--pattern-ink); }
.lm-pattern::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit; background-color: var(--lm-pattern-ink); -webkit-mask-image: var(--lm-pattern-tile); mask-image: var(--lm-pattern-tile); -webkit-mask-size: var(--lm-pattern-size); mask-size: var(--lm-pattern-size); -webkit-mask-repeat: repeat; mask-repeat: repeat; -webkit-mask-position: var(--lm-pattern-pos, 0 0); mask-position: var(--lm-pattern-pos, 0 0); }
.lm-pattern--estrelas { --lm-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2248%22 height=%2248%22 viewBox=%220 0 48 48%22%3E%3Cpath fill=%22%23000%22 d=%22M16.2 12A4.65 4.65 0 0 0 12 16.2A4.65 4.65 0 0 0 7.8 12A4.65 4.65 0 0 0 12 7.8A4.65 4.65 0 0 0 16.2 12ZM40.2 36A4.65 4.65 0 0 0 36 40.2A4.65 4.65 0 0 0 31.8 36A4.65 4.65 0 0 0 36 31.8A4.65 4.65 0 0 0 40.2 36Z%22/%3E%3C/svg%3E"); --lm-pattern-size: 48px 48px; }
.lm-pattern--gotas { --lm-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2256%22 height=%2256%22 viewBox=%220 0 56 56%22%3E%3Cpath fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linejoin=%22round%22 d=%22M14 6.5L18.46 13.07A5.4 5.4 0 1 1 9.54 13.07ZM42 34.5L46.46 41.07A5.4 5.4 0 1 1 37.54 41.07Z%22/%3E%3C/svg%3E"); --lm-pattern-size: 56px 56px; }
.lm-pattern--arcos { --lm-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2280%22 height=%2280%22 viewBox=%220 0 80 80%22%3E%3Cg fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22%3E%3Cpath d=%22M20 80A20 20 0 0 0 0 60%22/%3E%3Cpath d=%22M40 80A40 40 0 0 0 0 40%22/%3E%3Cpath d=%22M60 80A60 60 0 0 0 0 20%22/%3E%3Cpath d=%22M80 80A80 80 0 0 0 0 0%22/%3E%3C/g%3E%3C/svg%3E"); --lm-pattern-size: 80px 80px; }
.lm-pattern--pontos { --lm-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2216%22 height=%2216%22 viewBox=%220 0 16 16%22%3E%3Ccircle cx=%228%22 cy=%228%22 r=%221.6%22 fill=%22%23000%22/%3E%3C/svg%3E"); --lm-pattern-size: 16px 16px; }
.lm-pattern--grade { --lm-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2240%22 height=%2240%22 viewBox=%220 0 40 40%22%3E%3Cpath fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 d=%22M20 16v8M16 20h8%22/%3E%3C/svg%3E"); --lm-pattern-size: 40px 40px; }
.lm-pattern--menta { background-color: var(--accent); color: var(--on-accent); --lm-pattern-ink: var(--pattern-ink-accent); }
.lm-pattern--fade-direita { --lm-pattern-fade: linear-gradient(to right, transparent 35%, #000 100%); }
.lm-pattern--fade-esquerda { --lm-pattern-fade: linear-gradient(to left, transparent 35%, #000 100%); }
.lm-pattern--fade-baixo { --lm-pattern-fade: linear-gradient(to bottom, transparent 30%, #000 100%); }
.lm-pattern--fade-canto { --lm-pattern-fade: radial-gradient(circle at 100% 0, #000 0, transparent 65%); }
.lm-pattern--fade-direita::before, .lm-pattern--fade-esquerda::before, .lm-pattern--fade-baixo::before, .lm-pattern--fade-canto::before { -webkit-mask-image: var(--lm-pattern-tile), var(--lm-pattern-fade); mask-image: var(--lm-pattern-tile), var(--lm-pattern-fade); -webkit-mask-size: var(--lm-pattern-size), 100% 100%; mask-size: var(--lm-pattern-size), 100% 100%; -webkit-mask-repeat: repeat, no-repeat; mask-repeat: repeat, no-repeat; -webkit-mask-composite: source-in; mask-composite: intersect; }

/* IconBadge */
.lm-icon-badge { box-sizing: border-box; display: inline-flex; flex: none; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); }
.lm-icon-badge--sm { width: 32px; height: 32px; border-radius: var(--radius-sm); }
.lm-icon-badge--lg { width: 56px; height: 56px; border-radius: var(--radius-lg); }
.lm-icon-badge--circulo { border-radius: 50%; }
.lm-icon-badge--suave { background: var(--accent-soft); color: var(--accent-ink); }
.lm-icon-badge--marca { background: var(--brand-fill); color: var(--menta-500); }
.lm-icon-badge--menta { background: var(--accent); color: var(--on-accent); }
.lm-icon-badge--contorno { border: 1.5px solid var(--line-strong); background: transparent; color: var(--ink); }
