/* ============================================================
   M.Mariot — folha unica, MOBILE-FIRST.
   Base = celular. Breakpoints usam min-width e ADICIONAM.

   Escuro, nao preto. Cada elemento tem superficie e borda
   proprias: a estrutura da tela e visivel, nao implicita.
   ============================================================ */

:root{
  /* Cinzas: escala quente, nao neutra — o marrom de fundo conversa
     com o dourado da identidade em vez de brigar com ele. */
  --canvas:#171714;        /* fundo da pagina — carvao, nao preto */
  --surface:#1F1E1B;       /* cartoes, dias, campos */
  --surface-2:#26251F;     /* elevacao: hover, cabecalhos de bloco */
  --surface-3:#2E2C26;     /* elevacao maxima */

  --gold:#C9A96E; --cream:#F8F5EE; --slate:#7A93A8;
  --text:#F2EFE8; --text-dim:#9A968C; --text-faint:#6E6A61;

  --border:#38352D;        /* borda visivel — divide sem gritar */
  --border-soft:#2B2924;   /* divisorias internas */
  --border-strong:#4A463C; /* foco, selecao */

  --ok:#97C459; --warn:#EF9F27; --danger:#E24B4A;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --pad:16px;
  --toque:44px;
  --raio:10px;
  --safe-l:env(safe-area-inset-left,0px);
  --safe-r:env(safe-area-inset-right,0px);
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--canvas);color:var(--text);
  font-family:var(--font);font-size:15px;line-height:1.5;
  padding-bottom:var(--safe-b);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
img{max-width:100%;height:auto}

.wrap{width:100%;max-width:1240px;margin:0 auto;
  padding-left:calc(var(--pad) + var(--safe-l));
  padding-right:calc(var(--pad) + var(--safe-r))}
