/* Godorama — tipografia Montserrat (OFL, local). Fonte de verdade: .cursor/DESIGN-SYSTEM.md. */
/* Montserrat: latin-ext, 400, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 400, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Montserrat: latin-ext, 500, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-500-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 500, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-500-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Montserrat: latin-ext, 600, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-600-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 600, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Montserrat: latin-ext, 700, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 700, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Montserrat: latin-ext, 800, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-800-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 800, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-800-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Montserrat: latin-ext, 900, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-900-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 900, normal. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-900-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Montserrat: latin-ext, 400, italic. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-ext-400-italic.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Montserrat: latin, 400, italic. OFL junto dos arquivos. */
@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/montserrat/montserrat-latin-400-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --g-brand-50: #FFF0F5;
  --g-brand-100: #FFD6E6;
  --g-brand-200: #FFA8C9;
  --g-brand-300: #FF7AAD;
  --g-brand-400: #D6246F;
  --g-brand-500: #B81E5C;
  --g-brand-600: #96184B;
  --g-brand-700: #74123A;
  --g-brand-800: #520C29;
  --g-brand-900: #35081A;
  --g-brand-950: #1F040F;
  --g-brand: var(--g-brand-400);
  --g-brand-hover: var(--g-brand-500);
  --g-brand-press: var(--g-brand-600);
  --g-on-brand: #FFFFFF;
  --g-neutral-0: #FFFFFF;
  --g-neutral-50: #F7F8FA;
  --g-neutral-100: #F0F1F4;
  --g-neutral-200: #DFE1E7;
  --g-neutral-300: #C4C7D0;
  --g-neutral-400: #A8ADBA;
  --g-neutral-500: #777E90;
  --g-neutral-600: #585F70;
  --g-neutral-700: #3C4251;
  --g-neutral-800: #292D38;
  --g-neutral-850: #20232D;
  --g-neutral-900: #171A22;
  --g-neutral-950: #0C0E14;
  --g-font-text: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --g-font-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
  --g-weight-regular: 400;
  --g-weight-medium: 500;
  --g-weight-semibold: 600;
  --g-weight-bold: 700;
  --g-weight-extra: 800;
  --g-weight-black: 900;
  --g-text-xs: .75rem;
  --g-text-sm: .875rem;
  --g-text-md: 1rem;
  --g-text-lg: 1.125rem;
  --g-text-xl: 1.5rem;
  --g-text-2xl: 2rem;
  --g-text-3xl: clamp(2rem, 4vw, 3rem);
  --g-text-hero: clamp(2.5rem, 6vw, 4.5rem);
  --g-leading-tight: 1.2;
  --g-leading-body: 1.5;
  --g-leading-reading: 1.65;
  --g-tracking-title: -.03em;
  --g-space-0: 0;
  --g-space-1: 4px;
  --g-space-2: 8px;
  --g-space-3: 12px;
  --g-space-4: 16px;
  --g-space-5: 20px;
  --g-space-6: 24px;
  --g-space-8: 32px;
  --g-space-10: 40px;
  --g-space-12: 48px;
  --g-space-16: 64px;
  --g-space-24: 96px;
  --g-radius-sm: 8px;
  --g-radius-md: 12px;
  --g-radius-lg: 20px;
  --g-radius-xl: 28px;
  --g-radius-full: 999px;
  --g-border-width: 1px;
  --g-focus-width: 3px;
  --g-focus-offset: 3px;
  --g-touch-min: 44px;
  --g-control-sm: 44px;
  --g-control-md: 48px;
  --g-control-lg: 56px;
  --g-icon-sm: 20px;
  --g-icon-md: 24px;
  --g-icon-stroke: 1.7;
  --g-dur-instant: 80ms;
  --g-dur-fast: 140ms;
  --g-dur-normal: 220ms;
  --g-dur-slow: 320ms;
  --g-dur-spin: 800ms;
  --g-stagger: 40ms;
  --g-ease-standard: cubic-bezier(.2, .7, .2, 1);
  --g-ease-enter: cubic-bezier(.16, 1, .3, 1);
  --g-ease-exit: cubic-bezier(.4, 0, 1, 1);
  --g-press-scale: .98;
  --g-card-lift: -4px;
  --g-poster-ratio: 9 / 16;
  --g-cover-ratio: 16 / 9;
  --g-series-tint: transparent;
  --g-media-bg: #07060B;
  --g-media-text: #F7F8FA;
  --g-scrim: #07060BCC;
  --g-z-sheet: 60;
  --g-z-toast: 80;
  --g-safe-top: env(safe-area-inset-top, 0px);
  --g-safe-bottom: env(safe-area-inset-bottom, 0px);
  --g-font-display: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --g-weight-display: 800;
  --g-bg: #07060B;
  --g-surface: var(--g-neutral-900);
  --g-surface-raised: var(--g-neutral-850);
  --g-surface-hover: var(--g-neutral-800);
  --g-text: var(--g-neutral-50);
  --g-text-muted: var(--g-neutral-400);
  --g-border: var(--g-neutral-700);
  --g-border-control: var(--g-neutral-500);
  --g-brand-text: var(--g-brand-300);
  --g-brand-soft: var(--g-brand-950);
  --g-brand-border: var(--g-brand-400);
  --g-focus: var(--g-brand-300);
  --g-success: #83DFB5;
  --g-success-soft: #152F25;
  --g-warning: #F0CA81;
  --g-warning-soft: #332A17;
  --g-danger: #FF9CB1;
  --g-danger-soft: #391D27;
  --g-info: #9CCBF3;
  --g-info-soft: #1B2D40;
  --g-danger-fill: #FF9CB1;
  --g-danger-hover: #FFB3C3;
  --g-danger-press: #F1849C;
  --g-on-danger: #300C16;
  --g-shadow-sm: 0 2px 8px #00000033;
  --g-shadow-md: 0 8px 24px #0000004D;
  --g-shadow-lg: 0 24px 64px #00000080;
  --g-glass-fill: color-mix(in srgb, var(--g-bg) 42%, transparent);
  --g-glass-blur: 28px;
  --g-glass-sat: 1.55;
  --g-glass-edge: color-mix(in srgb, white 46%, transparent);
  --g-glass-edge-dim: color-mix(in srgb, white 14%, transparent);
  --g-glass-sheen: color-mix(in srgb, white 34%, transparent);
  --g-glass-shadow: 0 10px 28px #00000073;
  --g-glass-light: radial-gradient(220px circle at var(--g-px, 50%) var(--g-py, 0%), color-mix(in srgb, white 26%, transparent), transparent 64%);
}

