/* Casca: barra lateral fixa, barra superior, conteúdo em coluna única. */

.auth-screen {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: var(--space-4);
}

.shell { display: flex; min-height: 100vh; }

.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 30;
}

.sidebar .brand { padding: var(--space-4); margin: 0; border-bottom: 1px solid var(--border); }
.sidebar .brand-link { display: flex; color: inherit; text-decoration: none; border-radius: 0; transition: background .15s; }
.sidebar .brand-link:hover { background: var(--bg); }
.sidebar .brand-link:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }

.nav { display: flex; flex-direction: column; padding: var(--space-2); gap: 2px; flex: 1; overflow-y: auto; }

.nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: var(--radius-sm);
  color: var(--text-muted); text-decoration: none; font-weight: 500;
}
.nav-item:hover { background: var(--surface-2); color: var(--text); text-decoration: none; }
.nav-item.active { background: var(--accent-bg); color: var(--accent); }
.nav-item svg { width: 18px; height: 18px; flex-shrink: 0; }
.nav-item .nav-soon { margin-left: auto; font-size: 10px; color: var(--text-faint); border: 1px solid var(--border); border-radius: 999px; padding: 0 6px; }

.sidebar-footer { padding: var(--space-3); border-top: 1px solid var(--border); }

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.topbar {
  height: var(--topbar-h);
  display: flex; align-items: center; gap: var(--space-2);
  padding: 0 var(--space-4);
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 20;
}
.topbar .search-btn {
  flex: 1; max-width: 420px; display: flex; align-items: center; gap: 8px;
  padding: 7px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface-2); color: var(--text-muted); text-align: left;
}
.topbar .search-btn kbd { margin-left: auto; }

.content { padding: var(--space-5) var(--space-4); max-width: var(--content-max); width: 100%; margin: 0 auto; }
.content.wide { max-width: none; }

.page-header { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); flex-wrap: wrap; }
.page-header h1 { margin-right: auto; }

.offline-banner {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: var(--warning-bg); color: var(--warning);
  text-align: center; padding: 6px; font-size: 13px; font-weight: 500;
}

.menu-btn { display: none; }
.sidebar-backdrop { display: none; }

@media (max-width: 900px) {
  .sidebar { position: fixed; left: 0; top: 0; transform: translateX(-100%); transition: transform 0.2s; box-shadow: var(--shadow); }
  .sidebar.open { transform: translateX(0); }
  .sidebar-backdrop.show { display: block; position: fixed; inset: 0; background: var(--overlay); z-index: 25; }
  .menu-btn { display: inline-flex; }
  .content { padding: var(--space-4); }
  .topbar .search-btn span.label { display: none; }
  .topbar .search-btn kbd { display: none; }
}

/* Grades das telas */
.two-col { display: grid; grid-template-columns: 3fr 2fr; gap: var(--space-4); align-items: start; }
@media (max-width: 1000px) { .two-col { grid-template-columns: 1fr; } }

.board { display: grid; gap: var(--space-2); overflow-x: auto; padding-bottom: var(--space-2); }
.board.days-7 { grid-template-columns: 260px repeat(7, minmax(180px, 1fr)); }
.board.planning { grid-template-columns: 400px repeat(7, minmax(160px, 1fr)); }
@media (max-width: 900px) { .board.days-7, .board.planning { grid-template-columns: 240px repeat(7, 220px); } }
