:root {
  --navy:      #1e3a5f;
  --navy-2:    #16304f;
  --gold:      #c9a961;
  --gold-2:    #b8943e;
  --gold-soft: #fdf6e3;
  --bg:        #f4f6f9;
  --surface:   #ffffff;
  --surface-2: #f0f3f7;
  --surface-3: #e4e8ef;
  --line:      #e4e8ef;
  --line-2:    #c8d0dc;
  --ink:       #0f172a;
  --ink-2:     #334155;
  --ink-3:     #64748b;
  --ink-4:     #94a3b8;
  --ok:        #16a34a;
  --ok-bg:     #f0fdf4;
  --warn:      #d97706;
  --warn-bg:   #fffbeb;
  --err:       #dc2626;
  --err-bg:    #fef2f2;
  --info:      #2563eb;
  --info-bg:   #eff6ff;
  --r:         10px;
  --r-lg:      14px;
  --shadow:    0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-2:  0 4px 16px rgba(0,0,0,0.1), 0 1px 4px rgba(0,0,0,0.06);
}
* { margin:0; padding:0; box-sizing:border-box; }
html, body { height:100%; }
body { background:#1e3a5f; display:flex; align-items:center; justify-content:center; font-family:'Inter',sans-serif; }
#root { position:fixed; inset:0; }

/* ── PULSE ANIMATION ── */
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:0.4; } }
@keyframes shimmer { 0% { background-position:-200% 0; } 100% { background-position:200% 0; } }
@keyframes spin { to { transform:translateY(-50%) rotate(360deg); } }

/* ── APP SHELL ── */
.app-shell { position:absolute; inset:0; display:flex; flex-direction:column; background:var(--bg); font-family:'Inter',sans-serif; color:var(--ink); overflow:hidden; }

/* ── TOPBAR ── */
.topbar { height:60px; background:var(--surface); border-bottom:1px solid var(--line); display:flex; align-items:center; padding:0 24px; gap:20px; flex-shrink:0; }
.brand-mark { display:flex; align-items:center; gap:10px; }
.brand-logo { width:32px; height:32px; background:var(--navy); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--gold); font-weight:700; font-size:13px; letter-spacing:-0.02em; }
.brand-name { font-size:14px; font-weight:600; color:var(--ink); letter-spacing:-0.01em; }
.brand-sub { font-size:11px; color:var(--ink-3); font-weight:400; margin-top:-2px; letter-spacing:0.02em; }
.topbar-search { flex:1; max-width:480px; position:relative; }
.topbar-search input { width:100%; height:36px; background:var(--surface-2); border:1px solid transparent; border-radius:999px; padding:0 14px 0 38px; font-size:13px; color:var(--ink); outline:none; font-family:inherit; transition:all 0.15s; }
.topbar-search input:focus { background:var(--surface); border-color:var(--line-2); box-shadow:0 0 0 3px rgba(30,58,95,0.08); }
.topbar-search .search-icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--ink-3); }
.topbar-actions { display:flex; gap:8px; align-items:center; }
.icon-btn { width:36px; height:36px; border-radius:999px; border:1px solid var(--line); background:var(--surface); color:var(--ink-2); display:flex; align-items:center; justify-content:center; cursor:pointer; position:relative; transition:all 0.15s; }
.icon-btn:hover { background:var(--surface-2); border-color:var(--line-2); }
.icon-btn .ping { position:absolute; top:6px; right:8px; width:8px; height:8px; border-radius:50%; background:var(--gold); border:2px solid var(--surface); }
.user-chip { display:flex; align-items:center; gap:10px; padding:4px 10px 4px 4px; border-radius:999px; border:1px solid var(--line); cursor:pointer; background:var(--surface); }
.user-chip:hover { background:var(--surface-2); }
.user-avatar { width:28px; height:28px; border-radius:50%; background:var(--navy); color:white; font-size:11px; font-weight:600; display:flex; align-items:center; justify-content:center; letter-spacing:0.02em; }
.user-chip .who { font-size:12px; font-weight:500; color:var(--ink); line-height:1.2; }
.user-chip .where { font-size:10px; color:var(--ink-3); line-height:1.1; }

