/* Yby — estilos dos componentes. Só classes .yby-*; todos os valores vêm dos tokens. */
.yby-reset,.yby-reset *{box-sizing:border-box}

/* ---------- Button ---------- */
.yby-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-sans);font-weight:var(--fw-body-semibold);border:var(--border-width) solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:var(--transition-color),transform var(--duration-fast) var(--ease-standard);white-space:nowrap}
.yby-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.yby-btn:active{transform:translateY(1px)}
.yby-btn--sm{font-size:var(--fs-note);padding:var(--space-3) var(--space-5);letter-spacing:.01em}
.yby-btn--md{font-size:var(--fs-caption);padding:var(--space-4) var(--space-7)}
.yby-btn--lg{font-size:var(--fs-body);padding:var(--space-5) var(--space-8)}
.yby-btn--primary{background:var(--action-primary-bg);color:var(--action-primary-fg)}
.yby-btn--primary:hover{background:var(--action-primary-bg-hover)}
.yby-btn--secondary{background:var(--action-secondary-bg);color:var(--action-secondary-fg);border-color:var(--border-strong)}
.yby-btn--secondary:hover{background:var(--surface-sunken)}
.yby-btn--accent{background:var(--action-accent-bg);color:var(--action-accent-fg)}
.yby-btn--accent:hover{background:var(--action-accent-bg-hover)}
.yby-btn--ghost{background:transparent;color:var(--text-heading)}
.yby-btn--ghost:hover{background:var(--surface-sunken)}
.yby-btn--inverse{background:var(--yby-areia);color:var(--yby-verde)}
.yby-btn--inverse:hover{background:var(--yby-papel)}
.yby-btn[disabled],.yby-btn--disabled{background:var(--action-disabled-bg);color:var(--action-disabled-fg);border-color:transparent;cursor:not-allowed;transform:none}
.yby-btn--block{width:100%}

/* ---------- IconButton ---------- */
.yby-iconbtn{display:inline-flex;align-items:center;justify-content:center;border:var(--border-width) solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--text-heading);cursor:pointer;transition:var(--transition-color)}
.yby-iconbtn--sm{width:28px;height:28px}
.yby-iconbtn--md{width:36px;height:36px}
.yby-iconbtn--lg{width:44px;height:44px}
.yby-iconbtn:hover{background:var(--surface-sunken)}
.yby-iconbtn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.yby-iconbtn--outlined{border-color:var(--border-default)}
.yby-iconbtn--inverse{color:var(--text-inverse)}
.yby-iconbtn--inverse:hover{background:rgba(255,255,255,.1)}
.yby-iconbtn[disabled]{color:var(--yby-pedra);cursor:not-allowed;background:transparent}

/* ---------- Icon ---------- */
.yby-icon{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;word-wrap:normal;direction:ltr;flex:none;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;overflow:hidden}

/* ---------- Wordmark ---------- */
.yby-wordmark{font-family:var(--font-display);font-weight:var(--fw-display-medium);letter-spacing:var(--ls-wordmark);line-height:1;display:inline-block}
.yby-wordmark--verde{color:var(--yby-verde)}
.yby-wordmark--papel{color:var(--yby-papel)}
.yby-wordmark--areia{color:var(--yby-areia)}
.yby-lockup{display:inline-flex;flex-direction:column;gap:var(--space-2)}
.yby-lockup__descriptor{font-family:var(--font-sans);font-size:var(--fs-note);letter-spacing:var(--ls-descriptor);text-transform:uppercase;color:var(--text-descriptor);font-weight:var(--fw-body-medium)}

/* ---------- Eyebrow ---------- */
.yby-eyebrow{font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-eyebrow);font-weight:var(--fw-body-semibold);display:block}
.yby-eyebrow--bronze{color:var(--text-descriptor)}
.yby-eyebrow--pedra{color:var(--text-subtle);letter-spacing:var(--ls-meta)}

/* ---------- Card ---------- */
.yby-card{background:var(--surface-card);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-7) var(--space-8);box-shadow:var(--shadow-card)}
.yby-card--quiet{border-radius:var(--radius-md);padding:var(--space-6) var(--space-7)}
.yby-card--accent{border:none;border-left:var(--border-width-accent) solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:none}
.yby-card--sunken{background:var(--surface-sunken);border-color:transparent;box-shadow:none}
.yby-card--inverse{background:var(--surface-inverse);border-color:var(--border-inverse);color:var(--text-inverse-muted)}
.yby-card--interactive{cursor:pointer;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}
.yby-card--interactive:hover{border-color:var(--yby-pedra-escuro);box-shadow:var(--shadow-raised)}
.yby-card__title{font-family:var(--font-display);font-weight:var(--fw-display-medium);color:var(--text-heading);font-size:var(--fs-h3-sm);margin:0 0 var(--space-2)}
.yby-card__body{font-family:var(--font-sans);font-size:var(--fs-note);color:var(--text-muted);margin:0;line-height:var(--lh-body)}