/* Componentes compartilhados. Aplicação explícita; nenhum reset global. */
.g-btn {
  --g-btn-size: var(--g-control-md);
  --g-btn-bg: var(--g-surface);
  --g-btn-fg: var(--g-text);
  --g-btn-border: var(--g-border-control);
  --g-btn-hover: var(--g-surface-raised);
  --g-btn-press: var(--g-surface-hover);
  box-sizing: border-box;
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: var(--g-space-2);
  min-inline-size: var(--g-touch-min);
  min-block-size: var(--g-btn-size);
  max-inline-size: 100%;
  padding: var(--g-space-3) var(--g-space-5);
  border: var(--g-border-width) solid var(--g-btn-border);
  border-radius: var(--g-radius-md);
  background: var(--g-btn-bg);
  color: var(--g-btn-fg);
  font: var(--g-weight-semibold) var(--g-text-sm)/var(--g-leading-body) var(--g-font-text);
  font-synthesis: none;
  text-align: center;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: background-color var(--g-dur-fast) var(--g-ease-standard), transform var(--g-dur-fast) var(--g-ease-standard), box-shadow var(--g-dur-fast) var(--g-ease-standard);
}
.g-btn--primary {
  --g-btn-bg: var(--g-brand);
  --g-btn-fg: var(--g-on-brand);
  --g-btn-border: var(--g-brand-border);
  --g-btn-hover: var(--g-brand-hover);
  --g-btn-press: var(--g-brand-press);
}
.g-btn--secondary {
  --g-btn-bg: var(--g-surface);
  --g-btn-fg: var(--g-text);
  --g-btn-border: var(--g-border-control);
  --g-btn-hover: var(--g-surface-raised);
  --g-btn-press: var(--g-surface-hover);
}
.g-btn--ghost, .g-btn--icon {
  --g-btn-bg: transparent;
  --g-btn-fg: var(--g-text);
  --g-btn-border: transparent;
  --g-btn-hover: var(--g-surface-raised);
  --g-btn-press: var(--g-surface-hover);
}
.g-btn--danger {
  --g-btn-bg: var(--g-danger-fill);
  --g-btn-fg: var(--g-on-danger);
  --g-btn-border: var(--g-danger-fill);
  --g-btn-hover: var(--g-danger-hover);
  --g-btn-press: var(--g-danger-press);
}
.g-btn--sm { --g-btn-size: var(--g-control-sm); padding: var(--g-space-2) var(--g-space-3); font-size: var(--g-text-xs); }
.g-btn--md { --g-btn-size: var(--g-control-md); }
.g-btn--lg { --g-btn-size: var(--g-control-lg); padding: var(--g-space-4) var(--g-space-6); font-size: var(--g-text-md); }
.g-btn--icon { inline-size: var(--g-btn-size); block-size: var(--g-btn-size); flex: 0 0 auto; padding: 0; }
.g-btn--block { inline-size: 100%; }
.g-btn__label { min-inline-size: 0; }
.g-icon { display: inline-block; inline-size: var(--g-icon-md); block-size: var(--g-icon-md); flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: var(--g-icon-stroke); stroke-linecap: round; stroke-linejoin: round; }
.g-btn--sm .g-icon { inline-size: var(--g-icon-sm); block-size: var(--g-icon-sm); }
.g-btn__spinner { display: inline-block; box-sizing: border-box; inline-size: 1em; block-size: 1em; flex: 0 0 auto; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: var(--g-radius-full); visibility: hidden; }
.g-btn:is([aria-busy="true"], .g-btn--loading) { cursor: progress; }
.g-btn:is([aria-busy="true"], .g-btn--loading) .g-btn__spinner { visibility: visible; animation: g-spin var(--g-dur-spin) linear infinite; }
.g-btn--icon .g-btn__spinner { position: absolute; }
.g-btn--icon:is([aria-busy="true"], .g-btn--loading) .g-icon { visibility: hidden; }
@media (hover: hover) and (pointer: fine) {
  .g-btn:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):not(.g-btn--loading) { background: var(--g-btn-hover); color: var(--g-btn-fg); text-decoration: none; }
}
.g-btn:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):not(.g-btn--loading) { background: var(--g-btn-press); transform: scale(var(--g-press-scale)); }
.g-btn:disabled, .g-btn[aria-disabled="true"] { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
/* Manter o rótulo e contraste de carregamento mesmo com disabled nativo. */
.g-btn:is([aria-busy="true"], .g-btn--loading):is(:disabled, [aria-disabled="true"]) { opacity: 1; cursor: progress; }
.g-btn:focus-visible, .g-chip:focus-visible, .g-input:focus-visible, .g-card:focus-visible, .g-card__link:focus-visible, .g-sheet:focus-visible {
  outline: var(--g-focus-width) solid var(--g-focus);
  outline-offset: var(--g-focus-offset);
}
.g-chip {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--g-space-2);
  min-block-size: var(--g-touch-min); min-inline-size: var(--g-touch-min); max-inline-size: 100%; padding: var(--g-space-2) var(--g-space-3);
  border: 1px solid var(--g-border-control); border-radius: var(--g-radius-full); background: var(--g-surface); color: var(--g-text-muted);
  font: var(--g-weight-medium) var(--g-text-sm)/var(--g-leading-body) var(--g-font-text); font-synthesis: none; text-decoration: none; overflow-wrap: anywhere;
}
.g-chip--interactive { cursor: pointer; touch-action: manipulation; transition: background-color var(--g-dur-fast), transform var(--g-dur-fast) var(--g-ease-standard); }
.g-chip:is([aria-pressed="true"], [aria-selected="true"], [aria-current="page"], .g-chip--selected) { background: var(--g-brand-soft); color: var(--g-brand-text); border-color: var(--g-brand-text); box-shadow: inset 0 -2px 0 var(--g-brand-text); }
.g-chip--label { min-block-size: 28px; min-inline-size: 0; padding-block: var(--g-space-1); font-size: var(--g-text-xs); }
.g-chip--success { background: var(--g-success-soft); color: var(--g-success); }
.g-chip--warning { background: var(--g-warning-soft); color: var(--g-warning); }
.g-chip--danger { background: var(--g-danger-soft); color: var(--g-danger); }
.g-chip--info { background: var(--g-info-soft); color: var(--g-info); }
.g-chip--interactive:active:not(:disabled):not([aria-disabled="true"]) { transform: scale(var(--g-press-scale)); }
.g-chip:is(:disabled, [aria-disabled="true"]) { opacity: .48; cursor: not-allowed; }
.g-field { display: grid; gap: var(--g-space-2); min-inline-size: 0; font-family: var(--g-font-text); color: var(--g-text); }
.g-label { font: var(--g-weight-semibold) var(--g-text-sm)/var(--g-leading-body) var(--g-font-text); }
/* Campo independente; o modificador integrado delega borda e foco ao contêiner. */
.g-input {
  box-sizing: border-box; inline-size: 100%; min-inline-size: 0; min-block-size: var(--g-control-md);
  border: 1px solid var(--g-border-control); border-radius: var(--g-radius-md); padding: var(--g-space-3) var(--g-space-4);
  background: var(--g-surface); color: var(--g-text); font: var(--g-weight-regular) var(--g-text-md)/var(--g-leading-body) var(--g-font-text); font-synthesis: none;
  transition: border-color var(--g-dur-fast) var(--g-ease-standard);
}
.g-input--bare { border: 0; background: transparent; padding-inline: 0; box-shadow: none; }
.g-input--bare:focus-visible { outline: none; }
.g-input::placeholder { color: var(--g-text-muted); opacity: 1; font-size: var(--g-text-md); }
.g-input.g-input:focus { border-color: var(--g-focus); }
/* Autofill do Chrome/Safari: troca o fundo amarelo/verde pelo rosa da marca. */
.g-input:-webkit-autofill,
.g-input:-webkit-autofill:hover,
.g-input:-webkit-autofill:focus,
.g-input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--g-text);
  caret-color: var(--g-text);
  border-color: color-mix(in srgb, var(--g-brand) 45%, var(--g-border-control)) !important;
  box-shadow: 0 0 0 1000px color-mix(in srgb, var(--g-brand) 18%, var(--g-bg)) inset !important;
  transition: background-color 99999s ease-out 0s;
}
.g-input:-moz-autofill { filter: none; background: color-mix(in srgb, var(--g-brand) 18%, var(--g-bg)) !important; }
/* O legado do Dashboard marca a borda inválida como importante. Escopo só no componente novo. */
.g-input.g-input[aria-invalid="true"] { border-color: var(--g-danger) !important; }
.g-input:disabled { opacity: .48; cursor: not-allowed; }
.g-input.g-input[readonly] { background: var(--g-surface-raised); }
.g-help { color: var(--g-text-muted); font: var(--g-weight-regular) var(--g-text-sm)/var(--g-leading-body) var(--g-font-text); }
.g-error { color: var(--g-danger); font: var(--g-weight-medium) var(--g-text-sm)/var(--g-leading-body) var(--g-font-text); }
.g-card {
  box-sizing: border-box; position: relative; min-inline-size: 0; padding: var(--g-space-6); border: 1px solid var(--g-border);
  border-radius: var(--g-radius-lg); background: var(--g-surface); color: var(--g-text); box-shadow: var(--g-shadow-sm);
  font: var(--g-weight-regular) var(--g-text-md)/var(--g-leading-body) var(--g-font-text); font-synthesis: none; text-decoration: none;
}
.g-card--interactive { transition: transform var(--g-dur-normal) var(--g-ease-enter), box-shadow var(--g-dur-normal) var(--g-ease-enter); }
.g-card--poster, .g-card--cover { padding: 0; }
.g-card__media { position: relative; overflow: hidden; border-radius: var(--g-radius-lg); background: var(--g-media-bg); aspect-ratio: var(--g-poster-ratio); }
.g-card--cover .g-card__media { aspect-ratio: var(--g-cover-ratio); }
.g-card__image { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform var(--g-dur-normal) var(--g-ease-enter); }
.g-card__body { display: grid; gap: var(--g-space-2); padding: var(--g-space-4); min-inline-size: 0; }
.g-card__title { margin: 0; color: var(--g-text); font: var(--g-weight-semibold) var(--g-text-md)/1.35 var(--g-font-text); overflow-wrap: anywhere; }
.g-card__link { color: inherit; text-decoration: none; border-radius: var(--g-radius-sm); }
.g-card__details { display: grid; gap: var(--g-space-3); margin-block-start: var(--g-space-2); }
.g-card__actions { display: flex; flex-wrap: wrap; gap: var(--g-space-2); }
/* A informação e as ações ficam visíveis no toque; somente detalhes suplementares recolhem no mouse. */
@media (hover: hover) and (pointer: fine) {
  .g-chip--interactive:hover:not(:disabled):not([aria-disabled="true"]):not([aria-pressed="true"]):not([aria-selected="true"]):not([aria-current="page"]):not(.g-chip--selected) { background: var(--g-surface-raised); }
  .g-card--interactive:hover { transform: translateY(var(--g-card-lift)); box-shadow: var(--g-shadow-md); }
  .g-card--interactive:hover .g-card__image { transform: scale(1.025); }
  .g-card--poster.g-card--interactive .g-card__details { opacity: 0; transform: translateY(4px); pointer-events: none; transition: opacity var(--g-dur-normal), transform var(--g-dur-normal) var(--g-ease-enter); }
  .g-card--poster.g-card--interactive:is(:hover, :focus-within) .g-card__details { opacity: 1; transform: none; pointer-events: auto; }
}
.g-card--interactive:focus-within { box-shadow: var(--g-shadow-md); }
.g-card--interactive:active { transform: scale(var(--g-press-scale)); }
.g-card--series-tint .g-card__media::after { content: ""; position: absolute; inset: 0; border: 1px solid var(--g-series-tint); border-radius: inherit; opacity: .2; pointer-events: none; }
.g-toast {
  box-sizing: border-box; display: flex; align-items: flex-start; gap: var(--g-space-3); padding: var(--g-space-4); max-inline-size: 100%;
  border: 1px solid var(--g-border-control); border-inline-start: 3px solid var(--g-info); border-radius: var(--g-radius-md);
  background: var(--g-surface); color: var(--g-text); box-shadow: var(--g-shadow-lg);
  font: var(--g-weight-regular) var(--g-text-sm)/var(--g-leading-body) var(--g-font-text); animation: g-arrive var(--g-dur-normal) var(--g-ease-enter);
}
.g-toast__message { flex: 1; min-inline-size: 0; overflow-wrap: anywhere; }
.g-toast--success { background: var(--g-success-soft); color: var(--g-success); border-inline-start-color: var(--g-success); }
.g-toast--warning { background: var(--g-warning-soft); color: var(--g-warning); border-inline-start-color: var(--g-warning); }
.g-toast--danger { background: var(--g-danger-soft); color: var(--g-danger); border-inline-start-color: var(--g-danger); }
.g-toast--info { background: var(--g-info-soft); color: var(--g-info); border-inline-start-color: var(--g-info); }
.g-toast .g-btn--ghost, .g-toast .g-btn--icon { --g-btn-fg: var(--g-text); }
.g-sheet {
  box-sizing: border-box; position: fixed; inset: auto 0 0; margin: 0 auto; inline-size: min(100%, 560px); max-inline-size: 100%; max-block-size: 86dvh;
  padding: var(--g-space-6) var(--g-space-6) calc(var(--g-space-6) + var(--g-safe-bottom)); overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid var(--g-border); border-radius: var(--g-radius-xl) var(--g-radius-xl) 0 0; background: var(--g-surface); color: var(--g-text);
  box-shadow: var(--g-shadow-lg); z-index: var(--g-z-sheet); font: var(--g-text-md)/var(--g-leading-body) var(--g-font-text);
}
.g-sheet[open] { animation: g-sheet-enter var(--g-dur-slow) var(--g-ease-enter); }
.g-sheet::backdrop { background: var(--g-scrim); }
.g-sheet__header { display: flex; align-items: center; justify-content: space-between; gap: var(--g-space-3); margin-block-end: var(--g-space-5); }
.g-sheet__handle { inline-size: 36px; block-size: 4px; margin: 0 auto var(--g-space-4); border-radius: var(--g-radius-full); background: var(--g-border-control); }
@keyframes g-spin { to { transform: rotate(360deg); } }
@keyframes g-sheet-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  :root { --g-dur-instant: 0ms; --g-dur-fast: 0ms; --g-dur-normal: 0ms; --g-dur-slow: 0ms; --g-stagger: 0ms; --g-press-scale: 1; --g-card-lift: 0px; }
  .g-btn, .g-btn__spinner, .g-chip, .g-input, .g-card, .g-card__image, .g-card__details, .g-toast, .g-sheet, .g-sheet::backdrop { animation: none !important; transition: none !important; scroll-behavior: auto !important; transform: none !important; }
}
@media (forced-colors: active) {
  .g-btn, .g-chip, .g-input, .g-card, .g-toast, .g-sheet { border-color: ButtonText; }
  .g-btn:focus-visible, .g-chip:focus-visible, .g-input:focus-visible, .g-card:focus-visible, .g-card__link:focus-visible, .g-sheet:focus-visible { outline-color: Highlight; }
  .g-chip:is([aria-pressed="true"], [aria-selected="true"], [aria-current="page"], .g-chip--selected) { border: 3px double Highlight; }
}

.g-title { margin: 0; color: var(--g-text); font: var(--g-weight-display) var(--g-text-2xl)/var(--g-leading-tight) var(--g-font-display); font-synthesis: none; letter-spacing: var(--g-tracking-title); overflow-wrap: anywhere; text-wrap: balance; }