/* ── LAYOUT ── */
.layout-row { flex:1; display:flex; min-height:0; }
.sidebar { width:220px; background:var(--surface); border-right:1px solid var(--line); padding:16px 12px; flex-shrink:0; display:flex; flex-direction:column; gap:2px; overflow-y:auto; }
.sidebar-section { font-size:10px; font-weight:600; color:var(--ink-4); text-transform:uppercase; letter-spacing:0.1em; padding:14px 12px 6px; }
.nav-link { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px; font-size:13px; font-weight:500; color:var(--ink-2); cursor:pointer; border:0; background:transparent; width:100%; text-align:left; font-family:inherit; transition:all 0.15s; }
.nav-link:hover { background:var(--surface-2); color:var(--ink); }
.nav-link.active { background:var(--navy); color:white; }
.nav-link.active .badge { background:var(--gold); color:var(--navy); }
.nav-link .badge { margin-left:auto; background:var(--surface-3); color:var(--ink-2); font-size:10px; font-weight:600; padding:1px 6px; border-radius:999px; }
.nav-sub { padding-left:28px !important; font-size:12px !important; }
.sidebar-footer { margin-top:auto; padding:12px; background:var(--gold-soft); border-radius:12px; display:flex; flex-direction:column; gap:6px; }
.sidebar-footer h4 { font-size:12px; font-weight:600; margin:0; color:#5e4a16; }
.sidebar-footer p { font-size:11px; color:#7c6326; margin:0; line-height:1.4; }
.sidebar-footer button { margin-top:4px; padding:6px 10px; background:var(--navy); color:var(--gold); border:0; border-radius:6px; font-size:11px; font-weight:600; cursor:pointer; font-family:inherit; }

/* ── MAIN ── */
.main { flex:1; min-width:0; overflow-y:auto; background:var(--bg); }
.main-pad { padding:24px 28px; max-width:1200px; margin:0 auto; }
.page-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; }
.page-title h2 { font-size:22px; font-weight:600; margin:0; letter-spacing:-0.02em; }
.page-title p { margin:2px 0 0; font-size:13px; color:var(--ink-3); }

/* ── BUTTONS ── */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:36px; padding:0 16px; border-radius:8px; font-size:13px; font-weight:500; border:1px solid transparent; cursor:pointer; font-family:inherit; transition:all 0.15s; white-space:nowrap; }
.btn:disabled { opacity:0.5; cursor:not-allowed; }
.btn-primary { background:var(--navy); color:white; }
.btn-primary:hover:not(:disabled) { background:var(--navy-2); }
.btn-gold { background:var(--gold); color:#1c1917; font-weight:600; }
.btn-gold:hover:not(:disabled) { background:var(--gold-2); color:white; }
.btn-ghost { background:var(--surface); border-color:var(--line); color:var(--ink-2); }
.btn-ghost:hover:not(:disabled) { background:var(--surface-2); }
.btn-danger { background:var(--err-bg); border-color:var(--err); color:var(--err); }
.btn-danger:hover:not(:disabled) { background:var(--err); color:white; }
.btn-lg { height:44px; padding:0 22px; font-size:14px; }
.btn-sm { height:30px; padding:0 12px; font-size:12px; }

/* ── CARDS ── */
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:20px; box-shadow:var(--shadow); }
.card-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.card-head h3 { font-size:15px; font-weight:600; margin:0; }
.card-head .link { display:flex; align-items:center; gap:4px; font-size:12px; color:var(--ink-3); border:0; background:transparent; cursor:pointer; font-family:inherit; }
.card-head .link:hover { color:var(--navy); }

