/* layout/casca.css — Casca do app: grade, avatar (foto ou iniciais), área principal, topo, seletor de cliente, cabeçalho de página e chip do cliente. O menu lateral escuro está em lateral.css. */
.app { display: grid; grid-template-columns: var(--lateral) 1fr; min-height: 100vh; position: relative; z-index: 1; }
.avatar { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; color: #fff; background: var(--tinta); overflow: hidden; flex: none; position: relative; }
.avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avatar.sm { width: 28px; height: 28px; font-size: 11px; }
.avatar.lg { width: 96px; height: 96px; font-size: 30px; }

.principal { min-width: 0; }
.topo { position: sticky; top: 0; z-index: 30; height: var(--topo); display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 28px; background: var(--vidro); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.topo.rolou { border-color: var(--borda); box-shadow: 0 6px 20px rgba(18,18,18,.06); }
.topo .titulo { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.topo h1 { font-size: 18px; }
.topo .sub { color: var(--cinza); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topo-acoes { display: flex; align-items: center; gap: 10px; }
.seletor { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--borda-forte); border-radius: 999px; padding: 5px 12px 5px 12px; background: var(--superficie); font-size: 12px; transition: border-color .15s, box-shadow .15s; }
.seletor:hover { border-color: var(--tinta); }
.seletor label { color: var(--cinza); }
.seletor select { border: 0; background: transparent; font-weight: 600; padding: 2px 0; cursor: pointer; }
.seletor select:focus { outline: none; }
.seletor.trava { background: var(--fundo); color: var(--cinza); }
.seletor.demo { border-style: dashed; }

.conteudo { padding: 22px 28px 100px; }
.cabecalho-pagina { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.cabecalho-pagina .saudacao { font-size: 24px; font-weight: 800; color: var(--tinta); text-transform: uppercase; letter-spacing: .01em; }
.cabecalho-pagina .saudacao small { display: block; font-size: 13px; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--cinza); margin-top: 2px; }
.chip-cliente { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 8px; border-radius: 999px; background: var(--superficie); border: 1px solid var(--borda); font-size: 12px; font-weight: 600; color: var(--tinta); box-shadow: var(--sombra-1); }
.chip-cliente i { width: 22px; height: 22px; border-radius: 50%; background: var(--tinta); color: #fff; display: grid; place-items: center; font-size: 10px; font-style: normal; font-weight: 800; }