/* ---------- Badge / Tag ---------- */
.yby-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--fs-label);font-weight:var(--fw-body-semibold);letter-spacing:var(--ls-label);text-transform:uppercase;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:var(--border-width) solid transparent}
.yby-badge--neutral{background:var(--surface-sunken);color:var(--yby-verde)}
.yby-badge--positive{background:var(--surface-sunken);color:var(--status-positive)}
.yby-badge--attention{background:#F5EDD8;color:#7A6023}
.yby-badge--negative{background:var(--surface-warning);color:var(--status-negative)}
.yby-badge--outline{background:transparent;color:var(--text-muted);border-color:var(--border-default)}
.yby-badge--solid{background:var(--yby-verde);color:var(--yby-papel)}
.yby-tag{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--fs-note);color:var(--text-body);background:var(--surface-card);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-5)}
.yby-tag--sunken{background:var(--surface-sunken);border-color:transparent}
.yby-tag__remove{background:none;border:none;cursor:pointer;color:var(--text-subtle);font-size:var(--fs-caption);line-height:1;padding:0}
.yby-tag__remove:hover{color:var(--text-eyebrow)}

/* ---------- Field / Input / Select / Textarea ---------- */
.yby-field{display:flex;flex-direction:column;gap:var(--space-2);font-family:var(--font-sans)}
.yby-field__label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--ls-label);font-weight:var(--fw-body-semibold);color:var(--text-eyebrow)}
.yby-field__hint{font-size:var(--fs-micro);color:var(--text-subtle)}
.yby-field__error{font-size:var(--fs-micro);color:var(--status-negative)}
.yby-input{font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-body);background:var(--surface-card);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);width:100%;transition:var(--transition-color)}
.yby-input::placeholder{color:var(--yby-pedra)}
.yby-input:hover{border-color:var(--yby-pedra-escuro)}
.yby-input:focus{outline:none;border-color:var(--border-strong);box-shadow:0 0 0 3px rgba(31,61,43,.1)}
.yby-input[disabled]{background:var(--surface-sunken);color:var(--text-subtle);cursor:not-allowed}
.yby-input--invalid{border-color:var(--status-negative)}
.yby-input--textarea{min-height:96px;resize:vertical;line-height:var(--lh-body)}
.yby-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--yby-verde) 50%),linear-gradient(135deg,var(--yby-verde) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% + 1px),calc(100% - 13px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:var(--space-9)}

/* ---------- Checkbox / Radio / Switch ---------- */
.yby-check{display:inline-flex;align-items:flex-start;gap:var(--space-4);font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-body);cursor:pointer}
.yby-check input{position:absolute;opacity:0;width:0;height:0}
.yby-check__box{width:18px;height:18px;flex:none;margin-top:2px;border:var(--border-width) solid var(--border-default);background:var(--surface-card);display:flex;align-items:center;justify-content:center;transition:var(--transition-color)}
.yby-check--checkbox .yby-check__box{border-radius:3px}
.yby-check--radio .yby-check__box{border-radius:var(--radius-circle)}
.yby-check:hover .yby-check__box{border-color:var(--yby-pedra-escuro)}
.yby-check input:focus-visible+.yby-check__box{outline:2px solid var(--focus-ring);outline-offset:2px}
.yby-check--on .yby-check__box{background:var(--yby-verde);border-color:var(--yby-verde)}
.yby-check__mark{width:10px;height:10px;color:var(--yby-papel)}
.yby-check--radio.yby-check--on .yby-check__box{background:var(--surface-card);border-color:var(--yby-verde)}
.yby-check--radio .yby-check__dot{width:9px;height:9px;border-radius:var(--radius-circle);background:var(--yby-verde)}
.yby-check--disabled{color:var(--text-subtle);cursor:not-allowed}
.yby-check--disabled .yby-check__box{background:var(--surface-sunken);border-color:var(--border-subtle)}
.yby-check__text{line-height:1.45}
.yby-check__desc{display:block;font-size:var(--fs-micro);color:var(--text-subtle);margin-top:2px}
.yby-switch{display:inline-flex;align-items:center;gap:var(--space-4);font-family:var(--font-sans);font-size:var(--fs-caption);color:var(--text-body);cursor:pointer}
.yby-switch__track{width:40px;height:22px;border-radius:var(--radius-pill);background:var(--yby-pedra);padding:2px;transition:background-color var(--duration-base) var(--ease-standard);flex:none}
.yby-switch--on .yby-switch__track{background:var(--yby-verde)}
.yby-switch__knob{width:18px;height:18px;border-radius:var(--radius-circle);background:var(--yby-papel);transition:transform var(--duration-base) var(--ease-out)}
.yby-switch--on .yby-switch__knob{transform:translateX(18px)}
.yby-switch--disabled{color:var(--text-subtle);cursor:not-allowed}
.yby-switch--disabled .yby-switch__track{background:var(--border-subtle)}