/* ── FORM FIELDS ── */
.field { margin-bottom:16px; }
.field label { display:block; font-size:12px; font-weight:500; color:var(--ink-2); margin-bottom:6px; }
.field input, .field select, .field textarea {
  width:100%; height:38px; background:var(--surface-2);
  border:1px solid var(--line); border-radius:8px; padding:0 12px;
  font-size:13px; color:var(--ink); outline:none; font-family:inherit; transition:all 0.15s;
}
.field textarea { height:auto; padding:10px 12px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { background:var(--surface); border-color:var(--navy); box-shadow:0 0 0 3px rgba(30,58,95,0.08); }
.field .hint { font-size:11px; color:var(--ink-3); margin-top:5px; }
.req { color:var(--err); margin-left:2px; }

/* ── BADGES / STATUS ── */
.status-pill { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; padding:4px 9px; border-radius:999px; white-space:nowrap; }
.status-pill .ind { width:6px; height:6px; border-radius:50%; }
.status-pill.ok { background:var(--ok-bg); color:var(--ok); } .status-pill.ok .ind { background:var(--ok); }
.status-pill.warn { background:var(--warn-bg); color:var(--warn); } .status-pill.warn .ind { background:var(--warn); }
.status-pill.info { background:var(--info-bg); color:var(--info); } .status-pill.info .ind { background:var(--info); }
.status-pill.err { background:var(--err-bg); color:var(--err); } .status-pill.err .ind { background:var(--err); }
.status-pill.muted { background:var(--surface-2); color:var(--ink-3); } .status-pill.muted .ind { background:var(--ink-4); }

/* ── PERMISSIONS TABLE ── */
.perm-table { width:100%; border-collapse:collapse; font-size:12px; }
.perm-table th { padding:8px 10px; text-align:center; font-size:10px; font-weight:700; color:var(--ink-3); text-transform:uppercase; letter-spacing:0.08em; border-bottom:2px solid var(--line); background:var(--surface-2); }
.perm-table th.mod-col { text-align:left; min-width:160px; }
.perm-table td { padding:0; border-bottom:1px solid var(--line); vertical-align:middle; }
.perm-table td.mod-cell { padding:0; }
.perm-table tr:last-child td { border-bottom:0; }
.perm-table tr:hover td { background:rgba(30,58,95,0.02); }
.perm-group-row td { background:var(--surface-2); padding:5px 10px; font-size:10px; font-weight:700; color:var(--ink-4); text-transform:uppercase; letter-spacing:0.1em; }
.perm-mod-label { display:flex; align-items:center; gap:8px; padding:10px 12px; color:var(--ink-2); font-weight:500; font-size:12px; }
.perm-check-cell { text-align:center; width:72px; }
.perm-check-cell label { display:flex; align-items:center; justify-content:center; height:44px; cursor:pointer; }
.perm-check-cell label.disabled { cursor:not-allowed; opacity:0.4; }
.perm-check-cell input[type=checkbox] { width:16px; height:16px; accent-color:var(--navy); cursor:pointer; }

.gis-shell { padding:24px 28px; max-width:1100px; margin:0 auto; }
.gis-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:12px; }
.gis-nav-month { display:flex; align-items:center; gap:10px; }
.gis-nav-month button { width:32px; height:32px; border-radius:8px; border:1px solid var(--line); background:var(--surface); color:var(--ink-2); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; transition:all 0.15s; }
.gis-nav-month button:hover { background:var(--surface-2); }
.gis-month-label { font-size:20px; font-weight:700; letter-spacing:-0.02em; color:var(--navy); min-width:200px; text-align:center; }
.gis-month-adj { font-size:12px; color:var(--ink-3); font-weight:500; cursor:pointer; padding:4px 8px; border-radius:6px; transition:background 0.15s; }
.gis-month-adj:hover { background:var(--surface-2); }
.gis-alert-banner { display:flex; align-items:center; gap:10px; background:#fff3cd; border:1px solid #ffc107; border-radius:8px; padding:10px 16px; font-size:12px; color:#856404; font-weight:500; margin-bottom:16px; }
.gis-calendar { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); }
.gis-cal-head { display:grid; grid-template-columns:repeat(7,1fr) 140px; background:var(--navy); color:white; }
.gis-cal-head-cell { padding:10px 8px; text-align:center; font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; }
.gis-cal-head-cell.total-col { background:rgba(0,0,0,0.2); }
.gis-week-row { display:grid; grid-template-columns:repeat(7,1fr) 140px; border-bottom:1px solid var(--line); }
.gis-week-row:last-child { border-bottom:0; }
.gis-day-cell { border-right:1px solid var(--line); padding:6px 8px; min-height:72px; display:flex; flex-direction:column; position:relative; }
.gis-day-cell:last-child { border-right:0; }
.gis-day-cell.weekend { background:var(--surface-2); }
.gis-day-cell.outside { background:#f8f9fb; opacity:0.5; pointer-events:none; }
.gis-day-cell.today { background:rgba(201,169,97,0.08); border-top:2px solid var(--gold); }
.gis-day-cell.future { background:var(--surface); }
.gis-day-cell.has-value { background:rgba(22,163,74,0.04); }
.gis-day-num { font-size:13px; font-weight:600; color:var(--ink-3); margin-bottom:4px; line-height:1; }
.gis-day-cell.today .gis-day-num { color:var(--gold-2); font-weight:700; }
.gis-day-cell.past .gis-day-num { color:var(--ink); }
.gis-day-input { width:100%; height:30px; background:var(--surface-2); border:1px solid var(--line); border-radius:6px; padding:0 6px; font-size:12px; color:var(--ink); outline:none; font-family:'JetBrains Mono',monospace; font-weight:500; text-align:right; transition:all 0.15s; margin-top:auto; }
.gis-day-input:focus { background:var(--surface); border-color:var(--navy); box-shadow:0 0 0 2px rgba(30,58,95,0.1); }
.gis-day-input.filled { border-color:var(--ok); background:var(--ok-bg); color:var(--ok); }
.gis-day-input.filled:focus { border-color:var(--ok); box-shadow:0 0 0 2px rgba(22,163,74,0.15); }
.gis-day-input:disabled { opacity:0.35; cursor:not-allowed; }
.gis-total-cell { display:flex; flex-direction:column; justify-content:center; align-items:flex-end; padding:8px 14px; background:var(--surface-2); border-right:0; min-height:72px; }
.gis-total-cell .total-label { font-size:10px; color:var(--ink-4); font-weight:600; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:4px; }
.gis-total-cell .total-value { font-size:15px; font-weight:700; color:var(--navy); font-family:'JetBrains Mono',monospace; }
.gis-total-cell .total-value.has-value { color:var(--ok); }
.gis-total-cell .total-value.empty { color:var(--ink-4); font-size:12px; font-weight:400; }
.gis-week-action { margin-top:6px; }
.gis-week-action button { font-size:10px; padding:3px 8px; height:24px; border-radius:5px; }
.gis-footer-bar { display:flex; align-items:center; justify-content:space-between; background:var(--surface-2); padding:14px 20px; border-top:1px solid var(--line); flex-wrap:wrap; gap:12px; }
.gis-footer-bar .gis-hint { font-size:11px; color:var(--ink-3); display:flex; align-items:center; gap:6px; }
.gis-month-total { text-align:right; }
.gis-month-total .mt-label { font-size:11px; color:var(--ink-3); font-weight:500; }
.gis-month-total .mt-value { font-size:20px; font-weight:700; color:var(--navy); font-family:'JetBrains Mono',monospace; letter-spacing:-0.02em; }
.gis-status-panel { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:20px; }
.gis-stat-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:16px 20px; display:flex; align-items:center; gap:14px; box-shadow:var(--shadow); }
.gis-stat-card .gis-stat-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.gis-stat-card .gis-stat-num { font-size:20px; font-weight:700; letter-spacing:-0.02em; font-family:'JetBrains Mono',monospace; }
.gis-stat-card .gis-stat-lbl { font-size:11px; color:var(--ink-3); margin-top:1px; }
.gis-week-sent-badge { display:inline-flex; align-items:center; gap:4px; font-size:10px; font-weight:600; padding:3px 7px; border-radius:999px; background:var(--ok-bg); color:var(--ok); margin-top:4px; }
.gis-week-sent-badge.pending { background:var(--warn-bg); color:var(--warn); }
.gis-week-sent-badge.overdue { background:var(--err-bg); color:var(--err); }

