/* Ecranul Reservas + navigarea portalului: completează gem.css cu ce lipsește (grila săptămânală, dialogul nativ, bara de legături).
   Doar tokens din gem.css (zero culori literale); portal.css pune margini generice pe button/input/label care aici se anulează. */

/* ---------- Navigare ---------- */
#nav-portal { background: var(--fundo); border-bottom: 1px solid var(--linha); }
.nav-lista { display: flex; flex-wrap: wrap; gap: var(--e-1); list-style: none; margin: 0 auto; padding: var(--e-2) 0; max-width: 80%; }
.app .nav-lista a { display: inline-flex; align-items: center; min-height: var(--alvo); padding: 0 .9rem; border-radius: var(--r-2); color: var(--texto-2); font-weight: 700; text-decoration: none; }
.app .nav-lista a:hover { background: var(--superficie-2); color: var(--texto); }
.app .nav-lista a[aria-current="page"] { color: var(--acento); background: var(--acento-suave); box-shadow: inset 0 -3px 0 var(--acento); }

/* ---------- Anulează marginile generice din portal.css pe componentele gem ---------- */
#app .btn, #app .entrada, #app .bloco { margin: 0; }
#app .campo > label { margin: 0; }
#app .entrada { padding: .5rem .8rem; }
#app textarea.entrada { resize: vertical; }

/* ---------- Grila săptămânală: o coloană pe zi, rezervările ca blocuri (clasele .bloco-* vin din gem.css) ---------- */
.semana-grade { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--e-2); }
.dia-col { min-width: 0; display: flex; flex-direction: column; gap: var(--e-2); padding: var(--e-2); background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--r-2); }
.dia-col h3 { font-family: var(--f-titulo); font-size: var(--t-lg); font-weight: 600; }
.dia-hoje { border: 2px solid var(--acento); }
.dia-col .bloco { width: 100%; min-height: var(--alvo); font-size: var(--t-sm); }
.dia-col .bloco[aria-pressed="true"] { outline: 3px solid var(--foco); outline-offset: 2px; }
@media (max-width: 900px) { .semana-grade { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); } .nav-lista { max-width: 100%; padding-inline: 1rem; } }
/* sub 640 px: listă pe zile, o singură coloană, nimic orizontal */
@media (max-width: 639px) { .semana-grade { grid-template-columns: minmax(0, 1fr); } .cal-barra .campo, .cal-barra .semana { width: 100%; } .semana { justify-content: space-between; } }

/* ---------- Dialog nativ ---------- */
dialog.dialogo { border: 0; padding: 0; background: transparent; color: inherit; width: calc(100% - 2rem); max-width: 32rem; max-height: calc(100% - 2rem); overflow: visible; }
dialog.dialogo::backdrop { background: var(--veu); }
dialog.dialogo .modal { max-width: none; max-height: calc(100vh - 2rem); overflow-y: auto; }