/* ---------- Tabs ---------- */
.yby-tabs{display:flex;gap:var(--space-9);border-bottom:var(--border-width) solid var(--border-default);font-family:var(--font-sans)}
.yby-tab{background:none;border:none;padding:0 0 var(--space-4);margin-bottom:-1px;font-size:var(--fs-caption);font-weight:var(--fw-body-medium);color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:var(--transition-color)}
.yby-tab:hover{color:var(--text-heading)}
.yby-tab--active{color:var(--text-heading);border-bottom-color:var(--yby-terracota);font-weight:var(--fw-body-semibold)}
.yby-tab[disabled]{color:var(--yby-pedra);cursor:not-allowed}
.yby-tabs--pills{border-bottom:none;gap:var(--space-2)}
.yby-tabs--pills .yby-tab{padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);border-bottom:none;margin:0}
.yby-tabs--pills .yby-tab--active{background:var(--surface-sunken)}

/* ---------- Table ---------- */
.yby-table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:var(--fs-caption);background:var(--surface-card)}
.yby-table th{text-align:left;padding:var(--space-4) var(--space-5);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--ls-table-head);color:var(--text-eyebrow);background:var(--surface-sunken);font-weight:var(--fw-body-semibold);border-bottom:var(--border-width) solid var(--border-default)}
.yby-table td{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-default);color:var(--text-body)}
.yby-table--striped tbody tr:nth-child(even){background:rgba(228,231,222,.45)}
.yby-table--numeric td:not(:first-child),.yby-table--numeric th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}

/* ---------- Dialog ---------- */
.yby-dialog__scrim{position:fixed;inset:0;background:var(--overlay-scrim);backdrop-filter:var(--blur-scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-8);z-index:50}
.yby-dialog{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);max-width:520px;width:100%;font-family:var(--font-sans);animation:yby-rise var(--duration-slow) var(--ease-out)}
@keyframes yby-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.yby-dialog__head{padding:var(--space-8) var(--space-9) 0}
.yby-dialog__title{font-family:var(--font-display);font-weight:var(--fw-display-medium);font-size:var(--fs-h3);color:var(--text-heading);margin:0}
.yby-dialog__body{padding:var(--space-5) var(--space-9);font-size:var(--fs-caption);color:var(--text-muted);line-height:var(--lh-body)}
.yby-dialog__foot{display:flex;justify-content:flex-end;gap:var(--space-4);padding:0 var(--space-9) var(--space-8)}

/* ---------- Toast ---------- */
.yby-toast{display:flex;align-items:flex-start;gap:var(--space-5);background:var(--surface-inverse);color:var(--text-inverse);border-radius:var(--radius-md);padding:var(--space-5) var(--space-7);box-shadow:var(--shadow-overlay);font-family:var(--font-sans);font-size:var(--fs-note);max-width:420px;animation:yby-rise var(--duration-slow) var(--ease-out)}
.yby-toast__bar{width:3px;align-self:stretch;border-radius:2px;background:var(--yby-bronze);flex:none}
.yby-toast--positive .yby-toast__bar{background:var(--yby-salvia)}
.yby-toast--negative .yby-toast__bar{background:var(--yby-terracota)}
.yby-toast__title{font-weight:var(--fw-body-semibold);margin:0 0 2px}
.yby-toast__desc{margin:0;color:var(--text-inverse-muted)}

/* ---------- Tooltip ---------- */
.yby-tooltip{position:relative;display:inline-flex}
.yby-tooltip__bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--yby-grafite);color:var(--yby-papel);font-family:var(--font-sans);font-size:var(--fs-micro);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-standard);z-index:20}
.yby-tooltip__bubble--bottom{bottom:auto;top:calc(100% + 8px)}
.yby-tooltip:hover .yby-tooltip__bubble,.yby-tooltip__bubble--open{opacity:1}

/* ---------- Stat ---------- */
.yby-stat{font-family:var(--font-sans)}
.yby-stat__label{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-eyebrow);font-weight:var(--fw-body-semibold);margin-bottom:var(--space-2)}
.yby-stat__value{font-family:var(--font-display);font-weight:var(--fw-display-medium);font-size:var(--fs-display-md);color:var(--text-heading);line-height:1;font-variant-numeric:tabular-nums}
.yby-stat__note{font-size:var(--fs-micro);color:var(--text-subtle);margin-top:var(--space-2)}
.yby-stat--inverse .yby-stat__value{color:var(--text-inverse)}
.yby-stat--inverse .yby-stat__label{color:var(--yby-bronze)}
.yby-stat--inverse .yby-stat__note{color:var(--text-inverse-muted)}

/* ---------- SectionHeading ---------- */
.yby-section-heading__title{font-family:var(--font-display);font-weight:var(--fw-display-semibold);color:var(--text-heading);font-size:var(--fs-h2);margin:var(--space-3) 0 var(--space-2);line-height:var(--lh-heading)}
.yby-section-heading__lead{font-family:var(--font-sans);font-size:var(--fs-lead);color:var(--text-muted);max-width:720px;margin:0;line-height:var(--lh-body);text-wrap:pretty}