@keyframes progress-bar { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes slide-in-up { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }

.carousel { position:relative; border-radius:var(--r-lg); overflow:hidden; background:var(--navy); box-shadow:var(--shadow-2); user-select:none; }
.carousel-track { display:flex; transition:transform 0.55s cubic-bezier(0.16,1,0.3,1); will-change:transform; }
.carousel-track.no-transition { transition:none; }
.carousel-slide { min-width:100%; position:relative; aspect-ratio:22/9; overflow:hidden; background:var(--navy); }

/* Placeholder background — grade geométrica animada */
.slide-bg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.slide-bg-inner { position:absolute; inset:-20%; background-size:48px 48px; opacity:0.18; }
.slide-bg-label { font-family:'JetBrains Mono',monospace; font-size:11px; color:rgba(255,255,255,0.25); letter-spacing:0.12em; text-transform:uppercase; position:relative; z-index:1; }

/* Overlay em duas camadas: escurecimento lateral + gradiente inferior */
.slide-overlay { position:absolute; inset:0; background:linear-gradient(110deg,rgba(10,20,40,0.92) 0%,rgba(10,20,40,0.6) 42%,rgba(10,20,40,0.1) 72%,transparent 100%); }
.slide-overlay-bottom { position:absolute; inset:0; background:linear-gradient(to top, rgba(10,20,40,0.55) 0%, transparent 50%); }

/* Conteúdo do slide com animação de entrada */
.slide-content { position:absolute; left:0; bottom:0; padding:36px 44px; max-width:62%; color:white; z-index:6; }
.carousel-slide.is-active .slide-content > * { animation: slide-in-up 0.5s cubic-bezier(0.16,1,0.3,1) both; }
.carousel-slide.is-active .slide-tag   { animation-delay: 0.05s; }
.carousel-slide.is-active h3           { animation-delay: 0.12s; }
.carousel-slide.is-active .slide-sub   { animation-delay: 0.18s; }
.carousel-slide.is-active p            { animation-delay: 0.22s; }
.carousel-slide.is-active .slide-cta   { animation-delay: 0.28s; }

.slide-tag { display:inline-flex; align-items:center; gap:6px; background:var(--gold); color:#1c1917; font-size:10px; font-weight:700; letter-spacing:0.12em; padding:5px 11px; border-radius:5px; text-transform:uppercase; }
.slide-tag .tag-dot { width:5px; height:5px; border-radius:50%; background:#1c1917; opacity:0.5; }
.slide-content h3 { margin:13px 0 5px; font-size:27px; font-weight:600; letter-spacing:-0.02em; line-height:1.18; text-shadow:0 1px 8px rgba(0,0,0,0.3); }
.slide-content .slide-sub { font-size:12px; color:rgba(255,255,255,0.6); margin-bottom:7px; font-weight:500; letter-spacing:0.03em; text-transform:uppercase; }
.slide-content p { font-size:13px; color:rgba(255,255,255,0.82); max-width:460px; line-height:1.55; }
.slide-cta { margin-top:18px; display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.22); color:white; font-size:12px; font-weight:500; padding:7px 14px; border-radius:7px; backdrop-filter:blur(6px); cursor:pointer; transition:all 0.18s; font-family:inherit; }
.slide-cta:hover { background:rgba(255,255,255,0.2); border-color:rgba(255,255,255,0.35); }

/* Barra de progresso do autoplay */
.carousel-progress { position:absolute; top:0; left:0; right:0; height:3px; background:rgba(255,255,255,0.1); z-index:10; }
.carousel-progress-bar { height:100%; background:var(--gold); transform-origin:left; animation:progress-bar linear both; }

/* Controles inferiores unificados */
.carousel-footer { position:absolute; bottom:0; left:0; right:0; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; z-index:5; background:linear-gradient(to top, rgba(10,20,40,0.5) 0%, transparent 100%); }
.carousel-dots { display:flex; gap:5px; align-items:center; }
.carousel-dots span { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.3); cursor:pointer; transition:all 0.25s; flex-shrink:0; }
.carousel-dots span.active { background:var(--gold); width:20px; border-radius:3px; }
.carousel-dots span:hover:not(.active) { background:rgba(255,255,255,0.55); }

.carousel-actions { display:flex; align-items:center; gap:6px; }
.carousel-btn { width:30px; height:30px; border-radius:8px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.18); color:white; display:flex; align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(8px); transition:all 0.15s; }
.carousel-btn:hover { background:rgba(255,255,255,0.22); border-color:rgba(255,255,255,0.3); }
.carousel-btn.pause-btn { background:rgba(201,169,97,0.18); border-color:rgba(201,169,97,0.35); color:var(--gold); }
.carousel-btn.pause-btn:hover { background:rgba(201,169,97,0.3); }

/* Contador de slides */
.carousel-counter { font-size:11px; font-weight:600; color:rgba(255,255,255,0.45); font-family:'JetBrains Mono',monospace; margin-right:2px; }

