  :root {
    --bg: #f5f2ed;
    --card: #ffffff;
    --text: #163AA0;
    --muted: #5567a0;
    --accent: #163AA0;
    --accent-light: #e8edf8;
    --border: #c8d2ec;
    --tag-bg: #edf0f8;
    --shadow: 0 2px 12px rgba(22,58,160,0.08);
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { font-family: 'DM Sans', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; }
  /* Impede o "puxar para recarregar" (pull-to-refresh) no celular, evitando perda da vistoria em andamento.
     A rolagem normal continua funcionando; só o recarregamento acidental ao puxar além do topo é bloqueado. */
  html, body { overscroll-behavior-y: contain; }

  header {
    background: #0238A4;
    color: #ffffff;
    padding: 1.5rem 2rem;
    position: sticky; top: 0; z-index: 100;
    display: flex; flex-direction: column; gap: 1rem;
  }
  .header-top { display: flex; align-items: center; gap: 1.25rem; }
  .logo-img { height: 36px; width: auto; display: block; border-radius: 4px; }
  .header-brand { display: flex; flex-direction: column; justify-content: center; align-items: center; width: fit-content; gap: 4px; }
  .casadir-label { font-family: 'DM Sans', sans-serif; font-size: 0.7rem; font-weight: 600; color: rgba(255,255,255,0.55); letter-spacing: 0.14em; text-transform: uppercase; }
  .subtitle { font-size: 0.72rem; color: rgba(255,255,255,0.75); font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.3; }

  .section-switch { display: flex; gap: 0.25rem; margin-bottom: 0.75rem; flex-wrap: nowrap; overflow-x: auto; }
  .section-switch::-webkit-scrollbar { display: none; }
  .sw-btn {
    padding: 0.28rem 0.65rem; border-radius: 20px; font-size: 0.72rem; font-weight: 500;
    cursor: pointer; border: 1.5px solid rgba(255,255,255,0.35);
    background: transparent; color: rgba(255,255,255,0.7);
    font-family: 'DM Sans', sans-serif; transition: all 0.15s;
    white-space: nowrap; flex-shrink: 0;
  }
  #btnPerformance { font-size: 0.70rem; padding: 0.28rem 0.62rem; }
  .sw-btn:hover { background: rgba(255,255,255,0.15); color: #fff; }
  .sw-btn.active { background: #fff; color: #0238A4; border-color: #fff; }

  .search-row { display:flex; gap: 0.5rem; }
  #searchInput {
    flex: 1; padding: 0.6rem 1rem; border: 1px solid rgba(255,255,255,0.25);
    background: rgba(255,255,255,0.15); color: #ffffff; border-radius: 6px;
    font-family: 'DM Sans', sans-serif; font-size: 0.9rem;
    outline: none; transition: border-color 0.2s;
  }
  #searchInput::placeholder { color: rgba(255,255,255,0.5); }
  #searchInput:focus { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.2); }
  .clear-btn {
    padding: 0.6rem 1rem; background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.8);
    border: 1px solid rgba(255,255,255,0.25); border-radius: 6px; cursor: pointer; font-size: 0.85rem;
    font-family: 'DM Sans', sans-serif; transition: all 0.15s;
  }
  .clear-btn:hover { background: rgba(255,255,255,0.3); color: #fff; }

  .tabs-wrap { padding: 0.75rem 2rem 0.5rem; background: #012d80; overflow-x: auto; white-space: nowrap; position: sticky; top: 0; z-index: 99; box-shadow: 0 2px 8px rgba(15,45,133,0.15); }
  .tabs-wrap::-webkit-scrollbar { height: 3px; }
  .tabs-wrap::-webkit-scrollbar-track { background: transparent; }
  .tabs-wrap::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 2px; }
  .tab {
    display: inline-block; padding: 0.35rem 0.75rem; margin-right: 0.25rem;
    border-radius: 4px; font-size: 0.78rem; cursor: pointer;
    color: rgba(255,255,255,0.6); border: 1px solid transparent;
    transition: all 0.15s; font-weight: 400;
  }
  .tab:hover { color: #fff; border-color: rgba(255,255,255,0.3); }
  .tab.active { background: #ffffff; color: #163AA0; border-color: #ffffff; font-weight: 600; }

  .main { padding: 1.5rem 2rem; max-width: 1100px; margin: 0 auto; }

  .stats-bar {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 0.4rem;
    margin-bottom: 1.25rem; font-size: 0.82rem; color: var(--muted);
  }
  #statsText { display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem; }
  .stats-bar strong { color: #163AA0; }

  .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 1rem; }

  .card {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 10px; padding: 1.1rem 1.25rem;
    box-shadow: var(--shadow); transition: box-shadow 0.2s, transform 0.15s;
    display: flex; flex-direction: column; gap: 0.6rem;
  }
  .card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.1); transform: translateY(-1px); }

  .card-head { display: flex; align-items: flex-start; gap: 0.75rem; }
  .bloco-badge {
    width: 38px; height: 38px; border-radius: 8px; flex-shrink: 0;
    background: var(--accent); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-family: 'DM Serif Display', serif; font-size: 1rem;
  }
  .card-title { font-weight: 600; font-size: 0.93rem; line-height: 1.3; }
  .card-loja { font-size: 0.75rem; color: var(--muted); margin-top: 1px; }

  .tags { display: flex; flex-wrap: wrap; gap: 0.3rem; }
  .tag {
    font-size: 0.7rem; padding: 0.18rem 0.6rem; border-radius: 4px;
    background: var(--tag-bg); color: var(--muted); font-weight: 500;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
  }
  .tag.pav { background: #e8f4ee; color: #2d6a4f; }
  .tag.bloco-tag { background: var(--accent-light); color: var(--accent); }
  .tag.status-em-breve   { background: #fef3cd; color: #856404; }
  .tag.tag-ao-vivo       { background: #fde8e8; color: #b91c1c; font-weight: 700; animation: pulsar 1.5s infinite; }
  .tag.tag-realizado     { background: #d1fae5; color: #065f46; }
  .tag.tag-hoje          { background: #dbeafe; color: #1e40af; font-weight: 700; }
  .tag.tag-esta-semana   { background: #ede9fe; color: #5b21b6; }
  @keyframes pulsar { 0%,100%{opacity:1} 50%{opacity:0.65} }
  .tag.status-vazia { background: #f8d7da; color: #842029; }
  .tag.status-fechada { background: #e2e3e5; color: #41464b; }

  .card-info { font-size: 0.78rem; color: var(--muted); line-height: 1.6; }
  .card-info .phone { color: #163AA0; font-weight: 600; }
  .card-info .ramal { color: var(--muted); }
  .card-info .ramo { color: #5567a0; font-style: italic; margin-top: 0.2rem; }
  .card-info .horario { margin-top: 0.2rem; color: #7a8bb5; }

  .empty { text-align: center; padding: 4rem 2rem; color: var(--muted); }
  .empty .big { font-family: 'DM Serif Display', serif; font-size: 3rem; color: #ddd; display: block; margin-bottom: 0.5rem; }

  /* ── DEPT SELECTOR ── */
  .dept-wrap { display:flex; flex-direction:column; align-items:center; padding: 2rem 1rem; }
  .dept-title { font-family:"DM Serif Display",serif; font-size:1.5rem; color:#0238A4; margin-bottom:0.4rem; text-align:center; }
  .dept-sub { font-size:0.85rem; color:var(--muted); margin-bottom:2rem; text-align:center; }
  .dept-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; width:100%; max-width:700px; }
  .dept-card { background:var(--card); border:2px solid var(--border); border-radius:14px; padding:1.75rem 1rem; text-align:center; cursor:pointer; transition:all 0.2s; box-shadow:var(--shadow); }
  .dept-card:hover { border-color:#0238A4; transform:translateY(-3px); box-shadow:0 8px 24px rgba(2,56,164,0.15); }
  .dept-icon { font-size:2.2rem; display:block; margin-bottom:0.75rem; }
  .dept-name { font-size:0.95rem; font-weight:700; color:#0238A4; }
  .dept-count { font-size:0.78rem; color:var(--muted); margin-top:0.25rem; }
  @media(max-width:600px){ .dept-grid { grid-template-columns:1fr; } }


  /* ── ACHADOS E PERDIDOS ── */
  .ap-wrap { max-width: 760px; margin: 0 auto; }
  .ap-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; flex-wrap: wrap; gap: 0.5rem; }
  .ap-btn { padding: 0.45rem 1.1rem; border-radius: 8px; font-size: 0.82rem; font-weight: 600; cursor: pointer; font-family: "DM Sans", sans-serif; border: none; transition: all 0.15s; }
  .ap-btn-primary { background: #0238A4; color: #fff; }
  .ap-btn-primary:hover { background: #0230A0; }
  .ap-btn-danger { background: #842029; color: #fff; }
  .ap-btn-danger:hover { background: #6a1a21; }
  .ap-btn-success { background: #2d6a4f; color: #fff; }
  .ap-btn-success:hover { background: #245940; }
  .ap-btn-secondary { background: #e8edf8; color: #0238A4; border: 1.5px solid #c5d1ed; }
  .ap-btn-secondary:hover { background: #d0daf5; }
  .ap-btn-ghost { background: transparent; color: #0238A4; border: 1.5px solid #0238A4; }
  .ap-btn-ghost:hover { background: #e8edf8; }
  /* Barra de busca */
  .ap-search-bar { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: 1rem; box-shadow: var(--shadow); }
  .ap-search-input-wrap { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
  .ap-search-icon { font-size: 1rem; flex-shrink: 0; }
  .ap-search-input { flex: 1; border: 1.5px solid var(--border); border-radius: 8px; padding: 0.5rem 0.75rem; font-size: 0.85rem; font-family: "DM Sans", sans-serif; color: var(--text); background: var(--bg); transition: border-color 0.15s; }
  .ap-search-input:focus { outline: none; border-color: #0238A4; }
  .ap-search-clear { background: none; border: none; cursor: pointer; font-size: 0.9rem; color: var(--muted); padding: 0.2rem 0.4rem; border-radius: 4px; }
  .ap-search-clear:hover { background: var(--bg); color: var(--text); }
  .ap-filter-tabs { display: flex; gap: 0.4rem; flex-wrap: wrap; }
  .ap-filter-tab { padding: 0.3rem 0.85rem; border-radius: 20px; font-size: 0.78rem; font-weight: 600; cursor: pointer; font-family: "DM Sans", sans-serif; border: 1.5px solid var(--border); background: var(--bg); color: var(--muted); transition: all 0.15s; }
  .ap-filter-tab.active { background: #0238A4; color: #fff; border-color: #0238A4; }
  .ap-filter-tab:hover:not(.active) { border-color: #0238A4; color: #0238A4; }
  .ap-form { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem; margin-bottom: 1.25rem; box-shadow: var(--shadow); }
  .ap-form-title { font-size: 0.78rem; font-weight: 700; color: #0238A4; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1rem; }
  .ap-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
  @media(max-width:600px){ .ap-form-grid { grid-template-columns: 1fr; } }
  .ap-field { display: flex; flex-direction: column; gap: 0.3rem; }
  .ap-field label { font-size: 0.74rem; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
  .ap-field input, .ap-field textarea, .ap-field select { padding: 0.5rem 0.75rem; border: 1px solid var(--border); border-radius: 7px; font-size: 0.85rem; font-family: "DM Sans", sans-serif; color: var(--text); background: var(--bg); transition: border-color 0.15s; }
  .ap-field input:focus, .ap-field textarea:focus { outline: none; border-color: #0238A4; }
  .ap-field textarea { resize: vertical; min-height: 60px; }
  .ap-field-full { grid-column: 1 / -1; }
  .ap-form-actions { display: flex; gap: 0.5rem; justify-content: flex-end; margin-top: 1rem; }
  .ap-list { display: flex; flex-direction: column; gap: 0.75rem; }
  .ap-item { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 1rem 1.25rem; box-shadow: var(--shadow); }
  .ap-item-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; gap: 0.5rem; flex-wrap: wrap; }
  .ap-item-id { font-size: 0.72rem; font-weight: 700; color: var(--muted); }
  .ap-item-status { font-size: 0.7rem; font-weight: 700; padding: 0.2rem 0.65rem; border-radius: 4px; }
  .ap-status-pendente { background: #fef3cd; color: #856404; }
  .ap-status-devolvido { background: #e8f4ee; color: #2d6a4f; }
  .ap-item-desc { font-size: 0.9rem; font-weight: 600; color: var(--text); margin-bottom: 0.4rem; }
  .ap-item-meta { display: flex; flex-wrap: wrap; gap: 0.75rem; font-size: 0.78rem; color: var(--muted); margin-bottom: 0.6rem; }
  .ap-item-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }
  .ap-loading { text-align: center; padding: 2rem; color: var(--muted); font-size: 0.9rem; }
  .ap-empty { text-align: center; padding: 3rem 1rem; color: var(--muted); }
  .ap-pin-msg { font-size: 0.78rem; color: #842029; margin-top: 0.5rem; display: none; }


  /* ── SAC / CONCIERGES ── */
  .sac-label {
    font-size:0.74rem;font-weight:600;color:var(--muted);
    text-transform:uppercase;letter-spacing:0.06em;
    display:block;margin-bottom:0.4rem;
  }
  .sac-select, .sac-input {
    width:100%;padding:0.6rem 0.75rem;
    border:1.5px solid var(--border);border-radius:8px;
    font-size:0.88rem;font-family:'DM Sans',sans-serif;
    color:var(--text);background:var(--card);
    transition:border-color 0.15s;box-sizing:border-box;
  }
  .sac-select:focus, .sac-input:focus {
    outline:none;border-color:#0238A4;
  }
  .sac-select:disabled, .sac-input:disabled {
    opacity:0.5;cursor:not-allowed;
  }

  /* ── ROTINA DIÁRIA ── */
  .rd-hub-card { display:flex; align-items:center; gap:1rem; background:var(--card); border:1px solid var(--border); border-radius:12px; padding:1rem 1.25rem; cursor:pointer; transition:all 0.15s; box-shadow:var(--shadow); }
  .rd-hub-card:hover:not(.rd-hub-disabled) { border-color:#0238A4; box-shadow:0 2px 12px rgba(2,56,164,0.12); transform:translateY(-1px); }
  .rd-hub-disabled { opacity:0.55; cursor:default; }
  .rd-hub-icon { font-size:1.5rem; flex-shrink:0; width:2.5rem; text-align:center; }
  .rd-hub-text { flex:1; }
  .rd-hub-label { font-size:0.9rem; font-weight:600; color:var(--text); margin-bottom:0.1rem; }
  .rd-hub-desc { font-size:0.75rem; color:var(--muted); }

  /* ── ROTINA DIÁRIA — layout em grade (cards estilo hub) ── */
  .rd-sec-label { font-size:0.72rem; font-weight:700; letter-spacing:0.06em; color:#8a97bd; text-transform:uppercase; margin:0 0 0.7rem; padding-bottom:0.45rem; border-bottom:1px solid #e0e5f0; }
  .rd-sec-label + .rd-grid { margin-bottom:1.5rem; }
  .rd-grid { display:grid; grid-template-columns:1fr; gap:0.75rem; margin-bottom:1.25rem; }
  .rd-card { background:var(--card); border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:border-color 0.15s, box-shadow 0.15s, transform 0.15s; }
  .rd-card:hover { border-color:#0238A4; box-shadow:0 4px 16px rgba(2,56,164,0.12); transform:translateY(-1px); }
  .rd-card-main { display:flex; align-items:flex-start; gap:0.85rem; padding:1.1rem 1.15rem; cursor:pointer; flex:1; }
  .rd-card-ico { width:44px; height:44px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1.35rem; background:var(--accent-light); }
  .rd-card-body { flex:1; min-width:0; }
  .rd-card-title { font-size:0.94rem; font-weight:600; color:var(--text); line-height:1.25; }
  .rd-card-desc { font-size:0.78rem; color:var(--muted); margin-top:0.15rem; line-height:1.3; }
  .rd-card-arrow { color:var(--muted); font-size:1.1rem; flex-shrink:0; margin-top:0.15rem; }
  .rd-card-hist { display:flex; align-items:center; gap:0.4rem; border:none; border-top:1px solid var(--border); background:transparent; width:100%; padding:0.6rem 1.15rem; cursor:pointer; color:#0238A4; font-size:0.78rem; font-weight:600; font-family:inherit; transition:background 0.15s; }
  .rd-card-hist:hover { background:var(--accent-light); }

  /* ── Botão "Início" (pill) — padrão de voltar em todas as páginas ── */
  .home-pill { display:inline-flex; align-items:center; gap:0.4rem; background:transparent; border:1.5px solid var(--border); border-radius:999px; padding:0.4rem 0.9rem; font-size:0.8rem; font-weight:600; color:#0238A4; cursor:pointer; font-family:inherit; transition:all 0.15s; text-decoration:none; }
  .home-pill:hover { border-color:#0238A4; background:var(--accent-light); }
  .home-pill .ti { font-size:1rem; }
  .home-crumb { font-size:0.85rem; font-weight:600; color:var(--text); }
  .home-crumb-link { color:#0238A4; cursor:pointer; }
  .home-crumb-link:hover { text-decoration:underline; }
  .rotina-pill { display:inline-flex; align-items:center; gap:0.4rem; background:transparent; border:1.5px solid var(--border); border-radius:999px; padding:0.4rem 0.9rem; font-size:0.8rem; font-weight:600; color:#0238A4; cursor:pointer; font-family:inherit; transition:all 0.15s; }
  .rotina-pill:hover { border-color:#0238A4; background:var(--accent-light); }
  .rotina-pill .ti { font-size:1rem; }
  .home-crumb-sep { color:var(--muted); margin:0 0.1rem; }

  /* ── PIN ── */
  .pin-overlay { display:flex; flex-direction:column; align-items:center; justify-content:center; padding: 3rem 1rem; }
  .pin-box { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: 2.5rem 2rem; text-align:center; max-width: 320px; width:100%; box-shadow: var(--shadow); }
  .pin-title { font-family:"DM Serif Display",serif; font-size:1.4rem; color:#0238A4; margin-bottom:0.4rem; }
  .pin-sub { font-size:0.82rem; color:var(--muted); margin-bottom:1.5rem; }
  .pin-dots { display:flex; justify-content:center; gap:0.75rem; margin-bottom:1.5rem; }
  .pin-dot { width:14px; height:14px; border-radius:50%; border:2px solid #0238A4; background:transparent; transition:background 0.15s; }
  .pin-dot.filled { background:#0238A4; }
  .pin-pad { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; margin-bottom:1rem; }
  .pin-btn { padding:0.9rem; border:1px solid var(--border); border-radius:8px; background:var(--card); font-size:1.1rem; font-weight:600; color:#0238A4; cursor:pointer; font-family:"DM Sans",sans-serif; transition:all 0.15s; }
  .pin-btn:hover { background:#0238A4; color:#fff; border-color:#0238A4; }
  .pin-del { grid-column:3; font-size:1rem; color:var(--muted); }
  .pin-error { font-size:0.8rem; color:#842029; margin-top:0.25rem; min-height:1.2rem; }

  /* ── PERFORMANCE v2 — novos estilos ── */

  /* Estrutura base dos cards */
  .perf-card    { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: .85rem 1rem; margin-bottom: .65rem; }
  .perf-kpi     { display: flex; flex-direction: column; gap: .1rem; }
  .perf-value   { font-family: "DM Serif Display", serif; font-size: 2.2rem; line-height: 1.1; color: var(--text); }
  .perf-badge   { display: inline-block; font-size: .67rem; font-weight: 600; padding: .18rem .55rem; border-radius: 20px; margin-top: .3rem; }

  /* Grid de KPIs */
  .perf-row-kpis { display: grid; grid-template-columns: repeat(4, 1fr) !important; gap: .65rem; margin-bottom: .65rem; }
  @media (max-width: 860px) { .perf-row-kpis { grid-template-columns: 1fr 1fr !important; } }
  @media (max-width: 500px) { .perf-row-kpis { grid-template-columns: 1fr 1fr !important; } }
  .perf-kpi.new-kpi { border-color: #b7dfc9; background: linear-gradient(135deg,#f6fdf9,#fff); }
  .perf-kpi.hl-kpi  { border-color: #c5d1ed; background: linear-gradient(135deg,#f0f4ff,#fff); }
  .perf-value-green { color: #2d6a4f !important; }
  .perf-value-amber { color: #856404 !important; }
  .perf-value-sm    { font-size: 1.8rem !important; }
  .perf-badge-red   { background: #fdecea; color: #842029; }
  .perf-badge-purple{ background: #ede9fe; color: #5b21b6; }
  .perf-badge-blue  { background: #e8edf8; color: #0238A4; }
  .perf-badge-green { background: #eaf0fb; color: #4a6bb5; }
  .perf-badge-yellow{ background: #fef3cd; color: #856404; }

  /* ── perf-card base + auxiliares ── */
  .perf-title  { font-size: .73rem; font-weight: 600; color: var(--muted); margin-bottom: .18rem; text-transform: uppercase; letter-spacing: .04em; }
  .perf-label  { font-size: .7rem; color: var(--muted); margin-top: .1rem; }
  .perf-wrap   { display: flex; flex-direction: column; gap: 0; padding: 0; }
  .perf-tag-row{ display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .55rem; }

  /* ── barras horizontais ── */
  .perf-chart-wrap  { display: flex; flex-direction: column; gap: .3rem; margin-top: .4rem; }
  .perf-bar-row     { display: flex; align-items: center; gap: .5rem; }
  .perf-bar-label   { font-size: .72rem; color: var(--text); min-width: 130px; max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .perf-bar-label.lw{ min-width: 60px; max-width: 75px; }
  .perf-bar-track   { flex: 1; height: 8px; background: #edf0f8; border-radius: 5px; overflow: hidden; }
  .perf-bar-fill    { height: 100%; border-radius: 5px; transition: width .3s; }
  .perf-bar-val     { font-size: .72rem; font-weight: 600; color: var(--text); min-width: 24px; text-align: right; }
  .perf-bar-pct     { font-size: .66rem; color: var(--muted); min-width: 38px; text-align: right; }
  .perf-new-tag     { color: #2d6a4f; font-size: 0.56rem; background: #e8f4ee; padding: 1px 4px; border-radius: 3px; margin-left: 3px; vertical-align: middle; font-weight: 700; }
  .perf-sec-label   { font-size: 0.63rem; font-weight: 700; color: #0238A4; text-transform: uppercase; letter-spacing: .1em; padding-bottom: .32rem; border-bottom: 2px solid #0238A4; margin-bottom: .65rem; margin-top: .25rem; }
  .perf-charts-2    { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .perf-charts-3    { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }
  @media (max-width: 860px) { .perf-charts-2, .perf-charts-3 { grid-template-columns: 1fr; } }
  .perf-card.new-card { border-color: #b7dfc9; }
  .perf-turno-split { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin-top: .5rem; }
  .perf-turno-box   { border-radius: 8px; padding: .55rem .7rem; display: flex; flex-direction: column; gap: .18rem; }
  .ptb-m { background: #e8f4ee; border: 1px solid #b7dfc9; }
  .ptb-t { background: #fef3cd; border: 1px solid #e8d090; }
  .ptb-title{ font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
  .ptb-title.m { color: #2d6a4f; } .ptb-title.t { color: #856404; }
  .ptb-val  { font-family: "DM Serif Display", serif; font-size: 1.5rem; line-height: 1; }
  .ptb-val.m{ color: #2d6a4f; } .ptb-val.t { color: #856404; }
  .ptb-sub  { font-size: .66rem; color: var(--muted); }
  .perf-canal-row   { display: flex; flex-direction: column; gap: .28rem; margin-bottom: .6rem; }
  .perf-canal-hdr   { display: flex; justify-content: space-between; align-items: center; font-size: .74rem; }
  .perf-canal-nome  { font-weight: 600; color: var(--text); }
  .perf-canal-tot   { font-size: .66rem; color: var(--muted); }
  .perf-canal-stack { height: 8px; border-radius: 5px; overflow: hidden; display: flex; gap: 1px; }
  .pcs-p { background: #0238A4; height: 100%; border-radius: 5px 0 0 5px; }
  .pcs-t { background: #b7c9f0; height: 100%; border-radius: 0 5px 5px 0; }
  .perf-canal-leg   { display: flex; gap: .6rem; font-size: .63rem; color: var(--muted); margin-top: .16rem; }
  .pcl-dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; margin-right: 2px; vertical-align: middle; }
  .perf-tma-row  { display: flex; flex-direction: column; gap: .26rem; margin-bottom: .65rem; }
  .perf-tma-hdr  { display: flex; align-items: center; justify-content: space-between; }
  .perf-tma-nome { font-size: .78rem; font-weight: 600; color: var(--text); }
  .perf-tma-val  { font-size: .78rem; font-weight: 700; color: #2d6a4f; }
  .perf-tma-sub  { font-size: .66rem; color: var(--muted); }
  .perf-tma-tr   { height: 5px; background: #e8f4ee; border-radius: 3px; overflow: hidden; }
  .perf-tma-fi   { height: 100%; border-radius: 3px; background: #2d6a4f; }
  .perf-nota-box { background: #e8f4ee; border: 1px solid #b7dfc9; border-radius: 8px; padding: .48rem .72rem; font-size: .72rem; color: #2d6a4f; display: flex; gap: .42rem; align-items: flex-start; margin-top: .6rem; }
  .perf-proj-box { background: #fef3cd; border: 1px solid #e8d090; border-radius: 8px; padding: .48rem .72rem; font-size: .72rem; color: #856404; display: flex; gap: .42rem; align-items: flex-start; margin-top: .6rem; }
  .perf-dest-box { background: #ede9fe; border: 1px solid #c4b5fd; border-radius: 8px; padding: .48rem .72rem; font-size: .72rem; color: #5b21b6; display: flex; gap: .42rem; align-items: flex-start; margin-top: .6rem; }
  .perf-hora-chart { display: flex; flex-direction: column; gap: 0; height: 56px; margin-top: .55rem; overflow: visible; }
  .phb-bars { display: flex; align-items: flex-end; gap: 2px; flex: 1; height: 100%; }
  .phb-lbls { display: flex; gap: 2px; height: 11px; margin-top: 2px; }
  .phbw { flex: 1; height: 100%; position: relative; }
  .phbw:hover .phb-tip { display: block; }
  .phbc { width: 100%; border-radius: 3px 3px 0 0; background: #edf0f8; position: absolute; bottom: 0; left: 0; }
  .phbc.pk { background: #0238A4; } .phbc.hi { background: #3a5bc7; }
  .phbl { font-size: .5rem; color: var(--muted); white-space: nowrap; flex: 1; text-align: center; }
  .phb-tip { display: none; position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%); background: #1e293b; color: #fff; font-size: .55rem; padding: 2px 5px; border-radius: 4px; white-space: nowrap; pointer-events: none; z-index: 10; }
  .phb-tip::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 3px solid transparent; border-top-color: #1e293b; }
  .perf-digital-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .5rem; }
  .pdbox { border-radius: 8px; padding: .55rem .7rem; text-align: center; }
  .pdbox.wa { background: #dcfce7; border: 1px solid #86efac; }
  .pdbox.em { background: #e8edf8; border: 1px solid #c5d1ed; }
  .pdval { font-family: "DM Serif Display", serif; font-size: 1.5rem; line-height: 1; }
  .pdval.wa { color: #16a34a; } .pdval.em { color: #0238A4; }
  .pdlbl { font-size: .66rem; color: var(--muted); margin-top: .18rem; }
  .perf-total-banner { background: #0238A4; border-radius: 11px; padding: .9rem 1rem; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: .65rem; flex-wrap: wrap; margin-bottom: .25rem; }
  .ptbi { text-align: center; min-width: 55px; }
  .ptbv { font-family: "DM Serif Display", serif; font-size: 1.65rem; line-height: 1; }
  .ptbl { font-size: .57rem; opacity: .7; margin-top: .12rem; letter-spacing: .03em; }
  .ptdiv{ width: 1px; height: 34px; background: rgba(255,255,255,.22); flex-shrink: 0; }
  .perf-mes-bar { display: flex; align-items: center; gap: .65rem; margin-bottom: .5rem; flex-wrap: wrap; }
  .perf-mes-sel { padding: .3rem .65rem; border: 1.5px solid var(--border); border-radius: 8px; font-size: .8rem; font-family: inherit; background: transparent; color: var(--text); outline: none; cursor: pointer; }
  .perf-mes-sel:focus { border-color: #0238A4; }
  .perf-dept-pills { display: flex; gap: .4rem; flex-wrap: wrap; }
  .perf-dept-menu { position: relative; display: inline-block; }
  .perf-dept-trigger { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border-radius: 20px; font-size: .78rem; font-weight: 600; cursor: pointer; border: 1.5px solid var(--border); background: var(--bg); color: var(--text); transition: all .15s; font-family: inherit; }
  .perf-dept-trigger:hover { border-color: #0238A4; color: #0238A4; }
  .perf-dept-caret { font-size: .65rem; opacity: .7; }
  .perf-dept-pop { display: none; position: absolute; top: calc(100% + 4px); left: 0; z-index: 50; min-width: 168px; background: var(--card); border: 1.5px solid var(--border); border-radius: 10px; box-shadow: 0 6px 22px rgba(0,0,0,.14); padding: .25rem; flex-direction: column; gap: .12rem; }
  .perf-dept-pop.open { display: flex; }
  .perf-dept-item { display: block; width: 100%; text-align: left; padding: .42rem .7rem; border-radius: 7px; font-size: .8rem; font-weight: 600; cursor: pointer; border: none; background: transparent; color: var(--text); transition: all .12s; font-family: inherit; }
  .perf-dept-item:hover { background: var(--bg); color: #0238A4; }
  .perf-dept-item.active { background: #0238A4; color: #fff; }
  .perf-status-bar { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .2rem; }
  .psp-live { background: #fdecea; color: #842029; border: 1px solid #f5c0bb; display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;padding:.2rem .65rem;border-radius:20px; }
  .psp-comp { background: #e8f4ee; color: #2d6a4f; border: 1px solid #b7dfc9; display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;padding:.2rem .65rem;border-radius:20px; }
  .psp-warn { background: #fef3cd; color: #856404; border: 1px solid #e8d090; display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;padding:.2rem .65rem;border-radius:20px; }
  .psp-dot  { width: 6px; height: 6px; border-radius: 50%; background: currentColor; animation: pspulse 1.5s infinite; }
  @keyframes pspulse { 0%,100%{opacity:1} 50%{opacity:.4} }
  .pdept-lbl { font-size: .74rem; color: var(--muted); }


  /* ── MENU HAMBÚRGUER ── */
  .hamburger { background: rgba(255,255,255,0.12); border: 0.5px solid rgba(255,255,255,0.25); border-radius: 10px; cursor: pointer; padding: 7px 8px; color: #fff; display: flex; flex-direction: column; gap: 5px; flex-shrink: 0; transition: background 0.15s; }
  .hamburger:hover { background: rgba(255,255,255,0.2); }
  .hamburger span { display: block; width: 20px; height: 2px; background: #fff; border-radius: 2px; transition: all 0.25s; }
  .hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .hamburger.open span:nth-child(2) { opacity: 0; }
  .hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 200; opacity: 0; pointer-events: none; transition: opacity 0.25s; }
  .menu-overlay.open { opacity: 1; pointer-events: all; }
  .menu-drawer { position: fixed; top: 0; right: -100%; width: 280px; max-width: 80vw; background: var(--card); height: 100%; z-index: 201; transition: right 0.28s cubic-bezier(.4,0,.2,1); box-shadow: -4px 0 24px rgba(0,0,0,0.15); display: flex; flex-direction: column; }
  .menu-drawer.open { right: 0; }
  .menu-drawer-header { background: #0238A4; padding: 1.5rem 1.25rem 1.25rem; }
  .menu-drawer-title { color: #fff; font-weight: 700; font-size: 1rem; font-family: "DM Sans", sans-serif; }
  .menu-drawer-sub { color: rgba(255,255,255,0.55); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; margin-top: 3px; }
  .menu-items { padding: 0.5rem 0; flex: 1; overflow-y: auto; }
  .menu-item { display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem 1.25rem; cursor: pointer; border-bottom: 0.5px solid var(--border); transition: background 0.15s; text-decoration: none; }
  .menu-item:hover { background: var(--bg); }
  .menu-item:last-child { border-bottom: none; }
  .menu-item-icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
  .menu-item-text { flex: 1; }
  .menu-item-label { font-size: 0.88rem; font-weight: 600; color: var(--text); font-family: "DM Sans", sans-serif; }
  .menu-item-desc { font-size: 0.75rem; color: var(--muted); margin-top: 1px; }
  .menu-item-arrow { color: var(--muted); font-size: 1rem; }
  .menu-footer { padding: 1rem 1.25rem; border-top: 0.5px solid var(--border); }
  .menu-footer-text { font-size: 0.72rem; color: var(--muted); text-align: center; }

  @media (max-width: 640px) {
    /* padding vertical simétrico: centraliza logo+subtítulo na faixa azul
       (antes 1.25rem topo / 1rem base empurrava o conteúdo p/ cima) */
    header { padding: 1.1rem 1rem; }
    .tabs-wrap { padding: 0.5rem 1rem 0; }
    .main { padding: 1rem; }
    .grid { grid-template-columns: 1fr; }
  }

  /* ── SALAS QUE SAÍRAM ── */
  .saidas-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.5rem; margin-bottom:1rem; }
  .saidas-title { font-family:"DM Serif Display",serif; font-size:1.1rem; color:#0238A4; }
  .saidas-badge { background:#0238A4; color:#fff; font-size:0.72rem; font-weight:700; padding:0.2rem 0.6rem; border-radius:20px; white-space:nowrap; }
  .saidas-link { font-size:0.78rem; color:#0238A4; text-decoration:none; border:1.5px solid #0238A4; border-radius:6px; padding:0.2rem 0.6rem; white-space:nowrap; }
  .saidas-link:hover { background:#e8edf8; }
  .saidas-search-wrap { position:relative; margin-bottom:1rem; }
  .saidas-search-input { width:100%; box-sizing:border-box; padding:0.55rem 2.2rem 0.55rem 0.9rem; border:1.5px solid #cdd2e0; border-radius:8px; font-size:0.85rem; font-family:"DM Sans",sans-serif; background:#f8f9fc; }
  .saidas-search-input:focus { outline:none; border-color:#0238A4; background:#fff; }
  .saidas-clear { position:absolute; right:0.6rem; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:1rem; color:#888; display:none; }
  .saidas-list { display:flex; flex-direction:column; gap:0.5rem; max-height:380px; overflow-y:auto; }
  .saidas-item { background:#f8f9fc; border:1px solid #e2e6f0; border-radius:8px; padding:0.65rem 0.9rem; }
  .saidas-item-empresa { font-weight:600; font-size:0.88rem; color:#1a2a4a; }
  .saidas-item-meta { font-size:0.76rem; color:#667; margin-top:0.2rem; display:flex; flex-wrap:wrap; gap:0.4rem; }
  .saidas-item-meta span { background:#e8edf8; border-radius:4px; padding:0.1rem 0.4rem; }
  .saidas-empty { text-align:center; padding:1.5rem; color:#667; font-size:0.85rem; }
  .saidas-section { margin-top:1.5rem; border-top:2px dashed #e2e6f0; padding-top:1.2rem; }
  /* link contador salas saídas próximo ao stats */
  .saidas-inline-link { display:inline-flex; align-items:center; gap:0.35rem; font-size:0.75rem; color:#0238A4; text-decoration:none; border:1px solid #c5cfe8; border-radius:6px; padding:0.18rem 0.55rem; margin-left:0.4rem; vertical-align:middle; font-family:"DM Sans",sans-serif; white-space:nowrap; flex-shrink:0; }
  .saidas-inline-link:hover { background:#e8edf8; }



  /* ── SAÍDAS page ── */
  .saidas-page { max-width:720px; margin:0 auto; }
  .saidas-page-header { display:flex; align-items:center; gap:0.8rem; margin-bottom:1.1rem; flex-wrap:wrap; }
  .saidas-back-btn { background:none; border:1.5px solid #0238A4; color:#0238A4; border-radius:8px; padding:0.3rem 0.75rem; font-size:0.82rem; cursor:pointer; font-family:inherit; }
  .saidas-back-btn:hover { background:#e8edf8; }
  .saidas-page-title { font-family:"DM Serif Display",serif; font-size:1.15rem; color:#0238A4; }
  .saidas-page-count { font-size:0.78rem; color:var(--muted); background:#f0f4ff; border-radius:12px; padding:0.15rem 0.6rem; }
  .saidas-page-search-wrap { position:relative; margin-bottom:1rem; }
  .saidas-page-search { width:100%; box-sizing:border-box; padding:0.6rem 2.2rem 0.6rem 0.9rem; border:1.5px solid var(--border); border-radius:10px; font-size:0.88rem; font-family:inherit; background:var(--card); color:var(--text); outline:none; }
  .saidas-page-search:focus { border-color:#0238A4; }
  .saidas-page-clear { position:absolute; right:0.7rem; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:1rem; color:var(--muted); display:none; }
  .saidas-page-list { display:flex; flex-direction:column; gap:0.5rem; }
  .saidas-page-item { background:var(--card); border:1.5px solid var(--border); border-radius:10px; padding:0.7rem 1rem; }
  .saidas-page-empresa { font-weight:600; font-size:0.9rem; color:var(--text); }
  .saidas-page-meta { display:flex; flex-wrap:wrap; gap:0.3rem; margin-top:0.35rem; }
  .saidas-page-tag { font-size:0.73rem; background:#f0f4ff; border-radius:5px; padding:1px 7px; color:#334; }
  .saidas-page-end { font-size:0.72rem; color:var(--muted); margin-top:0.3rem; }
  .saidas-page-empty { text-align:center; padding:3rem; color:var(--muted); }

  /* ── Lojas Fechadas ── */
  .lf-page { max-width:720px; margin:0 auto; }
  .lf-letter-divider { font-family:"DM Serif Display",serif; font-size:1rem; color:#0238A4; padding:0.5rem 0 0.3rem; border-bottom:2px solid #e8edf8; margin:0.75rem 0 0.4rem; letter-spacing:0.04em; }
  .lf-count-badge { font-size:0.75rem; color:var(--muted); background:#f0f4ff; border-radius:12px; padding:0.15rem 0.65rem; margin-left:0.5rem; }


  /* ── OCR — Registrar Ocorrências ── */
  /* ── Relatório PDF (print) ──────────────────────────────── */
  #rdPdfOverlay { position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:9900;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:1rem; }
  #rdPdfOverlay .pdf-sheet { background:#fff;width:100%;max-width:760px;margin:0 auto;padding:2rem;border-radius:8px;font-family:"DM Sans",sans-serif;font-size:0.82rem;color:#111; }
  #rdPdfOverlay .pdf-header { border-bottom:2px solid #0238A4;margin-bottom:1.2rem;padding-bottom:0.75rem; }
  #rdPdfOverlay .pdf-logo { font-size:1.3rem;font-weight:700;color:#0238A4;letter-spacing:-0.5px; }
  #rdPdfOverlay .pdf-title { font-size:1.1rem;font-weight:700;margin:0.2rem 0 0.1rem; }
  #rdPdfOverlay .pdf-meta { font-size:0.75rem;color:#555; }
  #rdPdfOverlay .pdf-section { margin-top:1rem;font-weight:700;font-size:0.78rem;text-transform:uppercase;letter-spacing:.06em;color:#0238A4;border-bottom:1px solid #dde3f0;padding-bottom:0.2rem;margin-bottom:0.4rem; }
  #rdPdfOverlay .pdf-row { display:flex;align-items:flex-start;padding:0.3rem 0;border-bottom:1px solid #f0f0f0; }
  #rdPdfOverlay .pdf-row:last-child { border-bottom:none; }
  #rdPdfOverlay .pdf-item-name { flex:1;color:#333; }
  #rdPdfOverlay .pdf-status { width:110px;flex-shrink:0;font-weight:700;font-size:0.75rem; }
  #rdPdfOverlay .pdf-status.conf { color:#2d6a4f; }
  #rdPdfOverlay .pdf-status.nao { color:#842029; }
  #rdPdfOverlay .pdf-obs { font-size:0.72rem;color:#666;margin-top:0.15rem; }
  #rdPdfOverlay .pdf-kpi { display:flex;gap:1rem;margin-bottom:1.2rem; }
  #rdPdfOverlay .pdf-kpi-item { background:#f5f7ff;border:1px solid #dde3f0;border-radius:6px;padding:0.5rem 1rem;text-align:center; }
  #rdPdfOverlay .pdf-kpi-num { font-size:1.5rem;font-weight:700; }
  #rdPdfOverlay .pdf-kpi-label { font-size:0.68rem;color:#666; }
  #rdPdfOverlay .pdf-actions { display:flex;gap:0.75rem;margin-top:1.5rem;justify-content:flex-end; }
  @media print {
    @page { margin: 0; }  /* remove cabeçalho/rodapé automáticos do navegador (título da página e URL) */
    body > *:not(#rdPdfOverlay) { display:none !important; }
    #rdPdfOverlay { position:static;background:none;padding:0;display:block; }
    /* padding maior compensa a margem zerada da página, evitando que o conteúdo cole na borda */
    #rdPdfOverlay .pdf-sheet { box-shadow:none;border-radius:0;max-width:100%;padding:1.2cm 1.4cm; }
    #rdPdfOverlay .pdf-actions { display:none !important; }
  }

    /* ── Protocolo Digital ──────────────────────────────── */
  .prot-wrap { max-width:800px; margin:0 auto; }
  .prot-canvas-wrap { border:2px dashed var(--border); border-radius:12px; background:#fafbff; margin:0.5rem 0 0.3rem; position:relative; touch-action:none; }
  .prot-canvas-wrap canvas { display:block; border-radius:10px; width:100%; height:220px; cursor:crosshair; }
  .prot-canvas-label { text-align:center; font-size:0.72rem; color:var(--muted); margin-bottom:0.5rem; }
  .prot-sig-preview { width:100%; max-height:140px; object-fit:contain; border:1.5px solid var(--border); border-radius:8px; background:#fafbff; display:block; margin:0.4rem 0; }
  .prot-status-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; margin-top:5px; }
  .prot-status-dot.pendente  { background:#f59e0b; }
  .prot-status-dot.assinado  { background:#43a047; }
  .prot-tag { font-size:0.72rem; background:#f0f4ff; border:1px solid #c5d1ed; border-radius:5px; padding:1px 7px; color:#334; }
  .prot-tag.status-pendente  { background:#fff8e1; border-color:#ffe082; color:#7a5800; font-weight:700; }
  .prot-tag.status-assinado  { background:#e8f5e9; border-color:#a5d6a7; color:#1b5e20; font-weight:700; }
  .prot-obs-btn { padding:0.35rem 0.8rem; border:1.5px solid var(--border); border-radius:7px; font-size:0.78rem; cursor:pointer; font-family:inherit; background:transparent; color:var(--muted); }
  .prot-obs-btn:hover { background:var(--bg); }
  .prot-del-btn { padding:0.35rem 0.6rem; border:1.5px solid #f5a0a0; border-radius:7px; font-size:0.85rem; cursor:pointer; font-family:inherit; background:transparent; color:#c62828; }
  .prot-del-btn:hover { background:#fdecea; }
  .prot-sign-btn { flex:1; padding:0.4rem 0.8rem; border:none; border-radius:7px; font-size:0.82rem; font-weight:600; cursor:pointer; font-family:inherit; background:#0238A4; color:#fff; }
  .prot-sign-btn:hover { background:#0230c0; }
  .prot-sign-btn:disabled { background:#aaa; cursor:not-allowed; }

    .ocr-wrap { max-width:800px; margin:0 auto; }
  .ocr-toolbar { display:flex; align-items:center; gap:0.6rem; flex-wrap:wrap; margin-bottom:0.6rem; }
  .ocr-search-bar { display:flex; align-items:center; gap:0.5rem; margin-bottom:0.7rem; }
  .ocr-search-input { flex:1; padding:0.55rem 0.9rem; border:1.5px solid var(--border); border-radius:10px; font-size:0.9rem; font-family:inherit; background:var(--card); color:var(--text); outline:none; transition:border-color .2s; }
  .ocr-search-input:focus { border-color:#0238A4; }
  .ocr-search-input::placeholder { color:var(--muted); }
  .ocr-search-clear { background:none; border:none; cursor:pointer; font-size:1.1rem; color:var(--muted); padding:0.3rem 0.5rem; border-radius:6px; display:none; }
  .ocr-search-clear.visible { display:block; }
  .ocr-bloco-select-wrap { display:flex; align-items:center; gap:0.5rem; margin-bottom:0.8rem; }
  .ocr-bloco-chip-label { font-size:0.75rem; color:var(--muted); white-space:nowrap; }
  .ocr-bloco-select { padding:0.25rem 0.5rem; border:1.5px solid var(--border); border-radius:8px; font-size:0.8rem; font-family:inherit; background:var(--card); color:var(--text); cursor:pointer; outline:none; }
  .ocr-bloco-select:focus { border-color:#0238A4; }
  .ocr-toolbar-sep { flex:1; }
  .ocr-results-info { font-size:0.78rem; color:var(--muted); margin-bottom:0.6rem; }
  .ocr-results-info strong { color:var(--text); }
  .ocr-filter-btn { padding:0.4rem 0.85rem; border:1.5px solid var(--border); border-radius:8px; font-size:0.8rem; font-family:inherit; background:var(--card); color:var(--muted); cursor:pointer; }
  .ocr-filter-btn.active { background:#0238A4; color:#fff; border-color:#0238A4; }
  .ocr-status-select { padding:0.4rem 0.85rem; border:1.5px solid var(--border); border-radius:8px; font-size:0.8rem; font-family:inherit; background:var(--card); color:var(--text); cursor:pointer; outline:none; }
  .ocr-status-select:focus { border-color:#0238A4; }
  .ocr-new-btn { padding:0.45rem 1rem; background:#0238A4; color:#fff; border:none; border-radius:9px; font-size:0.84rem; font-weight:600; cursor:pointer; font-family:inherit; display:flex; align-items:center; gap:0.4rem; }
  .ocr-new-btn:hover { background:#0230c0; }
  /* Consultar arquivo: outline translúcido, hover sutil (não preencher de azul). */
  .ocr-arq-btn:hover { background:rgba(108,117,125,0.12) !important; }
  .ocr-card { background:var(--card); border:1.5px solid var(--border); border-radius:12px; overflow:hidden; margin-bottom:0.85rem; transition:box-shadow .15s; }
  .ocr-card:hover { box-shadow:0 2px 12px rgba(2,56,164,.10); }
  .ocr-card-head { display:flex; align-items:flex-start; gap:0.8rem; padding:0.9rem 1rem 0.7rem; }
  .ocr-status-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; margin-top:5px; }
  .ocr-status-dot.aberta { background:#e53935; }
  .ocr-status-dot.andamento { background:#f9a825; }
  .ocr-status-dot.concluida { background:#43a047; }
  .ocr-status-dot.cancelada { background:#90a4ae; }
  .ocr-card-tipo { font-weight:700; font-size:0.9rem; color:var(--text); line-height:1.3; }
  .ocr-card-tipo-row { display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
  .ocr-foto-ind { flex-shrink:0; font-size:0.8rem; color:var(--muted); background:#eef2fb; border:1px solid #d4ddf0; border-radius:6px; padding:1px 6px; white-space:nowrap; }
  .ocr-card-meta { display:flex; flex-wrap:wrap; gap:0.35rem; margin-top:0.35rem; }
  .ocr-tag { font-size:0.72rem; background:#f0f4ff; border:1px solid #c5d1ed; border-radius:5px; padding:1px 7px; color:#334; }
  .ocr-tag.status-aberta { background:#fdecea; border-color:#f5a0a0; color:#b71c1c; font-weight:700; }
  .ocr-tag.status-andamento { background:#fff8e1; border-color:#ffe082; color:#8a6d00; font-weight:700; }
  .ocr-tag.status-solicitada { background:#e7f0fd; border-color:#90c2f5; color:#1565c0; font-weight:700; }
  .ocr-tag.status-concluida { background:#e8f5e9; border-color:#a5d6a7; color:#1b5e20; font-weight:700; }
  .ocr-tag.status-cancelada { background:#eceff1; border-color:#cfd8dc; color:#546e7a; font-weight:700; }
  /* Pílula de prioridade — cor por nível (ordem 1=Urgente … 4=Baixa). */
  .ocr-prio-pill { font-weight:700; }
  .ocr-prio-pill.prio-1 { background:#fdecea; border-color:#f5a0a0; color:#b71c1c; }
  .ocr-prio-pill.prio-2 { background:#fde8dc; border-color:#f0b283; color:#a04518; }
  .ocr-prio-pill.prio-3 { background:#fff8e1; border-color:#ffe082; color:#8a6d00; }
  .ocr-prio-pill.prio-4 { background:#e7f0fd; border-color:#90c2f5; color:#1565c0; }
  /* Selo de criticidade — canto superior direito do card. */
  .ocr-tipo-row-right { display:flex; align-items:center; gap:0.4rem; flex-shrink:0; }
  .ocr-crit-selo { font-size:0.7rem; font-weight:700; border-radius:5px; padding:1px 8px; white-space:nowrap; border:1px solid transparent; }
  .ocr-crit-selo.crit-noprazo   { background:#e8f5e9; border-color:#a5d6a7; color:#1b5e20; }
  .ocr-crit-selo.crit-atencao   { background:#fff8e1; border-color:#ffe082; color:#8a6d00; }
  .ocr-crit-selo.crit-estourado { background:#fdecea; border-color:#f5a0a0; color:#b71c1c; }
  .ocr-desc { padding:0 1rem 0.6rem; font-size:0.83rem; color:var(--muted); line-height:1.5; font-weight:700; }
  .ocr-fotos { display:flex; gap:0.5rem; padding:0 1rem 0.75rem; flex-wrap:wrap; }
  .ocr-foto-thumb { width:72px; height:72px; object-fit:cover; border-radius:8px; border:1px solid var(--border); cursor:pointer; }
  .ocr-card-actions { display:flex; gap:0.4rem; padding:0.5rem 0.75rem; border-top:1px solid var(--border); background:#f8f9fc; align-items:center; flex-wrap:nowrap; overflow:hidden; }
  .ocr-card-actions .ocr-btn-and-flat,
  .ocr-card-actions .ocr-btn-concluir-flat,
  .ocr-card-actions .ocr-btn-reabrir-flat,
  .ocr-card-actions .ocr-btn-editar { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:center; }
  .ocr-card-actions .ocr-btn-cancelar-icon { flex:0 0 auto; }
  .ocr-btn-concluir { flex:1; padding:0.4rem; border:none; border-radius:7px; font-size:0.8rem; font-weight:600; cursor:pointer; font-family:inherit; background:#43a047; color:#fff; }
  .ocr-btn-concluir:hover { background:#388e3c; }
  .ocr-btn-reabrir { flex:1; padding:0.4rem; border:1.5px solid #e57373; border-radius:7px; font-size:0.8rem; font-weight:600; cursor:pointer; font-family:inherit; background:transparent; color:#c62828; }
  .ocr-btn-reabrir:hover { background:#fdecea; }
  .ocr-btn-editar { padding:0.4rem 0.7rem; border:1.5px solid #0238A4; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:#0238A4; transition:background 0.15s,color 0.15s; }
  .ocr-btn-editar:hover { background:#e8edf8; }
  .ocr-btn-concluir-flat { padding:0.4rem 0.7rem; border:1.5px solid #0238A4; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:#0238A4; transition:background 0.15s,color 0.15s; }
  .ocr-btn-concluir-flat:hover { background:#e8edf8; }
  /* Solicitar conclusão: azul-aço acinzentado, distinto do Finalizar (azul vivo). */
  .ocr-btn-solicitar { border-color:#607d9b; color:#506a85; }
  .ocr-btn-solicitar:hover { background:#eceff3; }
  .ocr-btn-reabrir-flat { padding:0.4rem 0.7rem; border:1.5px solid #0238A4; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:#0238A4; transition:background 0.15s,color 0.15s; }
  .ocr-btn-reabrir-flat:hover { background:#e8edf8; }
  .ocr-btn-cancelar-reg { padding:0.4rem 0.7rem; border:1.5px solid #c62828; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:#c62828; transition:background 0.15s,color 0.15s; white-space:nowrap; }
  .ocr-btn-cancelar-reg:hover { background:#fdecea; }
  /* Cancelar REG (desktop): só o emoji, estilo neutro — ação rara, não deve gritar. */
  .ocr-btn-cancelar-icon { padding:0.4rem 0.55rem; border:1.5px solid var(--border); border-radius:7px; font-size:0.9rem; line-height:1; cursor:pointer; font-family:inherit; background:transparent; transition:background 0.15s,border-color 0.15s; }
  .ocr-btn-cancelar-icon:hover { background:#fdecea; border-color:#f5a0a0; }
  /* Indicador de foto na linha de autoria (desktop) — fotos abrem no modal. */
  .ocr-responsavel .ocr-foto-ind { margin-left:0.5rem; font-size:0.76rem; color:var(--muted); }
  .ocr-btn-and-flat { padding:0.4rem 0.7rem; border:1.5px solid #0238A4; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:#0238A4; transition:background 0.15s,color 0.15s; }
  .ocr-btn-and-flat:hover { background:#0238A4; color:#fff; }
  .ocr-btn-del { padding:0.4rem 0.7rem; border:1.5px solid #ccc; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:var(--muted); }
  .ocr-btn-del:hover { background:#fdecea; color:#c62828; border-color:#f5a0a0; }
  @media(max-width:400px) {
    .ocr-and-txt { display:none; }
  }
  .ocr-btn-assumir { padding:0.4rem 0.7rem; border:1.5px solid #f57c00; border-radius:7px; font-size:0.8rem; cursor:pointer; font-family:inherit; background:transparent; color:#e65100; font-weight:600; }
  .ocr-btn-assumir:hover { background:#fff3e0; }
  .ocr-responsavel { display:flex; align-items:center; gap:0.45rem; padding:0.45rem 1rem 0; font-size:0.8rem; }
  .ocr-resp-mob { flex-wrap:wrap; }
  .ocr-resp-chip { font-size:0.74rem; font-weight:600; color:#334; background:#eef2fb; border:1px solid #d4ddf0; border-radius:6px; padding:1px 7px; white-space:nowrap; }
  .ocr-resp-data { color:var(--muted); font-weight:600; }
  .ocr-resp-badge { background:#e8f5e9; border:1px solid #a5d6a7; border-radius:5px; color:#1b5e20; font-weight:700; padding:2px 9px; font-size:0.78rem; }
  .ocr-resp-badge.sem { background:#fff8e1; border-color:#ffe082; color:#795548; font-weight:400; font-style:italic; }
  /* Dropdown atendentes */
  .ocr-atend-dropdown { position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:410; display:flex; align-items:center; justify-content:center; }
  .ocr-atend-box { background:var(--card); border-radius:16px; padding:1.2rem 0.8rem 1rem; width:280px; max-width:90vw; box-shadow:0 8px 32px rgba(0,0,0,0.22); }
  .ocr-atend-title { font-family:"DM Serif Display",serif; font-size:1rem; color:#0238A4; text-align:center; margin-bottom:0.8rem; }
  .ocr-atend-list { display:flex; flex-direction:column; gap:0.35rem; }
  .ocr-atend-item { padding:0.65rem 1rem; border:1.5px solid var(--border); border-radius:9px; cursor:pointer; font-size:0.9rem; font-family:inherit; background:var(--card); color:var(--text); text-align:left; transition:all 0.15s; }
  .ocr-atend-item:hover { background:#e8edf8; border-color:#0238A4; color:#0238A4; font-weight:600; }
  .ocr-atend-cancel { margin-top:0.6rem; width:100%; padding:0.5rem; border:none; border-radius:9px; background:#f1f3f5; color:var(--muted); font-size:0.85rem; cursor:pointer; font-family:inherit; }
  .ocr-empty { text-align:center; padding:3.5rem 1rem; color:var(--muted); }

  /* ── OCR Andamentos ── */
  .ocr-andamentos { padding: 0.5rem 1rem 0.75rem; border-top: 1px dashed var(--border); }
  .ocr-andamentos-title { font-size: 0.7rem; font-weight: 700; color: #0238A4; text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 0.5rem; cursor: pointer; display: flex; align-items: center; gap: 0.35rem; }
  .ocr-andamento-item { background: #f8f9fc; border-left: 3px solid #0238A4; border-radius: 0 6px 6px 0; padding: 0.4rem 0.7rem; margin-bottom: 0.35rem; font-size: 0.8rem; color: var(--text); }
  .ocr-andamento-meta { font-size: 0.7rem; color: var(--muted); margin-top: 0.1rem; }
  .ocr-andamento-add { display: flex; gap: 0.4rem; margin-top: 0.5rem; }
  .ocr-andamento-input { flex: 1; padding: 0.4rem 0.65rem; border: 1.5px solid var(--border); border-radius: 7px; font-size: 0.82rem; font-family: inherit; background: var(--card); color: var(--text); }
  .ocr-andamento-input:focus { outline: none; border-color: #0238A4; }
  .ocr-andamento-submit { padding: 0.4rem 0.8rem; background: #0238A4; color: #fff; border: none; border-radius: 7px; font-size: 0.8rem; font-weight: 600; cursor: pointer; font-family: inherit; white-space: nowrap; }
  .ocr-andamento-submit:hover { background: #0230c0; }

  /* OCR Modal de detalhes */
  .ocr-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:500; display:flex; align-items:flex-end; justify-content:center; }
  @media(min-width:600px){ .ocr-modal-overlay { align-items:center; } }
  .ocr-modal-box { background:var(--card); border-radius:20px 20px 0 0; padding:1.5rem 1.25rem; width:100%; max-width:540px; max-height:85vh; overflow-y:auto; box-shadow:0 -8px 32px rgba(0,0,0,0.18); }
  @media(min-width:600px){ .ocr-modal-box { border-radius:16px; } }
  .ocr-modal-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:1rem; }
  .ocr-modal-title { font-family:"DM Serif Display",serif; font-size:1.1rem; color:#0238A4; line-height:1.3; }
  .ocr-modal-close { background:none; border:none; font-size:1.3rem; cursor:pointer; color:var(--muted); padding:0.1rem 0.3rem; }
  .ocr-modal-section { margin-bottom:1rem; }
  .ocr-modal-section-title { font-size:0.7rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:0.5rem; }
  .ocr-modal-andamento-list { display:flex; flex-direction:column; gap:0.5rem; margin-bottom:0.75rem; max-height:220px; overflow-y:auto; }
  .ocr-modal-andamento-item { background:#f0f4ff; border-left:3px solid #0238A4; border-radius:0 8px 8px 0; padding:0.5rem 0.8rem; }
  .ocr-modal-andamento-text { font-size:0.85rem; color:var(--text); }
  .ocr-modal-andamento-meta { font-size:0.72rem; color:var(--muted); margin-top:0.2rem; }
  .ocr-modal-add { display:flex; gap:0.5rem; margin-top:0.5rem; }
  .ocr-modal-input { flex:1; padding:0.5rem 0.75rem; border:1.5px solid var(--border); border-radius:8px; font-size:0.85rem; font-family:inherit; background:var(--bg); color:var(--text); }
  .ocr-modal-input:focus { outline:none; border-color:#0238A4; }
  .ocr-modal-actions { display:flex; gap:0.5rem; flex-wrap:wrap; margin-top:1rem; }
  .ocr-empty-icon { font-size:2.5rem; margin-bottom:0.5rem; }
  /* Formulário OCR */
  .ocr-form-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:300; display:flex; align-items:flex-end; justify-content:center; }
  @media(min-width:600px){ .ocr-form-overlay { align-items:center; } }
  .ocr-form-box { background:var(--card); border-radius:18px 18px 0 0; padding:1.4rem 1.2rem 2rem; width:100%; max-width:540px; max-height:92vh; overflow-y:auto; }
  @media(min-width:600px){ .ocr-form-box { border-radius:16px; } }
  .ocr-form-title { font-family:"DM Serif Display",serif; font-size:1.15rem; color:#0238A4; margin-bottom:1.1rem; display:flex; align-items:center; gap:0.5rem; }
  .ocr-form-close { margin-left:auto; background:none; border:none; font-size:1.4rem; cursor:pointer; color:var(--muted); line-height:1; }
  .ocr-field { margin-bottom:0.9rem; }
  .ocr-label { font-size:0.77rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:5px; display:block; }
  .ocr-input-hint { font-size:0.74rem; color:#b71c1c; margin-top:4px; min-height:0; opacity:0; transition:opacity 0.15s; }
  .ocr-input-hint.visible { opacity:1; }
  .ocr-input, .ocr-select, .ocr-textarea { width:100%; box-sizing:border-box; padding:0.6rem 0.8rem; border:1.5px solid var(--border); border-radius:9px; font-size:0.88rem; font-family:inherit; background:var(--card); color:var(--text); outline:none; }
  .ocr-input:focus, .ocr-select:focus, .ocr-textarea:focus { border-color:#0238A4; }
  .ocr-textarea { resize:vertical; min-height:90px; }
  .ocr-foto-row { display:flex; gap:0.75rem; flex-wrap:wrap; }
  .ocr-foto-slot { width:100px; height:100px; border:2px dashed var(--border); border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; position:relative; overflow:hidden; font-size:0.72rem; color:var(--muted); gap:4px; transition:border-color .15s; }
  .ocr-foto-slot:hover { border-color:#0238A4; }
  .ocr-foto-slot img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:8px; }
  .ocr-foto-slot .ocr-foto-rm { position:absolute; top:3px; right:3px; background:rgba(0,0,0,0.55); color:#fff; border:none; border-radius:50%; width:20px; height:20px; cursor:pointer; font-size:0.7rem; display:flex; align-items:center; justify-content:center; z-index:2; }
  .ocr-form-submit { width:100%; padding:0.75rem; background:#0238A4; color:#fff; border:none; border-radius:10px; font-size:0.95rem; font-weight:700; cursor:pointer; font-family:inherit; margin-top:0.5rem; }
  .ocr-form-submit:hover { background:#0230c0; }
  .ocr-form-cancel-solic { width:100%; padding:0.6rem; background:transparent; color:#8a6d00; border:1.5px solid #ffe082; border-radius:10px; font-size:0.85rem; font-weight:600; cursor:pointer; font-family:inherit; margin-top:0.5rem; }
  .ocr-form-cancel-solic:hover { background:#fff8e1; }
  .ocr-form-msg { font-size:0.82rem; text-align:center; margin-top:0.6rem; min-height:1.2em; }
  .ocr-dup-banner { background:#fffbe6; border:1.5px solid #f59e0b; border-radius:10px; padding:0.75rem 1rem; margin-top:0.75rem; display:none; }
  .ocr-dup-banner.visible { display:block; }
  .ocr-dup-title { font-size:0.82rem; font-weight:700; color:#b45309; margin-bottom:0.3rem; }
  .ocr-dup-detail { font-size:0.78rem; color:#78350f; line-height:1.5; margin-bottom:0.6rem; }
  .ocr-dup-confirm { width:100%; padding:0.55rem; background:#f59e0b; color:#fff; border:none; border-radius:8px; font-size:0.85rem; font-weight:700; cursor:pointer; font-family:inherit; }
  .ocr-dup-confirm:hover { background:#d97706; }


  /* ── PWA install banner ── */
  #pwaBanner {
    position:fixed;bottom:0;left:0;right:0;z-index:9999;
    background:#0238A4;color:#fff;
    display:flex;align-items:center;gap:0.75rem;
    padding:0.85rem 1rem;box-shadow:0 -2px 16px rgba(0,0,0,0.18);
    animation:slideUp .3s ease;
  }
  #pwaBanner .pwa-icon { font-size:1.6rem;flex-shrink:0; }
  #pwaBanner .pwa-text { flex:1;font-size:0.82rem;line-height:1.3 }
  #pwaBanner .pwa-text strong { display:block;font-size:0.92rem;margin-bottom:0.1rem }
  #pwaBanner .pwa-btn-install {
    background:#fff;color:#0238A4;border:none;
    padding:0.5rem 1.1rem;border-radius:8px;
    font-weight:700;font-size:0.82rem;cursor:pointer;
    font-family:inherit;white-space:nowrap;flex-shrink:0;
  }
  #pwaBanner .pwa-btn-close {
    background:transparent;border:none;color:rgba(255,255,255,0.7);
    font-size:1.2rem;cursor:pointer;padding:0.2rem 0.4rem;flex-shrink:0;
  }
  /* ── Bottom sheet seleção de foto ── */
  .foto-sheet-backdrop {
    position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:9000;
    display:flex;align-items:flex-end;justify-content:center;
    animation:fadeIn .15s ease;
  }
  .foto-sheet {
    background:var(--card);width:100%;max-width:480px;
    border-radius:18px 18px 0 0;padding:1rem 1rem 2rem;
    box-shadow:0 -4px 24px rgba(0,0,0,0.15);
    animation:slideUp .2s ease;
  }
  .foto-sheet-handle {
    width:40px;height:4px;background:var(--border);
    border-radius:2px;margin:0 auto 1rem;
  }
  .foto-sheet-title {
    font-size:0.78rem;font-weight:700;color:var(--muted);
    text-transform:uppercase;letter-spacing:0.07em;
    text-align:center;margin-bottom:1rem;
  }
  .foto-sheet-btn {
    display:flex;align-items:center;gap:0.9rem;
    width:100%;padding:0.85rem 1rem;border:none;
    background:transparent;cursor:pointer;border-radius:12px;
    font-family:'DM Sans',sans-serif;font-size:0.95rem;
    color:var(--text);transition:background .12s;text-align:left;
  }
  .foto-sheet-btn:hover { background:#f0f4ff; }
  .foto-sheet-btn .foto-sheet-icon {
    width:42px;height:42px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    font-size:1.3rem;flex-shrink:0;
  }
  .foto-sheet-btn.camera .foto-sheet-icon { background:#e8f0fe; }
  .foto-sheet-btn.galeria .foto-sheet-icon { background:#e8f8f0; }
  .foto-sheet-cancel {
    display:block;width:100%;padding:0.75rem;margin-top:0.5rem;
    border:1.5px solid var(--border);border-radius:12px;
    background:transparent;cursor:pointer;font-size:0.9rem;
    font-family:'DM Sans',sans-serif;color:var(--muted);
  }
  @keyframes slideUp {
    from { transform:translateY(100%); }
    to   { transform:translateY(0); }
  }

  /* lightbox foto */
  .ocr-lightbox { position:fixed; inset:0; background:rgba(0,0,0,0.88); z-index:600; display:flex; align-items:center; justify-content:center; cursor:zoom-out; }
  .ocr-lightbox img { max-width:95vw; max-height:90vh; border-radius:8px; }
  .ocr-lightbox-close { position:absolute; top:1rem; right:1.2rem; background:none; border:none; color:#fff; font-size:2rem; cursor:pointer; }


  /* ── Escadas Rolantes ───────────────────────────────────────── */
  .esc-item { background:var(--card); border:1px solid var(--border); border-radius:10px; padding:0.85rem 1rem; margin-bottom:0.6rem; box-shadow:var(--shadow); }
  .esc-item-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.5rem; }
  .esc-item-name { font-size:0.82rem; font-weight:600; color:var(--text); flex:1; }
  .esc-toggle { display:flex; gap:0; border-radius:6px; overflow:hidden; border:1px solid var(--border); }
  .esc-btn { padding:0.3rem 0.7rem; font-size:0.72rem; font-weight:600; cursor:pointer; border:none; background:var(--bg); color:var(--muted); transition:all 0.15s; }
  .esc-btn.conforme.active { background:#2d6a4f; color:#fff; }
  .esc-btn.nao.active { background:#842029; color:#fff; }
  .esc-obs { width:100%; font-size:0.78rem; padding:0.4rem 0.6rem; border:1px solid var(--border); border-radius:6px; background:var(--bg); color:var(--text); margin-top:0.4rem; resize:none; font-family:inherit; box-sizing:border-box; }
  .esc-obs:focus { outline:none; border-color:#0238A4; }
  .esc-obs::placeholder { color:var(--muted); }
  .esc-section-title { font-size:0.7rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; margin:1rem 0 0.4rem; }

/* ── HUB PRINCIPAL ──────────────────────────────────────────────────── */
.h-section-label { font-size:0.65rem; font-weight:600; color:#5567a0; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:0.6rem; }
.h-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:0.55rem; margin-bottom:0.55rem; }
.h-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:0.55rem; margin-bottom:0.55rem; }
/* Bloco Diretório + Achados — mobile: Lojas e Salas em 2 colunas, Achados oculto (fica no menu) */
.h-dir-block { display:grid; grid-template-columns:1fr 1fr; gap:0.55rem; column-gap:0.55rem; margin-bottom:0.55rem; }
.h-dir-block .h-lbl-dir { grid-column:1 / -1; }
.h-dir-block .h-lbl-monit { display:none; }
.h-dir-block .h-card-sla { display:none; }
.h-grid-vist { display:grid; grid-template-columns:1fr 1fr; gap:0.55rem; margin-bottom:0.55rem; }
.h-card { background:#fff; border-radius:13px; padding:0.8rem 0.7rem 0.75rem; border:0.5px solid #c8d2ec; cursor:pointer; display:flex; flex-direction:column; gap:0.35rem; transition:transform 0.18s cubic-bezier(.34,1.56,.64,1),box-shadow 0.18s; user-select:none; }
.h-card:hover { transform:translateY(-3px) scale(1.02); box-shadow:0 6px 20px rgba(22,58,160,0.12); }
.h-card:active { transform:scale(0.97); box-shadow:none; }
.h-card-wide { flex-direction:row; align-items:center; gap:0.75rem; padding:0.85rem 0.95rem; }
.h-card-dir { flex-direction:column; align-items:flex-start; gap:0.35rem; padding:0.8rem 0.7rem 0.75rem; min-height:100px; }
.h-card-icon { width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
.h-card-name { font-size:0.75rem; font-weight:600; color:#163AA0; line-height:1.2; }
.h-card-sub { font-size:0.65rem; color:#5567a0; line-height:1.25; }
/* Coro neutro (cinza-azulado discreto) para os módulos secundários */
.ic-is   { background:#eef0f5; color:#6b7794; }
.ic-sac  { background:#eef0f5; color:#6b7794; }
.ic-fral { background:#eef0f5; color:#6b7794; }
.ic-abf  { background:#eef0f5; color:#6b7794; }
.ic-esc  { background:#eef0f5; color:#6b7794; }
.ic-elev { background:#eef0f5; color:#6b7794; }
.ic-som  { background:#eef0f5; color:#6b7794; }
.ic-est  { background:#eef0f5; color:#6b7794; }
.ic-lojas { background:#eef0f5; color:#6b7794; }
.ic-salas { background:#eef0f5; color:#6b7794; }
.ic-achados { background:#eef0f5; color:#6b7794; }
/* Protagonistas — REG e SLA no azul-marca sólido (ícone branco) */
.ic-ocr  { background:#0238A4; color:#fff; }
.ic-sla  { background:#0238A4; color:#fff; }
/* Cards protagonistas (Criar REG e SLA Demandas): card inteiro tonalizado */
.h-card-ocr, .h-card-sla { background:#F2F6FD; border-color:#9db8e8; }
.h-card-ocr .h-card-name, .h-card-sla .h-card-name { color:#0238A4; }
.h-card-ocr .h-card-sub,  .h-card-sla .h-card-sub  { color:#5a7bb5; }

/* ── MENU REORGANIZADO ──────────────────────────────────────────────── */
.menu-group-label { font-size:0.62rem; font-weight:700; color:#5567a0; letter-spacing:0.12em; text-transform:uppercase; padding:0.65rem 1.25rem 0.3rem; }
.menu-item-active { background:#eaf0fb !important; box-shadow:inset 3px 0 0 #0238A4; }
.menu-item:hover .menu-item-arrow { transform:translateX(3px); transition:transform 0.18s; }
.menu-icon-hub   { background:#eef0f5; color:#6b7794; }
.menu-icon-rotina { background:#eef0f5; color:#6b7794; }
.menu-icon-achados { background:#eef0f5; color:#6b7794; }
.menu-icon-prot  { background:#eef0f5; color:#6b7794; }
.menu-icon-perf  { background:#eef0f5; color:#6b7794; }
.menu-icon-lojas { background:#eef0f5; color:#6b7794; }
.menu-icon-salas { background:#eef0f5; color:#6b7794; }
/* Protagonistas no menu — REG e SLA no azul-marca sólido */
.menu-icon-ocr   { background:#0238A4; color:#fff; }
.menu-icon-sla   { background:#0238A4; color:#fff; }

/* Itens de menu exclusivos de desktop (ex.: SLA Demandas) */
.menu-only-desktop { display:none; }
@media (min-width:760px){ .menu-only-desktop { display:flex; } .menu-group-label.menu-only-desktop { display:block; } }
/* ── SUBTÍTULO HEADER ───────────────────────────────────────────────── */
.header-subtitle { font-size: 0.6rem; font-weight: 600; color: rgba(255,255,255,0.55); letter-spacing: 0.12em; text-transform: uppercase; }


/* ── HUB — REFINAMENTO DESKTOP (Layout A · grade de 3 · equilibrado) ───── */
/* Só afeta telas largas (≥760px). Mobile permanece 100% intacto. */
@media (min-width: 760px) {
  /* Stats do OCR alinhados à mesma caixa do conteúdo (800px), p/ o texto começar
     na mesma borda do botão Registrar. Só no desktop; só na seção OCR. */
  .stats-bar.stats-ocr-align { max-width: 800px; margin-left: auto; margin-right: auto; }
  .stats-bar.stats-ap-align   { max-width: 760px; margin-left: auto; margin-right: auto; }
  .stats-bar.stats-prot-align { max-width: 800px; margin-left: auto; margin-right: auto; }
  .stats-bar.stats-rd-align   { max-width: 1040px; margin-left: auto; margin-right: auto; }
  .stats-bar.stats-rd-sub     { max-width: 700px; margin-left: auto; margin-right: auto; }

  #hubSection {
    max-width: 1040px;
    margin: 0 auto;
    padding: 2.25rem 2rem 3rem !important;
  }

  /* Labels de seção como divisores discretos */
  .h-section-label {
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    color: #8a97bd;
    margin-bottom: 0.7rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e0e5f0;
  }
  .h-section-label[style] { margin-top: 1.5rem !important; }
  /* Divisor manual antigo entre Vistorias e Diretório: redundante no desktop
     (os labels já têm border-bottom próprio). Escondido só aqui. */
  .h-vist-sep { display: none; }

  /* Grade única de 3 colunas para TODOS os grids do hub */
  .h-grid-3, .h-grid-2, .h-grid-vist {
    grid-template-columns: repeat(3, 1fr);
    gap: 0.85rem;
    margin-bottom: 0.85rem;
  }

  /* Rotina Diária: cards em 3 colunas no desktop (Classificações e Vistorias) */
  .rd-grid { grid-template-columns: repeat(3, 1fr); gap: 0.85rem; }
  /* Abertura deixa de ocupar a linha inteira — vira célula normal no desktop */
  .h-grid-vist .h-card-abf { grid-column: auto; }

  /* Diretório + Achados no desktop: 3 colunas, 2 linhas.
     Linha 1 = títulos (Diretório cobre col 1-2 com sua linha; Achados na col 3 com a sua).
     Linha 2 = cards (Lojas, Salas, Achados). */
  .h-dir-block {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto;
    grid-template-areas:
      "ldir ldir lach"
      "clojas csalas cach";
    column-gap: 0.85rem;
    row-gap: 0.7rem;
    margin-bottom: 0.85rem;
    align-items: start;
  }
  .h-dir-block .h-lbl-dir     { grid-area: ldir; margin-top: 1.5rem !important; margin-bottom: 0; }
  .h-dir-block .h-lbl-monit   { grid-area: lach; display: block; margin-top: 1.5rem !important; margin-bottom: 0; }
  .h-dir-block .h-card-lojas   { grid-area: clojas; }
  .h-dir-block .h-card-salas   { grid-area: csalas; }
  .h-dir-block .h-card-sla     { grid-area: cach; display: flex; }

  /* Card "wide" (Abertura) e os de Diretório voltam a ser cards normais */
  .h-card-wide, .h-card-dir {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    min-height: 0;
  }

  /* Cards — respiro equilibrado */
  .h-card {
    padding: 1.15rem 1.25rem;
    border-radius: 14px;
    gap: 0.5rem;
    border: 1px solid #d6deef;
  }
  .h-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(22,58,160,0.12);
  }

  /* Ícone — equilibrado */
  .h-card-icon,
  .h-card-wide .h-card-icon,
  .h-card-dir .h-card-icon {
    width: 44px !important;
    height: 44px !important;
    border-radius: 11px;
    font-size: 20px !important;
  }

  .h-card-name { font-size: 0.94rem; line-height: 1.25; }
  .h-card-sub  { font-size: 0.78rem; line-height: 1.3; }

  /* Fraldário por extenso só no desktop (mobile mantém "Atend. Fraldário") */
  #hcNameFral { font-size: 0; }
  #hcNameFral::after {
    content: "Atendimento Fraldário";
    font-size: 0.94rem;
    font-weight: 600;
  }

  /* SAC por extenso só no desktop (mobile mantém "Atend. SAC") */
  #hcNameSac { font-size: 0; }
  #hcNameSac::after {
    content: "Atendimentos SAC";
    font-size: 0.94rem;
    font-weight: 600;
  }
}

/* Telas muito largas: mantém centralizado sem esticar */
@media (min-width: 1200px) {
  #hubSection { max-width: 1080px; }
}

/* ═══════════════════════════════════════════════════════════════════
   PAGINAÇÃO + FILTRO DE DATA + LAZY LOAD
   Adicionado para: Achados e Perdidos (ap-), Checklist/OCR e Protocolo (ocr-)
   ═══════════════════════════════════════════════════════════════════ */

/* ── Paginação (compartilhada: OCR, Protocolo e Achados) ── */
.ocr-paginacao,
.ap-paginacao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1rem 0 0.5rem;
  flex-wrap: wrap;
}
.ocr-pag-btn,
.ap-pag-btn {
  padding: 0.5rem 1rem;
  border: 1.5px solid var(--border);
  border-radius: 9px;
  background: var(--card);
  color: var(--text);
  font-size: 0.85rem;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s;
}
.ocr-pag-btn:hover:not(:disabled),
.ap-pag-btn:hover:not(:disabled) {
  border-color: #0238A4;
  color: #0238A4;
}
.ocr-pag-btn:disabled,
.ap-pag-btn:disabled {
  opacity: 0.4;
  cursor: default;
}
.ocr-pag-info,
.ap-pag-info {
  font-size: 0.82rem;
  color: var(--muted);
  font-weight: 600;
  min-width: 7rem;
  text-align: center;
}

/* ── Filtro de data por intervalo (De / Até) ── */
.ocr-data-filtro-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.6rem;
}
.ocr-data-input {
  padding: 0.3rem 0.6rem;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-family: "DM Sans", sans-serif;
  background: var(--card);
  color: var(--text);
  outline: none;
}
.ocr-data-input:focus { border-color: #0238A4; }
.ocr-data-clear,
.ap-data-clear {
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--card);
  color: var(--muted);
  font-size: 0.75rem;
  font-family: "DM Sans", sans-serif;
  cursor: pointer;
}
.ocr-data-clear:hover,
.ap-data-clear:hover { border-color: #c62828; color: #c62828; }

/* ── Lazy load: reserva altura enquanto a imagem não chega (evita "pulo" do card) ── */
.ocr-foto-thumb.ocr-lazy:not([src]),
.ocr-foto-thumb.ocr-lazy[src=""] {
  background: var(--bg);
  min-height: 72px;
}
.ap-lazy:not([src]),
.ap-lazy[src=""] {
  background: var(--bg);
  min-height: 120px;
  display: block;
}

/* ── Ajustes mobile do módulo Criar REG (OCR) — não afetam desktop (≥760px) ── */
@media (max-width: 759px) {
  /* Cabeçalho de stats numa linha só, sem jogar "0 concluídas" pra baixo.
     Fonte fluida (clamp): encolhe conforme a largura, sem quebrar nem cortar. */
  #statsText {
    flex-wrap: nowrap;
    white-space: nowrap;
    font-size: clamp(0.6rem, 2.7vw, 0.78rem);
    gap: 0.22rem;
    letter-spacing: -0.1px;
  }
  /* O pill "Início" tem tamanho próprio e não deve ser comprimido nem ter a
     fonte reduzida pelo clamp do #statsText — senão desalinha do texto ao lado. */
  #statsText .home-pill { flex-shrink: 0; font-size: 0.78rem; letter-spacing: normal; }
  #statsText .home-crumb-sep { flex-shrink: 0; }

  /* Chips do card mais compactos — cabem 2-3 por linha sem perder info */
  .ocr-card-meta { gap: 0.28rem; }
  .ocr-tag {
    font-size: 0.66rem;
    padding: 1px 5px;
    line-height: 1.35;
  }

  /* Busca + filtros do OCR não podem estourar a tela no celular.
     Sem cartão (barra solta): só o respiro da linha divisória; os filtros
     quebram em linhas e os selects encolhem para caber. */
  .ocr-search-card { padding: 0 0 0.85rem; }
  .ocr-bloco-select-wrap {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    column-gap: 0.5rem;
    row-gap: 0.5rem;
  }
  .ocr-bloco-select-wrap .ocr-bloco-chip-label { white-space: nowrap; justify-self: start; }
  .ocr-bloco-select-wrap .ocr-status-select,
  .ocr-bloco-select-wrap .ocr-bloco-select { width: 100%; min-width: 0; }
  .ocr-search-input { min-width: 0; }

  /* Filtro de datas: cada par "De: [input]" / "Até: [input]" ocupa metade
     da linha e não deixa label órfão. O input encolhe para caber. */
  .ocr-data-filtro-wrap { gap: 0.4rem 0.5rem; }
  .ocr-data-filtro-wrap .ocr-bloco-chip-label { flex: 0 0 auto; white-space: nowrap; }
  .ocr-data-filtro-wrap .ocr-data-input { flex: 1 1 0; min-width: 0; }
  .ocr-data-filtro-wrap .ocr-data-clear { flex: 1 0 100%; }
}

/* ── Arquivo morto (consulta read-only) ────────────────────────────────────── */
/* Botão "Consultar arquivo": só no desktop. No mobile some por completo. */
@media (max-width: 759px) {
  .ocr-arq-btn { display: none !important; }
}
.ocr-arq-card {
  border: 1px solid var(--border, #e0e0e0);
  border-radius: 10px;
  padding: 0.7rem 0.85rem;
  margin-bottom: 0.55rem;
  background: var(--card, #fff);
}
#ocrArqResultados { max-height: 60vh; overflow-y: auto; }

/* ── SAC: "Últimos registros de hoje" ──────────────────────────────────────── */
/* Desktop (padrão): linha horizontal — horário · descrição · atendente · canal · duração */
.sac-recent-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.sac-recent-row .srr-time { min-width: 52px; flex-shrink: 0; }
.sac-recent-row .srr-desc { flex: 1; min-width: 0; }
.sac-recent-row .srr-atend,
.sac-recent-row .srr-canal { flex-shrink: 0; white-space: nowrap; }
.sac-recent-row .srr-dur  { min-width: 38px; flex-shrink: 0; }

/* Mobile: reorganiza em grade — topo (horário | duração), descrição, depois chips */
@media (max-width: 759px) {
  .sac-recent-row {
    display: grid;
    grid-template-columns: auto auto 1fr;
    grid-template-areas:
      "time  time   dur"
      "desc  desc   desc"
      "atend canal  .";
    align-items: center;
    gap: 0.3rem 0.45rem;
  }
  .sac-recent-row .srr-time  { grid-area: time;  min-width: 0; white-space: nowrap; }
  .sac-recent-row .srr-dur   { grid-area: dur;   min-width: 0; justify-self: end; white-space: nowrap; }
  .sac-recent-row .srr-desc  { grid-area: desc;  flex: none; line-height: 1.35; }
  .sac-recent-row .srr-atend { grid-area: atend; justify-self: start; white-space: nowrap; }
  .sac-recent-row .srr-canal { grid-area: canal; justify-self: start; white-space: nowrap; }
}

/* ── OCR: filtros status/bloco + data na MESMA linha (desktop apenas) ──────────
   Colocado no fim do arquivo de propósito: precisa vencer a regra base
   .ocr-data-filtro-wrap (display:flex) definida mais acima. Mobile intacto. */
@media (min-width: 760px) {
  .ocr-bloco-select-wrap { display:inline-flex; vertical-align:top; margin-right:0.8rem; }
  .ocr-data-filtro-wrap  { display:inline-flex; vertical-align:top; }
}

/* Botão "Consultar arquivo" (Achados) — oculto no mobile */
@media (max-width: 600px) {
  .ap-arq-btn { display: none !important; }
}

/* Botão "Consultar arquivo" (Protocolo) — oculto no mobile */
@media (max-width: 600px) {
  .prot-arq-btn { display: none !important; }
}

/* Popup de filtro de status — Protocolo */
.prot-filtro-menu {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 50;
  display: none; flex-direction: column; min-width: 160px;
  background: var(--card); border: 1.5px solid var(--border);
  border-radius: 10px; box-shadow: 0 6px 24px rgba(0,0,0,0.14); padding: 4px;
}
.prot-filtro-menu.open { display: flex; }
.prot-filtro-opt {
  display: block; width: 100%; box-sizing: border-box;
  text-align: left; background: transparent; border: none; cursor: pointer;
  font-family: inherit; font-size: 0.85rem; color: var(--text);
  padding: 0.5rem 0.7rem; border-radius: 7px; white-space: nowrap;
}
.prot-filtro-opt:hover { background: #e8edf8; }
.prot-filtro-opt.active { background: #0238A4; color: #fff; font-weight: 600; }

/* Card que envolve busca + filtros do OCR (mesmo visual do Achados) */
/* Busca + filtros SEM cartão: barra de ferramentas solta sobre o fundo da
   página, separada da lista de REGs por uma linha fina. Sem moldura branca →
   não se confunde com um card de registro. */
.ocr-search-card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  margin-bottom: 0.9rem;
  box-shadow: none;
  box-sizing: border-box;
  max-width: 100%;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0.9rem;
}
.ocr-search-card .ocr-data-filtro-wrap { margin-bottom: 0; }