.tabular{font-variant-numeric:tabular-nums}
.eyebrow{color:var(--gold);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.dim{color:var(--text-dim)} .faint{color:var(--text-faint)}

/* ---------- topo ---------- */
.topbar-out{border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:20;background:var(--surface)}
.topbar{display:flex;align-items:center;justify-content:space-between;
  min-height:52px;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:baseline;gap:9px;min-width:0}
.brand strong{font-size:15px;font-weight:500;letter-spacing:.02em}
.brand .eyebrow{font-size:10px}
.sair{display:inline-flex;align-items:center;min-height:var(--toque);
  padding:0 4px;color:var(--text-dim);font-size:13px}

.nav-out{border-bottom:1px solid var(--border);
  position:sticky;top:52px;z-index:19;background:var(--surface-2)}
.nav{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.nav::-webkit-scrollbar{display:none}
.nav a{flex:none;scroll-snap-align:start;
  display:inline-flex;align-items:center;min-height:var(--toque);
  color:var(--text-dim);font-size:13px;white-space:nowrap;
  border-bottom:2px solid transparent}
.nav a.on{color:var(--cream);border-bottom-color:var(--gold)}

/* ---------- faixa da semana ---------- */
.cabeca-semana{display:flex;align-items:center;justify-content:space-between;
  gap:12px;min-height:46px;border-bottom:1px solid var(--border-soft)}

/* BASE (celular): lista vertical. Nao e o grid encolhido — e outra leitura. */
.semana{display:flex;flex-direction:column;gap:8px;
  padding-top:14px;padding-bottom:22px}

/* TODO dia tem superficie e borda. A fronteira de cada elemento e visivel
   mesmo quando ele esta vazio — sem isso o olho nao tem contra o que alinhar. */
.dia{min-width:0;padding:11px 12px;border-radius:var(--raio);
  background:var(--surface);border:1px solid var(--border)}
.dia .rotulo{color:var(--text-dim);font-size:11px;letter-spacing:.1em;
  display:flex;align-items:center;justify-content:space-between;gap:8px}
.dia .rotulo .conta{color:var(--text-faint);letter-spacing:0}
.dia .lista{margin-top:10px}

/* Dia vazio: superficie mais discreta, MAS a moldura permanece. */
.dia.vazio{background:var(--canvas);border-color:var(--border-soft)}
.dia.vazio .lista{display:none}
.dia.passado{display:none}

/* HOJE e a unica superficie CLARA. `border-color` vem junto com o background
   na MESMA regra — o defeito anterior era o breakpoint sobrescrever so a cor
   da borda, com a mesma especificidade e depois na cascata. */
.hoje,.dia.hoje.vazio{background:var(--cream);border:1px solid var(--cream)}
.hoje .rotulo{color:#171714;font-weight:600}
.hoje .rotulo .conta{color:#6B6B66}

.slip{display:block;background:var(--surface-2);padding:9px 10px;
  margin-bottom:6px;border:1px solid var(--border-soft);
  border-left:3px solid var(--gold);border-radius:0 6px 6px 0;
  min-width:0;min-height:var(--toque)}
.slip:last-child{margin-bottom:0}
.slip.hub{border-left-color:var(--slate)}
.hoje .slip{background:#fff;border-color:#E4DFD2;border-left-color:var(--gold)}
.hoje .slip.hub{border-left-color:var(--slate)}
.slip .nome{font-size:13px;display:flex;justify-content:space-between;
  align-items:center;gap:8px;min-width:0}
.slip .nome span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hoje .slip .nome{color:#171714}
.slip .tarefa{color:var(--text-dim);font-size:12px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hoje .slip .tarefa{color:#6B6B66}
.ponto{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ok)}
.ponto.warn{background:var(--warn)} .ponto.danger{background:var(--danger)}

.vazio-msg{margin:6px 0 26px;padding:16px 18px;background:var(--surface);
  border:1px solid var(--border-soft);border-radius:var(--raio);
  color:var(--text-faint);font-size:13px;line-height:1.6}

/* ---------- login ---------- */
.login-wrap{min-height:100svh;display:flex;align-items:center;justify-content:center;
  padding:24px calc(var(--pad) + var(--safe-l)) 24px calc(var(--pad) + var(--safe-r))}
.login{width:100%;max-width:380px;background:var(--surface);
  border:1px solid var(--border);border-radius:14px;padding:26px 22px}
.login h1{font-size:24px;font-weight:500;margin:12px 0 4px;letter-spacing:-.01em}
.campo{margin-top:16px}
.campo label{display:block;color:var(--text-dim);font-size:12px;margin-bottom:7px}
/* 16px e obrigatorio: abaixo disso o Safari do iPhone da zoom ao focar. */
.campo input{width:100%;min-height:48px;background:var(--canvas);
  border:1px solid var(--border);border-radius:10px;padding:12px 14px;
  color:var(--text);font-size:16px;font-family:var(--font)}
.campo input:focus{outline:none;border-color:var(--gold);background:var(--surface-2)}
.btn{width:100%;min-height:48px;margin-top:20px;background:var(--gold);
  color:#171714;border:none;border-radius:10px;padding:12px;
  font-size:15px;font-weight:500;font-family:var(--font);cursor:pointer}
.btn:active{opacity:.86}
.erro{margin-top:16px;background:#2A1512;border:1px solid #4A2621;border-radius:10px;
  padding:11px 13px;color:#F09595;font-size:13px;line-height:1.5}

/* ---------- blocos, listas e formularios ---------- */
.bloco{background:var(--surface);border:1px solid var(--border);
  border-radius:var(--raio);padding:16px;margin:12px 0}
.bloco-cabeca{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.titulo-ficha{font-size:20px;font-weight:500;letter-spacing:-.01em;margin-bottom:6px}

.lista-cartoes{display:flex;flex-direction:column;gap:8px;padding-top:14px}
.cartao{display:block;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--raio);padding:13px 14px}
.cartao:active{background:var(--surface-2)}
.cartao-topo{display:flex;align-items:center;gap:9px;min-width:0}
.cartao-titulo{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cartao-meta{display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-top:5px;font-size:12px}

.barras{display:flex;gap:3px;flex:none}
.barra{display:block;width:3px;height:16px;border-radius:2px;background:var(--gold)}
.barra.hub360{background:var(--slate)}

.item-linha{display:flex;align-items:center;gap:10px;padding:9px 0;
  border-bottom:1px solid var(--border-soft);font-size:13px}
.item-linha:last-of-type{border-bottom:none}
.item-linha span:nth-child(2){flex:1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}

.form{margin-top:4px}
.form-item{border-top:1px solid var(--border-soft);margin-top:12px;padding-top:12px}
.linha{display:flex;flex-direction:column}
.campo select{width:100%;min-height:48px;background:var(--canvas);
  border:1px solid var(--border);border-radius:10px;padding:12px 14px;
  color:var(--text);font-size:16px;font-family:var(--font)}
.campo select:focus{outline:none;border-color:var(--gold)}
.btn-sec{background:transparent;color:var(--text);
  border:1px solid var(--border-strong)}

/* ============================================================
   >= 720px — a semana inteira lado a lado.
   ============================================================ */
@media (min-width:720px){
  :root{--pad:22px}
  body{font-size:14px}
  .nav{gap:22px}

  .semana{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));
    gap:6px;align-items:stretch;padding-top:18px;padding-bottom:26px}

  /* `align-items:stretch` (nao `start`): as sete colunas terminam na mesma
     altura, entao as molduras formam uma faixa continua em vez de degraus. */
  .dia{min-height:180px;padding:10px 9px}
  .dia .rotulo{display:block;margin-bottom:10px}
  .dia .rotulo .conta{display:none}
  .dia .lista{margin-top:0}
  .dia.vazio .lista{display:block}
  .dia.passado{display:block;opacity:.45}

  .slip{padding:7px 8px;margin-bottom:5px;min-height:0}
  .slip .nome{font-size:11px;gap:5px}
  .slip .tarefa{font-size:11px;margin-top:1px}
  .ponto{width:7px;height:7px}

  .cabeca-semana{min-height:44px}

  .lista-cartoes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .linha{flex-direction:row;gap:12px}
  .linha .campo{flex:1;min-width:0}
  .bloco{padding:18px 20px}
}

@media (min-width:1024px){
  :root{--pad:26px}
  .dia{min-height:200px}

  .lista-cartoes{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}