/* Setas laterais grandes (hover) */
.carousel-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:6; width:36px; height:64px; background:rgba(10,20,40,0.35); border:1px solid rgba(255,255,255,0.1); color:rgba(255,255,255,0.7); display:flex; align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(6px); transition:all 0.18s; opacity:0; }
.carousel-arrow.left  { left:0;  border-radius:0 10px 10px 0; }
.carousel-arrow.right { right:0; border-radius:10px 0 0 10px; }
.carousel:hover .carousel-arrow { opacity:1; }
.carousel-arrow:hover { background:rgba(10,20,40,0.6); color:white; }

/* ── TILES ── */
.tile-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.tile { display:flex; align-items:center; gap:12px; padding:16px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); cursor:pointer; text-align:left; font-family:inherit; transition:all 0.15s; }
.tile:hover { border-color:var(--line-2); box-shadow:var(--shadow); }
.tile-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tile.tone-navy .tile-icon { background:var(--navy); color:var(--gold); }
.tile.tone-gold .tile-icon { background:var(--gold-soft); color:var(--gold-2); }
.tile.tone-soft .tile-icon { background:var(--surface-2); color:var(--ink-2); }
.tile-label { font-size:13px; font-weight:600; color:var(--ink); }
.tile-sub { font-size:11px; color:var(--ink-3); margin-top:2px; }
.tile-arrow { margin-left:auto; color:var(--ink-4); }

/* ── DASH GRID ── */
.dash-grid { display:grid; grid-template-columns:1fr 340px; gap:20px; margin-top:20px; }
.stat-list { display:flex; flex-direction:column; gap:8px; }
.stat-item { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; background:var(--surface-2); }
.stat-item.ok .stat-icon { color:var(--ok); } .stat-item.warn .stat-icon { color:var(--warn); } .stat-item.alert .stat-icon { color:var(--err); }
.stat-icon { width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.stat-num { font-size:18px; font-weight:600; letter-spacing:-0.02em; }
.stat-lbl { font-size:11px; color:var(--ink-3); }
.nps-row { display:flex; gap:4px; margin-top:10px; }
.nps-row span { flex:1; height:6px; background:var(--surface-2); border-radius:2px; }
.nps-row span.fill { background:linear-gradient(90deg,var(--err) 0%,var(--warn) 50%,var(--ok) 100%); }

/* ── FEED ── */
.feed-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:20px; margin-bottom:14px; }
.feed-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.feed-head .av { width:36px; height:36px; border-radius:50%; background:var(--navy); color:white; font-size:12px; font-weight:600; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.feed-head .who { font-size:13px; font-weight:600; color:var(--ink); }
.feed-head .when { font-size:11px; color:var(--ink-3); }
.feed-head .ai-tag { margin-left:auto; display:flex; align-items:center; gap:4px; font-size:10px; font-weight:600; color:var(--gold-2); background:var(--gold-soft); padding:4px 8px; border-radius:6px; white-space:nowrap; }
.feed-card h4 { font-size:16px; font-weight:600; margin-bottom:6px; letter-spacing:-0.01em; }
.feed-card p.body { font-size:13px; color:var(--ink-2); line-height:1.55; }
.feed-media { margin-top:12px; background:var(--surface-2); border-radius:8px; padding:24px; text-align:center; font-size:12px; color:var(--ink-4); font-family:'JetBrains Mono',monospace; border:1px dashed var(--line-2); }
.feed-tags { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.feed-tags span { font-size:11px; color:var(--ink-3); background:var(--surface-2); padding:3px 8px; border-radius:6px; }
.feed-actions { display:flex; gap:6px; margin-top:14px; flex-wrap:wrap; }
.feed-actions button { display:flex; align-items:center; gap:6px; border:0; background:transparent; font-size:12px; color:var(--ink-3); cursor:pointer; padding:4px 8px; border-radius:6px; font-family:inherit; }
.feed-actions button:hover { background:var(--surface-2); color:var(--ink-2); }
.feed-actions button.liked { color:var(--err); }
.feed-actions button.saved { color:var(--gold-2); }

/* ── REQUESTS ── */
.req-detail-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:18px; margin-bottom:12px; transition:all 0.15s; }
.req-detail-card:hover { border-color:var(--line-2); }
.req-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.req-detail-id { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--ink-3); }
.req-detail-title { font-size:15px; font-weight:600; margin:2px 0 0; letter-spacing:-0.01em; line-height:1.3; }
.req-detail-meta { display:flex; gap:8px; align-items:center; font-size:11px; color:var(--ink-3); margin-top:6px; flex-wrap:wrap; }
.req-detail-meta span.dot { width:3px; height:3px; border-radius:50%; background:var(--ink-4); }
.progress { height:4px; border-radius:2px; background:var(--surface-2); overflow:hidden; }
.progress span { display:block; height:100%; background:var(--navy); border-radius:2px; transition:width 0.3s; }
.progress.ok span { background:var(--ok); }
.progress.crit span { background:var(--err); }

