/* OS RioDoc — Rocha Intelligence */
:root {
  --primary: #4f46e5;
  --primary-dark: #4338ca;
  --primary-light: #eef2ff;
  --bg: #f8fafc;
  --text: #0f172a;
  --muted: #64748b;
  --success: #16a34a;
  --warn: #eab308;
  --danger: #ef4444;
  --gray-50: #f8fafc;
  --gray-100: #f1f5f9;
  --gray-200: #e2e8f0;
  --gray-300: #cbd5e1;
  --gray-400: #94a3b8;
  --gray-500: #64748b;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1e293b;
  --gray-900: #0f172a;
  --radius: 12px;
  --shadow: 0 4px 24px rgba(0,0,0,.06);
  --sidebar-w: 260px;
}

* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:-apple-system,system-ui,'Segoe UI',Roboto,sans-serif; background:var(--bg); color:var(--text); line-height:1.5; }
a { color:var(--primary); text-decoration:none; }
code { font-size:.8em; background:var(--gray-100); padding:.1em .35em; border-radius:4px; }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1.1rem; border:none; border-radius:8px; font-size:.82rem; font-weight:600; cursor:pointer; transition:all .15s; }
.btn:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.1); }
.btn-primary { background:var(--primary); color:#fff; }
.btn-primary:hover { background:var(--primary-dark); }
.btn-gradient { background:linear-gradient(135deg,var(--primary),#7c3aed); color:#fff; }
.btn-ghost { background:transparent; color:var(--gray-600); border:1px solid var(--gray-200); }
.btn-green { background:var(--success); color:#fff; }
.btn-red { background:var(--danger); color:#fff; }
.btn-sm { padding:.35rem .65rem; font-size:.75rem; }
.btn-lg { padding:.75rem 1.5rem; font-size:.9rem; }
.btn-full { width:100%; justify-content:center; }
.btn-icon { background:none; border:none; cursor:pointer; padding:.4rem; color:var(--gray-500); font-size:1rem; }
.btn-icon:hover { color:var(--primary); }

/* LOGIN */
.login-wrapper { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 50%,#312e81 100%); position:relative; overflow:hidden; }
.login-bg-effect { position:absolute; inset:0; background:radial-gradient(circle at 30% 50%,rgba(79,70,229,.15),transparent 50%),radial-gradient(circle at 70% 80%,rgba(124,58,237,.1),transparent 40%); }
.login-card { background:rgba(255,255,255,.97); border-radius:20px; padding:2.5rem; width:100%; max-width:400px; box-shadow:0 20px 60px rgba(0,0,0,.3); position:relative; z-index:1; }
.login-brand { text-align:center; margin-bottom:2rem; }
.brand-icon { width:56px; height:56px; border-radius:14px; background:linear-gradient(135deg,var(--primary),#7c3aed); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin:0 auto .75rem; }
.login-tenant-logo { max-height:56px; max-width:180px; margin:0 auto .75rem; display:block; object-fit:contain; }
.login-brand h1 { font-size:1.5rem; color:var(--text); }
.brand-sub { font-size:.85rem; color:var(--muted); margin-top:.35rem; line-height:1.4; }
.input-group { position:relative; margin-bottom:1rem; }
.input-group i { position:absolute; left:1rem; top:50%; transform:translateY(-50%); color:var(--gray-400); font-size:.85rem; }
.input-group input { width:100%; padding:.8rem 1rem .8rem 2.5rem; border:1.5px solid var(--gray-200); border-radius:10px; font-size:.9rem; transition:border .2s; }
.input-group input:focus { outline:none; border-color:var(--primary); }
.msg-erro { color:var(--danger); font-size:.8rem; text-align:center; margin-top:.75rem; min-height:1.2rem; }
.login-footer { text-align:center; margin-top:1.5rem; font-size:.75rem; color:var(--gray-400); }
.login-footer-logo { display:block; height:28px; margin:.5rem auto 0; }
.powered { display:block; margin-top:.5rem; }

/* APP LAYOUT */
.app-layout { display:flex; min-height:100vh; }
.sidebar { width:var(--sidebar-w); background:var(--gray-900); color:#fff; display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; z-index:100; transition:transform .3s; }
.sidebar-brand { padding:1.25rem 1.5rem; display:flex; align-items:center; gap:.75rem; border-bottom:1px solid rgba(255,255,255,.08); }
.brand-mark { width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,var(--primary),#7c3aed); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1rem; flex-shrink:0; }
.sidebar-tenant-logo { height:36px; max-width:120px; object-fit:contain; border-radius:6px; background:#fff; padding:2px; }
.brand-name { font-weight:700; font-size:1rem; }
.sidebar-nav { flex:1; padding:1rem 0; overflow-y:auto; }
.nav-link { display:flex; align-items:center; gap:.75rem; padding:.7rem 1.5rem; color:var(--gray-400); font-size:.85rem; transition:all .15s; }
.nav-link:hover { color:#fff; background:rgba(255,255,255,.05); }
.nav-link.active { color:#fff; background:rgba(79,70,229,.3); border-right:3px solid var(--primary); }
.nav-link i { width:20px; text-align:center; }
.nav-badge { margin-left:auto; background:var(--danger); color:#fff; font-size:.65rem; font-weight:700; padding:.15rem .45rem; border-radius:10px; min-width:1.2rem; text-align:center; }
.nav-divider { height:1px; background:rgba(255,255,255,.06); margin:.75rem 1.5rem; }
.sidebar-user { padding:1rem 1.5rem; border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; gap:.75rem; }
.user-avatar { width:34px; height:34px; border-radius:50%; background:var(--primary); display:flex; align-items:center; justify-content:center; color:#fff; font-size:.75rem; }
.user-details { flex:1; min-width:0; }
.user-name { display:block; font-size:.8rem; font-weight:600; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-role { display:block; font-size:.7rem; color:var(--gray-400); text-transform:uppercase; }
.sidebar-overlay { display:none; }

.main { flex:1; margin-left:var(--sidebar-w); display:flex; flex-direction:column; min-width:0; }
.topbar { display:flex; align-items:center; gap:1rem; padding:.75rem 1.5rem; background:#fff; border-bottom:1px solid var(--gray-200); position:sticky; top:0; z-index:50; }
.topbar h2 { font-size:1.1rem; white-space:nowrap; }
.empresa-badge { margin-left:auto; font-size:.75rem; background:var(--primary-light); color:var(--primary); padding:.3rem .8rem; border-radius:20px; font-weight:600; white-space:nowrap; }
.topbar-actions { display:flex; align-items:center; gap:.5rem; position:relative; }
.notif-wrap { position:relative; }
.notif-badge { position:absolute; top:-2px; right:-4px; margin:0; pointer-events:none; }
.notif-panel { position:absolute; right:0; top:calc(100% + 8px); width:min(360px,92vw); max-height:420px; overflow:auto; background:#fff; border:1px solid var(--gray-200); border-radius:12px; box-shadow:0 12px 40px rgba(15,23,42,.18); z-index:80; padding:.5rem; }
.notif-panel-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.35rem .5rem .6rem; border-bottom:1px solid var(--gray-200); }
.notif-lista { padding:.35rem 0; }
.notif-item { padding:.65rem .6rem; border-bottom:1px solid var(--gray-100); cursor:pointer; }
.notif-item:hover { background:var(--gray-50); }
.notif-item.unread { background:#eef2ff; }
.notif-item.notif-inatividade.unread { background:#fff7ed; }
.notif-item .nf-titulo { font-weight:600; font-size:.9rem; }
.notif-item .nf-meta { font-size:.75rem; color:var(--gray-500); margin-top:.2rem; }
.content { flex:1; padding:1.5rem; }
.page { display:none; }
.page.active { display:block; }
.app-footer { text-align:center; padding:1rem; border-top:1px solid var(--gray-200); font-size:.75rem; color:var(--gray-400); display:flex; align-items:center; justify-content:center; gap:.5rem; flex-wrap:wrap; }
.footer-logo { height:28px; width:auto; object-fit:contain; border-radius:4px; vertical-align:middle; }

/* CARDS & STATS */
.card { background:#fff; border-radius:var(--radius); padding:1.25rem; box-shadow:var(--shadow); }
.card-title { font-size:.95rem; margin-bottom:1rem; display:flex; align-items:center; gap:.5rem; }
.card-title i { color:var(--primary); }
.stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1rem; }
.stat-card { background:#fff; border-radius:var(--radius); padding:1.15rem; display:flex; align-items:center; gap:1rem; box-shadow:var(--shadow); }
.stat-icon { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.05rem; }
.stat-icon.blue { background:#dbeafe; color:#2563eb; }
.stat-icon.green { background:#dcfce7; color:#16a34a; }
.stat-icon.orange { background:#fef3c7; color:#d97706; }
.stat-icon.red { background:#fee2e2; color:#dc2626; }
.stat-num { display:block; font-size:1.4rem; font-weight:700; color:var(--text); }
.stat-label { font-size:.72rem; color:var(--muted); }
.setores-links { display:flex; flex-wrap:wrap; gap:.6rem; }
.setores-links a { display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .9rem; background:var(--primary-light); color:var(--primary-dark); border-radius:8px; font-size:.8rem; font-weight:600; }
.setores-links a:hover { background:var(--primary); color:#fff; }

/* FORMS */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; }
.grid-4 { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:.75rem; }
.field { display:flex; flex-direction:column; gap:.2rem; }
.field label { font-size:.72rem; font-weight:600; color:var(--gray-600); text-transform:uppercase; letter-spacing:.02em; }
.field input, .field select, .field textarea { padding:.55rem .75rem; border:1.5px solid var(--gray-200); border-radius:8px; font-size:.85rem; transition:border .2s; font-family:inherit; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--primary); }
.form-btns { display:flex; gap:.75rem; margin-top:1.15rem; flex-wrap:wrap; }
.hint { font-size:.78rem; color:var(--muted); margin-bottom:.75rem; line-height:1.45; }
.page-actions { display:flex; gap:.75rem; margin-bottom:1rem; flex-wrap:wrap; }
.filters-bar { display:flex; gap:.5rem; margin-bottom:1rem; flex-wrap:wrap; align-items:center; }
.filter-input { padding:.45rem .7rem; border:1.5px solid var(--gray-200); border-radius:8px; font-size:.8rem; background:#fff; }
.filter-input:focus { outline:none; border-color:var(--primary); }
.filter-check { font-size:.8rem; color:var(--muted); display:flex; align-items:center; gap:.35rem; white-space:nowrap; }

/* TABS */
.tabs { display:flex; gap:.35rem; margin-bottom:1rem; flex-wrap:wrap; }
.tab { padding:.45rem .85rem; border:1px solid var(--gray-200); background:#fff; border-radius:8px; font-size:.78rem; font-weight:600; color:var(--muted); cursor:pointer; }
.tab:hover { border-color:var(--primary); color:var(--primary); }
.tab.active { background:var(--primary); color:#fff; border-color:var(--primary); }

/* TABLE */
.table-wrap { overflow-x:auto; }
.table { width:100%; border-collapse:collapse; font-size:.82rem; }
.table th { text-align:left; padding:.65rem .75rem; background:var(--gray-50); color:var(--muted); font-size:.7rem; text-transform:uppercase; letter-spacing:.03em; border-bottom:1px solid var(--gray-200); white-space:nowrap; }
.table td { padding:.7rem .75rem; border-bottom:1px solid var(--gray-100); vertical-align:middle; }
.table tr:hover td { background:var(--gray-50); }
.table .actions { display:flex; gap:.35rem; flex-wrap:wrap; }

/* BADGES */
.badge { display:inline-flex; align-items:center; gap:.25rem; padding:.2rem .55rem; border-radius:999px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em; }
.badge-aberto { background:#dbeafe; color:#1d4ed8; }
.badge-reaberto { background:#fef3c7; color:#b45309; }
.badge-finalizado { background:#dcfce7; color:#15803d; }
.badge-pendente { background:#f1f5f9; color:#475569; }
.badge-pago { background:#dcfce7; color:#15803d; }
.badge-status { background:var(--primary-light); color:var(--primary-dark); }

/* ISENÇÃO BALLOON */
.isencao-balloon {
  display:inline-flex; align-items:center; gap:.3rem;
  background:#fef08a; color:#854d0e; border:1px solid #facc15;
  padding:.2rem .55rem; border-radius:999px; font-size:.7rem; font-weight:700;
  box-shadow:0 2px 8px rgba(234,179,8,.25);
}
.isencao-balloon i { font-size:.65rem; }

/* MODAL */
.modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:flex-start; justify-content:center; padding:2rem 1rem; overflow-y:auto; }
.modal-backdrop { position:fixed; inset:0; background:rgba(15,23,42,.45); }
.modal-card { position:relative; background:#fff; border-radius:16px; width:100%; max-width:720px; box-shadow:0 24px 64px rgba(0,0,0,.2); margin:auto; z-index:1; max-height:calc(100vh - 3rem); display:flex; flex-direction:column; }
.modal-card.wide { max-width:900px; }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.25rem; border-bottom:1px solid var(--gray-200); }
.modal-header h3 { font-size:1rem; }
.modal-body { padding:1.25rem; overflow-y:auto; }
.drawer-section { margin-bottom:1.25rem; }
.drawer-section h4 { font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-bottom:.6rem; }
.timeline { list-style:none; }
.timeline li { position:relative; padding:.5rem 0 .5rem 1.1rem; border-left:2px solid var(--gray-200); margin-left:.4rem; font-size:.82rem; }
.timeline li::before { content:''; position:absolute; left:-5px; top:.75rem; width:8px; height:8px; border-radius:50%; background:var(--primary); }
.timeline .tl-meta { font-size:.7rem; color:var(--muted); }
.link-row { display:flex; gap:.4rem; align-items:center; margin-bottom:.4rem; }
.link-row input { flex:1; font-size:.75rem; padding:.4rem .6rem; border:1px solid var(--gray-200); border-radius:6px; }

/* TOAST */
#toast-container { position:fixed; bottom:1.5rem; right:1.5rem; z-index:2000; display:flex; flex-direction:column; gap:.5rem; max-width:360px; }
.toast { padding:.75rem 1rem; border-radius:10px; font-size:.85rem; font-weight:500; box-shadow:0 8px 24px rgba(0,0,0,.15); color:#fff; animation:toastIn .25s ease; }
.toast.ok, .toast.inf { background:var(--gray-800); }
.toast.err { background:var(--danger); }
.toast.success { background:var(--success); }
@keyframes toastIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

.admin-only, .superadmin-only, .nav-financeiro { display:none; }
body.is-admin .admin-only { display:flex; }
body.is-admin .admin-only.btn, body.is-admin button.admin-only { display:inline-flex; }
body.is-admin .admin-only.nav-link { display:flex; }
body.is-super .superadmin-only { display:flex; }
body.has-financeiro .nav-financeiro { display:flex; }
.mobile-only { display:none; }
.empty { text-align:center; color:var(--muted); padding:1.5rem; font-size:.85rem; }

@media (max-width:900px) {
  .sidebar { transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0); }
  .sidebar-overlay.open { display:block; position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:99; }
  .main { margin-left:0; }
  .mobile-only { display:inline-flex; }
  .grid-2, .grid-3 { grid-template-columns:1fr; }
  .content { padding:1rem; }
  .empresa-badge { display:none; }
}

/* P0 — Kanban, fila, badges */
.view-toggle { display:inline-flex; gap:.35rem; margin-left:auto; }
.view-toggle .btn.active { background:var(--primary); color:#fff; border-color:var(--primary); }
.kanban-board { display:flex; gap:.75rem; overflow-x:auto; padding-bottom:.5rem; align-items:flex-start; }
.kanban-col { min-width:240px; max-width:280px; flex:0 0 240px; background:var(--gray-100); border-radius:12px; padding:.5rem; }
.kanban-col-header { display:flex; justify-content:space-between; align-items:center; padding:.55rem .65rem; background:#fff; border-radius:8px; margin-bottom:.5rem; border-top:3px solid var(--primary); font-size:.8rem; }
.kanban-col-header span { color:var(--muted); font-weight:600; }
.kanban-cards { display:flex; flex-direction:column; gap:.45rem; max-height:calc(100vh - 280px); overflow-y:auto; }
.kanban-card { text-align:left; background:#fff; border:1px solid var(--gray-200); border-radius:10px; padding:.65rem .7rem; cursor:pointer; font-size:.78rem; width:100%; transition:box-shadow .15s,border-color .15s; }
.kanban-card:hover { border-color:var(--primary); box-shadow:0 4px 14px rgba(79,70,229,.12); }
.kc-num { margin-bottom:.2rem; }
.kc-meta, .kc-emp { color:var(--muted); font-size:.72rem; }
.kc-footer { display:flex; gap:.35rem; flex-wrap:wrap; margin-top:.4rem; align-items:center; }
.dias-badge { display:inline-block; background:#fee2e2; color:#b91c1c; font-size:.65rem; font-weight:700; padding:.15rem .4rem; border-radius:6px; }
.dias-badge.sla { background:#7f1d1d; color:#fff; }
.dias-badge.inativ { background:#c2410c; color:#fff; }
.sla-badge { display:inline-block; background:#7f1d1d; color:#fff; font-size:.65rem; font-weight:700; padding:.15rem .4rem; border-radius:6px; }
.inativ-badge { display:inline-block; background:#c2410c; color:#fff; font-size:.65rem; font-weight:700; padding:.15rem .45rem; border-radius:6px; }
.inativ-aviso { color:#c2410c; font-size:.7rem; font-weight:700; margin-left:.25rem; }
.inativ-line { color:#c2410c; font-size:.72rem; font-weight:600; margin-top:.2rem; }
.inativ-banner { background:#fff7ed; border:1px solid #fdba74; color:#9a3412; padding:.55rem .75rem; border-radius:8px; margin-bottom:.85rem; font-size:.9rem; font-weight:600; }
.inativ-banner .hint { font-weight:500; color:#c2410c; }
.row-inativ { background:#fff7ed; }
.kanban-card.kanban-inativ { border-color:#fb923c; box-shadow:inset 3px 0 0 #ea580c; }
.notif-item.notif-inatividade { border-left:3px solid #ea580c; }
.notif-item.notif-sla { border-left:3px solid #7f1d1d; }
.nf-tipo { font-weight:700; }
.nf-tipo-inatividade { color:#c2410c; }
.nf-tipo-sla { color:#7f1d1d; }
.assina-badge { display:inline-block; background:#e0e7ff; color:#3730a3; font-size:.65rem; font-weight:700; padding:.15rem .4rem; border-radius:6px; }
.exig-badge { display:inline-block; background:#ffedd5; color:#c2410c; font-size:.65rem; font-weight:700; padding:.15rem .4rem; border-radius:6px; }
.chk-badge { display:inline-block; background:#dbeafe; color:#1d4ed8; font-size:.65rem; font-weight:700; padding:.15rem .4rem; border-radius:6px; }
.chk-badge.warn { background:#fef3c7; color:#a16207; }
.fila-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; }
.fila-col h4 { font-size:.8rem; margin-bottom:.5rem; color:var(--gray-700); display:flex; align-items:center; gap:.4rem; }
.fila-list { list-style:none; font-size:.8rem; }
.fila-list li { padding:.45rem 0; border-bottom:1px solid var(--gray-100); display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; }
.linkish { background:none; border:none; color:var(--primary); font-weight:700; cursor:pointer; padding:0; font-size:inherit; }
.linkish:hover { text-decoration:underline; }
.checklist-ul { list-style:none; }
.checklist-ul li { padding:.35rem 0; font-size:.85rem; }
.checklist-ul em { color:var(--danger); font-style:normal; }
.warn-soft { color:#a16207 !important; background:#fffbeb; padding:.5rem .75rem; border-radius:8px; border:1px solid #fde68a; }
.meta-oauth-status{font-size:.85rem;margin-top:.5rem;padding:.5rem .75rem;border-radius:8px}
.meta-oauth-status.loading{background:#eef2ff;color:#4338ca}
.meta-oauth-status.ok{background:#dcfce7;color:#15803d}
.meta-oauth-status.err{background:#fee2e2;color:#b91c1c}
.tutorial-box{background:var(--gray-50,#f8fafc);border:1px solid var(--gray-200,#e2e8f0);border-radius:10px;padding:1rem;margin-bottom:1rem}
.tutorial-box h4{margin:0 0 .5rem;font-size:.95rem}
.tutorial-box ol{margin:.5rem 0 0;padding-left:1.25rem}
.cfg-avancado{border:1px solid var(--gray-200,#e2e8f0);border-radius:10px;padding:.75rem 1rem;background:var(--gray-50,#f8fafc)}
.cfg-avancado summary{cursor:pointer;font-weight:600;font-size:.9rem}
.hint-inline{font-weight:400;opacity:.75;font-size:.8rem}
.td-acoes{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.row-tenant-ativo{background:rgba(37,99,235,.06)}
.row-tenant-ativo td:first-child{font-weight:600}
.exig-item { display:flex; flex-direction:column; gap:.25rem; }

/* Seleção em lote + logo config */
.bulk-bar {
  display:flex; flex-wrap:wrap; align-items:center; gap:.65rem;
  padding:.65rem 1rem; margin-bottom:.75rem; background:#eef2ff;
  border:1px solid #c7d2fe; border-radius:10px; font-size:.82rem; font-weight:600;
}
.col-check { width:2.2rem; text-align:center; }
.col-check input { cursor:pointer; }
.logo-cfg-row { display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.logo-preview-wrap {
  width:96px; height:72px; border:1px dashed var(--gray-300); border-radius:10px;
  display:flex; align-items:center; justify-content:center; background:var(--gray-50); overflow:hidden;
}
.logo-preview-wrap img { max-width:100%; max-height:100%; object-fit:contain; }
.logo-placeholder { color:var(--gray-400); font-size:1.5rem; }
.logo-cfg-actions { display:flex; gap:.5rem; flex-wrap:wrap; }

/* ── Mobile / PWA ── */
html { -webkit-text-size-adjust:100%; }
body { padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.btn, .nav-link, .tab, .kanban-card, .btn-icon { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.field input, .field select, .field textarea,
.input-group input, .filter-input {
  font-size:16px; /* evita zoom iOS */
  max-width:100%;
}
.login-card { margin:1rem; padding:1.75rem 1.35rem; }
.kanban-board {
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  padding-bottom:1rem;
}
.kanban-col { scroll-snap-align:start; }

.cookie-banner {
  position:fixed; left:1rem; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom));
  z-index:2500; background:#0f172a; color:#e2e8f0; border-radius:12px;
  padding:.85rem 1rem; box-shadow:0 12px 40px rgba(0,0,0,.35);
  display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; justify-content:space-between;
  font-size:.82rem; line-height:1.4;
}
.cookie-banner a { color:#a5b4fc; text-decoration:underline; }
.cookie-banner .btn { flex-shrink:0; }
.lgpd-aceite-box { margin:1rem 0 0; font-size:.78rem; color:var(--gray-600); line-height:1.45; }
.lgpd-aceite-box label { display:flex; gap:.5rem; align-items:flex-start; cursor:pointer; }
.lgpd-links { margin-top:.75rem; font-size:.75rem; }
.lgpd-links a { color:var(--primary); }

@media (max-width:900px) {
  .sidebar { width:min(280px, 86vw); box-shadow:8px 0 32px rgba(0,0,0,.25); }
  .topbar { padding:.65rem .85rem; gap:.5rem; }
  .topbar h2 { font-size:.95rem; max-width:42vw; overflow:hidden; text-overflow:ellipsis; }
  .content { padding:.85rem; }
  .page-actions { gap:.5rem; }
  .page-actions .btn { min-height:40px; }
  .filters-bar { gap:.4rem; }
  .filters-bar .filter-input { flex:1 1 140px; min-width:0; }
  .stats-grid { grid-template-columns:1fr 1fr; gap:.65rem; }
  .stat-card { padding:.85rem; }
  .stat-num { font-size:1.2rem; }
  .notif-panel { position:fixed; left:.75rem; right:.75rem; top:3.5rem; width:auto; max-height:70vh; }
  .modal { padding:.5rem; align-items:stretch; }
  .modal-card, .modal-card.wide {
    max-width:none; margin:0; border-radius:14px 14px 0 0;
    max-height:calc(100vh - env(safe-area-inset-bottom) - .5rem);
    align-self:flex-end;
  }
  .table th, .table td { padding:.55rem .5rem; font-size:.78rem; }
  .table .hide-sm { display:none; }
  .td-acoes .btn, .actions .btn { min-height:36px; }
  .view-toggle { margin-left:0; width:100%; }
  .view-toggle .btn { flex:1; justify-content:center; min-height:40px; }
  .kanban-col { min-width:78vw; max-width:78vw; flex:0 0 78vw; }
  .kanban-cards { max-height:none; }
  .fila-grid { grid-template-columns:1fr; }
  .bulk-bar { font-size:.78rem; }
  .app-footer { padding:.85rem .75rem calc(.85rem + env(safe-area-inset-bottom)); }
  #toast-container { left:1rem; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom)); max-width:none; }
  .login-wrapper { align-items:flex-start; padding:2rem 0; }
}

@media (max-width:560px) {
  .stats-grid { grid-template-columns:1fr; }
  .grid-4 { grid-template-columns:1fr; }
  .brand-sub { font-size:.8rem; }
  .table-wrap { margin:0 -.85rem; padding:0 .85rem; }
  .card { padding:1rem; }
  .empresa-badge { display:none !important; }
}

@media (max-width:900px) and (hover:none) {
  .btn:hover { transform:none; box-shadow:none; }
  .kanban-card:hover { box-shadow:none; }
}
