/* Receitas demonstrativas. Este arquivo não substitui COMPONENTS.md nem é uma biblioteca completa. */
* { box-sizing: border-box; }
html { font-size:100%; }
body { margin:0; font-family:var(--lf-primitive-font-family-ui); font-synthesis:none; font-size:var(--lf-semantic-type-body-size); line-height:var(--lf-semantic-type-body-line); color:var(--lf-semantic-color-text-primary); background:var(--lf-semantic-color-background-canvas); }
button, input, textarea, select { font:inherit; }
button { cursor:pointer; }
button:disabled, [aria-disabled="true"] { cursor:default; }
a { color:var(--lf-semantic-color-link-default); text-underline-offset:3px; }
a:hover { color:var(--lf-semantic-color-link-hover); }
:where(a,button,input,select,textarea,[tabindex]):focus-visible { outline:var(--lf-semantic-focus-width) solid var(--lf-semantic-color-focus-ring); outline-offset:var(--lf-semantic-focus-offset); }
h1,h2,h3,h4,p { margin:0; }
h1 { font-size:var(--lf-semantic-type-h1-size); line-height:var(--lf-semantic-type-h1-line); font-weight:var(--lf-semantic-type-h1-weight); letter-spacing:var(--lf-semantic-type-h1-tracking); }
h2 { font-size:var(--lf-semantic-type-h2-size); line-height:var(--lf-semantic-type-h2-line); font-weight:var(--lf-semantic-type-h2-weight); letter-spacing:var(--lf-semantic-type-h2-tracking); }
h3 { font-size:var(--lf-semantic-type-h3-size); line-height:var(--lf-semantic-type-h3-line); font-weight:var(--lf-semantic-type-h3-weight); letter-spacing:var(--lf-semantic-type-h3-tracking); }
h4 { font-size:var(--lf-semantic-type-h4-size); line-height:var(--lf-semantic-type-h4-line); font-weight:600; }
.lf-small { font-size:var(--lf-semantic-type-small-size); line-height:var(--lf-semantic-type-small-line); }
.lf-muted { color:var(--lf-semantic-color-text-secondary); }
.lf-brand-text { color:var(--lf-semantic-color-text-brand); }
.lf-stack { display:grid; gap:var(--lf-semantic-space-stack-md); }
.lf-row { display:flex; gap:var(--lf-semantic-space-inline-sm); align-items:center; flex-wrap:wrap; }
.lf-button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; min-height:var(--lf-component-button-md-height); gap:var(--lf-component-button-gap); padding:var(--lf-primitive-space-8) var(--lf-component-button-md-padding-x); border-radius:var(--lf-component-button-radius); border:1px solid transparent; color:var(--lf-component-button-primary-default-foreground); background-color:var(--lf-component-button-primary-default-background); background-image:var(--lf-component-button-primary-default-gradient); font-size:var(--lf-semantic-type-label-size); line-height:var(--lf-semantic-type-label-line); font-weight:600; transition:background-color var(--lf-semantic-motion-fast) var(--lf-semantic-motion-easing); }
@media(hover:hover) { .lf-button:not(:disabled):not([aria-disabled="true"]):hover { color:var(--lf-semantic-color-text-on-brand); background-color:var(--lf-component-button-primary-hover-background); background-image:var(--lf-component-button-primary-hover-gradient); } }
.lf-button:not(:disabled):not([aria-disabled="true"]):active { background-color:var(--lf-component-button-primary-pressed-background); background-image:var(--lf-component-button-primary-pressed-gradient); }
.lf-button.secondary { background-image:none; background-color:var(--lf-component-button-secondary-default-background); color:var(--lf-component-button-secondary-default-foreground); border-color:var(--lf-component-button-secondary-default-border); }
@media(hover:hover) { .lf-button.secondary:not(:disabled):not([aria-disabled="true"]):hover { background-image:none; background-color:var(--lf-component-button-secondary-hover-background); color:var(--lf-component-button-secondary-hover-foreground); border-color:var(--lf-component-button-secondary-hover-border); } }
.lf-button.secondary:not(:disabled):not([aria-disabled="true"]):active { background-image:none; background-color:var(--lf-component-button-secondary-pressed-background); }
.lf-button:disabled, .lf-button[aria-disabled="true"] { background-image:none; background-color:var(--lf-component-button-disabled-background); color:var(--lf-component-button-disabled-foreground); border-color:var(--lf-component-button-disabled-border); }
.lf-card { background:var(--lf-component-card-background); border:1px solid var(--lf-component-card-border); border-radius:var(--lf-component-card-radius); padding:var(--lf-component-card-padding); }
.lf-badge { display:inline-flex; align-items:center; gap:var(--lf-primitive-space-4); padding:var(--lf-component-badge-padding-y) var(--lf-component-badge-padding-x); border:1px solid var(--lf-semantic-color-border-control); border-radius:var(--lf-component-badge-radius); font-size:var(--lf-semantic-type-caption-size); line-height:var(--lf-semantic-type-caption-line); color:var(--lf-semantic-color-text-secondary); width:fit-content; }
.lf-badge.review { color:var(--lf-semantic-color-status-review-text); border-color:var(--lf-semantic-color-status-review-border); background:var(--lf-semantic-color-status-review-background); }
.lf-badge.success { color:var(--lf-semantic-color-status-success-text); border-color:var(--lf-semantic-color-status-success-border); background:var(--lf-semantic-color-status-success-background); }
.lf-field { display:grid; gap:var(--lf-component-field-label-gap); }
.lf-field label { font-size:var(--lf-semantic-type-label-size); line-height:var(--lf-semantic-type-label-line); font-weight:600; }
.lf-input { display:block; width:100%; min-height:var(--lf-component-field-height); padding:var(--lf-primitive-space-8) var(--lf-component-field-padding-x); border:1px solid var(--lf-component-field-border); border-radius:var(--lf-component-field-radius); color:var(--lf-component-field-foreground); background:var(--lf-component-field-background); font-size:1rem; line-height:1.5rem; }
.lf-input::placeholder { color:var(--lf-component-field-placeholder); opacity:1; }
.lf-input:hover:not(:disabled) { border-color:var(--lf-component-field-hover-border); }
.lf-input:focus { border-color:var(--lf-component-field-focus-border); }
.lf-input[aria-invalid="true"] { border-color:var(--lf-component-field-error-border); }
textarea.lf-input { min-height:var(--lf-component-field-textarea-min); resize:vertical; }
.lf-help { font-size:var(--lf-semantic-type-small-size); line-height:var(--lf-semantic-type-small-line); color:var(--lf-semantic-color-text-secondary); }
.lf-alert { border:1px solid var(--lf-semantic-color-status-info-border); background:var(--lf-semantic-color-status-info-background); color:var(--lf-semantic-color-status-info-text); padding:var(--lf-primitive-space-16); border-radius:var(--lf-primitive-radius-12); display:grid; gap:var(--lf-primitive-space-4); }
.lf-alert.error { border-color:var(--lf-semantic-color-status-error-border); background:var(--lf-semantic-color-status-error-background); color:var(--lf-semantic-color-status-error-text); }
.lf-alert.success { border-color:var(--lf-semantic-color-status-success-border); background:var(--lf-semantic-color-status-success-background); color:var(--lf-semantic-color-status-success-text); }
.lf-alert.warning { border-color:var(--lf-semantic-color-status-warning-border); background:var(--lf-semantic-color-status-warning-background); color:var(--lf-semantic-color-status-warning-text); }
.lf-icon-box { display:grid; place-items:center; height:var(--lf-primitive-size-control-lg); width:var(--lf-primitive-size-control-lg); border-radius:var(--lf-primitive-radius-12); background:var(--lf-semantic-color-background-selected); color:var(--lf-semantic-color-text-brand); font-size:1.5rem; }
.lf-dialog { width:min(var(--lf-component-modal-width),calc(100vw - 2rem)); max-height:min(var(--lf-component-modal-height-max),calc(100dvh - 4rem)); padding:var(--lf-component-modal-padding); border:1px solid var(--lf-semantic-color-border-control); border-radius:var(--lf-component-modal-radius); background:var(--lf-component-modal-background); color:var(--lf-semantic-color-text-primary); box-shadow:var(--lf-component-modal-shadow); }
.lf-dialog::backdrop { background:var(--lf-semantic-color-overlay); }
.lf-dialog h2 { padding-right:3rem; }
.lf-dialog .close { position:absolute; right:1rem; top:1rem; width:2.75rem; padding:0; }
.lf-radio-row { display:flex; align-items:center; gap:var(--lf-primitive-space-12); min-height:var(--lf-component-niche-row-min-height); padding:var(--lf-primitive-space-12) var(--lf-primitive-space-16); border:1px solid var(--lf-semantic-color-border-control); border-radius:var(--lf-primitive-radius-12); background:var(--lf-semantic-color-background-raised); cursor:pointer; }
.lf-radio-row:has(input:checked) { background:var(--lf-semantic-color-background-selected); border-color:var(--lf-semantic-color-border-selected); }
.lf-radio-row input { width:1.25rem; height:1.25rem; accent-color:var(--lf-semantic-color-action-primary-default); }
.lf-radio-row:has(input:focus-visible) { outline:3px solid var(--lf-semantic-color-focus-ring); outline-offset:3px; }
@media(max-width:39.999rem) { h1 { font-size:var(--lf-semantic-type-h1-mobile-size); line-height:var(--lf-semantic-type-h1-mobile-line); } h2 { font-size:var(--lf-semantic-type-h2-mobile-size); line-height:var(--lf-semantic-type-h2-mobile-line); } h3 { font-size:var(--lf-semantic-type-h3-mobile-size); line-height:var(--lf-semantic-type-h3-mobile-line); } .lf-card { padding:var(--lf-component-card-padding-mobile); } .lf-dialog { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; border-radius:0; padding:1rem; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; } }