/* ── STEPPER ── */
.stepper-shell { display:flex; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow); min-height:520px; }
.stepper-aside { width:260px; background:var(--navy); color:white; padding:32px 24px; flex-shrink:0; display:flex; flex-direction:column; }
.stepper-aside h3 { font-size:11px; font-weight:600; letter-spacing:0.12em; color:rgba(255,255,255,0.5); text-transform:uppercase; margin-bottom:6px; }
.stepper-aside h2 { font-size:20px; font-weight:600; margin:0 0 28px; line-height:1.25; }
.step-list { display:flex; flex-direction:column; gap:4px; }
.step-item { display:flex; align-items:center; gap:12px; padding:8px 12px; border-radius:8px; transition:all 0.2s; }
.step-item.active { background:rgba(255,255,255,0.1); }
.step-num { width:24px; height:24px; border-radius:50%; border:1.5px solid rgba(255,255,255,0.25); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; flex-shrink:0; color:rgba(255,255,255,0.5); }
.step-item.active .step-num { border-color:var(--gold); color:var(--gold); background:rgba(201,169,97,0.15); }
.step-item.done .step-num { border-color:var(--ok); color:var(--ok); background:rgba(22,163,74,0.15); }
.step-label { font-size:13px; font-weight:500; color:rgba(255,255,255,0.6); }
.step-item.active .step-label { color:white; }
.step-item.done .step-label { color:rgba(255,255,255,0.5); }
.footer-tip { margin-top:auto; padding-top:24px; font-size:11px; color:rgba(255,255,255,0.35); line-height:1.5; }
.stepper-main { flex:1; padding:36px; overflow-y:auto; }
.stepper-main h3 { font-size:18px; font-weight:600; margin-bottom:6px; letter-spacing:-0.01em; }
.stepper-main p.lead { font-size:13px; color:var(--ink-3); margin-bottom:24px; line-height:1.5; }
.type-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.type-card { display:flex; align-items:center; gap:12px; padding:14px; border:1.5px solid var(--line); border-radius:10px; background:var(--surface); cursor:pointer; text-align:left; font-family:inherit; transition:all 0.15s; width:100%; }
.type-card:hover { border-color:var(--line-2); background:var(--surface-2); }
.type-card.selected { border-color:var(--navy); background:#f6f8fc; }
.ti { width:36px; height:36px; border-radius:8px; background:var(--surface-2); display:flex; align-items:center; justify-content:center; color:var(--ink-2); flex-shrink:0; }
.type-card.selected .ti { background:var(--navy); color:white; }
.tl { font-size:13px; font-weight:600; color:var(--ink); }
.td { font-size:11px; color:var(--ink-3); margin-top:2px; }
.priority-row { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.priority-card { padding:12px; border:1.5px solid var(--line); border-radius:8px; background:var(--surface); cursor:pointer; font-family:inherit; transition:all 0.15s; }
.priority-card:hover { border-color:var(--line-2); }
.priority-card.selected { border-color:var(--navy); background:#f6f8fc; }
.priority-card[data-p="Crítica"].selected { border-color:var(--err); background:var(--err-bg); }
.pl { font-size:13px; font-weight:600; color:var(--ink); }
.ps { font-size:11px; color:var(--ink-3); margin-top:2px; }
.upload-zone { border:2px dashed var(--line-2); border-radius:10px; padding:28px; text-align:center; cursor:pointer; transition:all 0.18s; }
.upload-zone:hover { border-color:var(--navy); background:var(--surface-2); }
.upload-zone-active { border-color:var(--navy) !important; background:#f0f4ff !important; }
.upload-zone .uh { font-size:13px; font-weight:500; color:var(--ink-2); margin-top:8px; }
.upload-zone .us { font-size:11px; color:var(--ink-3); margin-top:4px; }
.review-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }
.review-row:last-child { border-bottom:0; }
.review-row .k { color:var(--ink-3); }
.review-row .v { color:var(--ink); font-weight:500; max-width:60%; text-align:right; }
.stepper-foot { display:flex; justify-content:space-between; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }

/* ── DIVIDERS ── */
.divider { height:1px; background:var(--line); margin:18px 0; }
.label-eyebrow { font-size:10px; font-weight:600; letter-spacing:0.12em; color:var(--ink-4); text-transform:uppercase; margin-bottom:8px; }

/* ── LOGIN ── */
.login-shell { position:absolute; inset:0; display:flex; background:var(--bg); }
.login-left { flex:1.1; background:var(--navy); color:white; padding:48px; display:flex; flex-direction:column; position:relative; overflow:hidden; background-image:radial-gradient(ellipse 80% 60% at 100% 100%,rgba(201,169,97,0.18) 0%,transparent 50%),radial-gradient(ellipse 60% 80% at 0% 0%,rgba(44,83,128,0.4) 0%,transparent 60%); }
.login-left::after { content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,0.04) 1px,transparent 1px); background-size:24px 24px; pointer-events:none; }
.login-brand-mark { display:flex; align-items:center; gap:12px; position:relative; z-index:2; }
.login-brand-mark .lm { width:40px; height:40px; background:var(--gold); color:var(--navy); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; }
.login-headline { margin-top:auto; position:relative; z-index:2; }
.login-headline .eyebrow { font-size:11px; font-weight:600; letter-spacing:0.16em; color:var(--gold); margin-bottom:14px; text-transform:uppercase; }
.login-headline h1 { font-size:36px; font-weight:600; margin:0; letter-spacing:-0.02em; line-height:1.15; max-width:460px; }
.login-headline p { margin:14px 0 0; font-size:14px; color:rgba(255,255,255,0.65); max-width:440px; line-height:1.5; }
.login-stats { display:flex; gap:36px; margin-top:28px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.1); position:relative; z-index:2; }
.login-stats .ls-num { font-size:22px; font-weight:600; color:var(--gold); letter-spacing:-0.01em; }
.login-stats .ls-lbl { font-size:11px; color:rgba(255,255,255,0.55); margin-top:2px; letter-spacing:0.04em; }

/* ── LOGIN CAROUSEL ── */
.login-carousel { position:relative; margin-top:auto; z-index:2; }
.login-car-track { overflow:hidden; }
.login-car-slide { display:none; }
.login-car-slide.active { display:block; }
.login-car-eyebrow { font-size:11px; font-weight:600; letter-spacing:0.16em; color:var(--gold); margin-bottom:10px; text-transform:uppercase; }
.login-car-title { font-size:28px; font-weight:600; margin:0 0 8px; letter-spacing:-0.02em; line-height:1.2; max-width:460px; color:white; }
.login-car-body { font-size:13px; color:rgba(255,255,255,0.7); max-width:440px; line-height:1.55; }
.login-car-footer { display:flex; align-items:center; gap:10px; margin-top:18px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.1); }
.login-car-dots { display:flex; gap:6px; align-items:center; }
.login-car-dots span { width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.3); cursor:pointer; transition:all 0.25s; }
.login-car-dots span.active { background:var(--gold); width:20px; border-radius:3px; }
.login-car-nav { display:flex; gap:5px; margin-left:auto; }
.login-car-nav button { width:28px; height:28px; border-radius:7px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.15); color:white; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.15s; font-size:13px; }
.login-car-nav button:hover { background:rgba(255,255,255,0.22); }
.login-car-counter { font-size:11px; color:rgba(255,255,255,0.4); font-family:'JetBrains Mono',monospace; }
.login-car-progress { height:3px; background:rgba(255,255,255,0.1); border-radius:2px; margin-top:6px; overflow:hidden; }
.login-car-bar { height:100%; background:var(--gold); border-radius:2px; transition:width 0.1s linear; }
.login-right { flex:1; display:flex; align-items:center; justify-content:center; padding:40px; }
.login-form { width:100%; max-width:380px; }
.login-form h2 { font-size:24px; font-weight:600; margin:0 0 6px; letter-spacing:-0.01em; }
.login-form .sub { font-size:13px; color:var(--ink-3); margin:0 0 24px; }
.login-form .field { margin-bottom:14px; }
.login-form code { background:rgba(0,0,0,0.06); padding:1px 4px; border-radius:3px; font-family:'JetBrains Mono',monospace; font-size:11px; }

/* ── LOGIN MOBILE ── */
@media (max-width:767px) {
  .login-shell { flex-direction:column; overflow-y:auto; }
  .login-left { flex:none; padding:28px 24px 20px; }
  .login-car-title { font-size:20px; }
  .login-car-body { font-size:12px; }
  .login-car-footer { display:none; }
  .login-stats { display:none; }
  .login-right { flex:none; padding:24px; width:100%; }
  .login-form { max-width:100%; }
}

/* ── SKELETON ── */
.skel { background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%); background-size:200% 100%; animation:shimmer 1.5s infinite; border-radius:4px; }

/* ── USERS MODULE ── */
.users-table { width:100%; border-collapse:collapse; }
.users-table th { text-align:left; font-size:11px; font-weight:600; color:var(--ink-3); text-transform:uppercase; letter-spacing:0.06em; padding:8px 12px; border-bottom:1px solid var(--line); }
.users-table td { padding:12px; border-bottom:1px solid var(--line); font-size:13px; vertical-align:middle; }
.users-table tr:last-child td { border-bottom:0; }
.users-table tr:hover td { background:var(--surface-2); }
.role-badge { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; }
.role-badge.admin { background:#eef2ff; color:#4338ca; }
.role-badge.gestor { background:var(--warn-bg); color:var(--warn); }
.role-badge.colaborador { background:var(--surface-2); color:var(--ink-3); }
.perm-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px; margin-top:8px; }
.perm-item { display:flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; cursor:pointer; user-select:none; font-size:12px; font-family:inherit; background:var(--surface); transition:all 0.15s; }
.perm-item:hover { border-color:var(--line-2); background:var(--surface-2); }
.perm-item input[type=checkbox] { width:15px; height:15px; accent-color:var(--navy); cursor:pointer; }
.modal-overlay { position:fixed; inset:0; background:rgba(15,23,42,0.55); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; z-index:2000; padding:24px; }
.modal-card { background:var(--surface); border-radius:var(--r-lg); padding:28px; width:100%; max-width:520px; max-height:90vh; overflow-y:auto; position:relative; box-shadow:0 24px 48px rgba(0,0,0,0.2); }
.modal-card h3 { font-size:17px; font-weight:600; margin:0 0 4px; }
.modal-card .close-x { position:absolute; top:14px; right:14px; background:transparent; border:0; cursor:pointer; color:var(--ink-3); width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:6px; }
.modal-card .close-x:hover { background:var(--surface-2); color:var(--ink); }
.force-pwd-modal { border:2px solid var(--gold); }

/* ── MOBILE ── */
.app-shell.mobile { font-size:14px; }
.bottom-tabs { position:absolute; left:0; right:0; bottom:0; height:64px; background:var(--surface); border-top:1px solid var(--line); display:flex; z-index:100; }
.bottom-tabs button { flex:1; border:0; background:transparent; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:10px; font-weight:500; color:var(--ink-3); cursor:pointer; font-family:inherit; position:relative; }
.bottom-tabs button.active { color:var(--navy); }
.bottom-tabs button.fab { margin:-22px 6px 0; background:var(--gold); border-radius:50%; height:52px; flex:0 0 52px; color:#1c1917; box-shadow:0 6px 16px rgba(201,169,97,0.4); }
.bottom-tabs button.active::after { content:''; position:absolute; top:8px; width:24px; height:3px; background:var(--gold); border-radius:2px; }
.mobile .main { padding-bottom:80px; }
.mobile .main-pad { padding:16px; }
.mobile .carousel-slide { aspect-ratio:4/3; }
.mobile .slide-content { max-width:100%; padding:18px 20px; }
.mobile .slide-content h3 { font-size:19px; }
.mobile .carousel-arrow { display:none; }
.mobile .dash-grid { grid-template-columns:1fr; }
.mobile .tile-grid { grid-template-columns:1fr 1fr; gap:10px; }
.mobile .stepper-shell { flex-direction:column; }
.mobile .stepper-aside { width:100%; padding:16px 20px; }
.mobile .stepper-aside h2, .mobile .stepper-aside h3, .mobile .stepper-aside .footer-tip { display:none; }
.mobile .step-list { flex-direction:row; }
.mobile .step-item { flex-direction:column; align-items:center; flex:1; padding:6px 0; }
.mobile .step-item .step-label { font-size:10px; text-align:center; }
.mobile .stepper-main { padding:20px; }
.mobile .type-grid { grid-template-columns:1fr 1fr; }
.mobile .priority-row { grid-template-columns:1fr 1fr 1fr; }

/* ── SEGURANÇA MODULE ── */
.seg-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.seg-asset-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:18px; box-shadow:var(--shadow); transition:box-shadow 0.15s,transform 0.15s; cursor:pointer; }
.seg-asset-card:hover { box-shadow:var(--shadow-2); transform:translateY(-1px); }
.seg-asset-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:12px; gap:10px; }
.seg-asset-id { font-size:11px; font-weight:700; color:var(--ink-4); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:2px; }
.seg-asset-name { font-size:15px; font-weight:600; color:var(--ink); }
.seg-asset-loc { font-size:12px; color:var(--ink-3); margin-top:2px; display:flex; align-items:center; gap:4px; }
.seg-asset-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; border-top:1px solid var(--line); padding-top:12px; }
.seg-meta-pill { display:inline-flex; align-items:center; gap:4px; font-size:11px; padding:3px 8px; border-radius:999px; background:var(--surface-2); color:var(--ink-3); font-weight:500; }
.seg-meta-pill.group { background:#eef2ff; color:#4338ca; }
.seg-due-pill { font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.seg-due-pill.ok   { background:var(--ok-bg);   color:var(--ok); }
.seg-due-pill.warn { background:var(--warn-bg); color:var(--warn); }
.seg-due-pill.err  { background:var(--err-bg);  color:var(--err); }
.seg-photo-preview { width:100%; border-radius:8px; max-height:180px; object-fit:cover; margin-top:10px; border:1px solid var(--line); }
.seg-photo-placeholder { width:100%; height:100px; background:var(--surface-2); border:1.5px dashed var(--line-2); border-radius:8px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:var(--ink-3); font-size:12px; margin-top:10px; cursor:pointer; transition:all 0.15s; }
.seg-photo-placeholder:hover { border-color:var(--navy); color:var(--navy); }
.seg-tabs { display:flex; gap:2px; background:var(--surface-2); border-radius:10px; padding:3px; margin-bottom:20px; }
.seg-tab { flex:1; height:34px; border:0; border-radius:8px; font-size:13px; font-weight:500; cursor:pointer; font-family:inherit; color:var(--ink-3); background:transparent; transition:all 0.15s; }
.seg-tab.active { background:var(--surface); color:var(--navy); box-shadow:var(--shadow); font-weight:600; }
.seg-insp-row { padding:14px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:6px; }
.seg-insp-row:last-child { border-bottom:0; }
.seg-insp-header { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.seg-insp-who { font-size:13px; font-weight:600; color:var(--ink); }
.seg-insp-when { font-size:11px; color:var(--ink-3); }
.seg-insp-obs { font-size:12px; color:var(--ink-2); background:var(--surface-2); border-radius:6px; padding:8px 10px; margin-top:4px; }
.seg-insp-thumb { width:60px; height:60px; object-fit:cover; border-radius:8px; border:1px solid var(--line); cursor:pointer; }
.seg-stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
.seg-stat-box { background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:16px; box-shadow:var(--shadow); }
.seg-stat-box .sv { font-size:26px; font-weight:700; font-family:'JetBrains Mono',monospace; letter-spacing:-0.02em; }
.seg-stat-box .sl { font-size:11px; color:var(--ink-3); margin-top:2px; }
@media(max-width:700px){
  .seg-stat-row { grid-template-columns:1fr 1fr; }
  .seg-grid { grid-template-columns:1fr; }
}
