:root {
  --zp-primary: #6f3df4;
  --zp-primary-strong: #4f1fd1;
  --zp-secondary: #00a6a6;
  --zp-accent: #8b5cf6;
  --zp-bg: #f4f6fb;
  --zp-surface: #ffffff;
  --zp-surface-soft: #f7f5ff;
  --zp-text: #1f2937;
  --zp-muted: #6b7280;
  --zp-border: #e6e8f0;
  --zp-danger: #dc3545;
  --zp-warning: #f59e0b;
  --zp-success: #16a34a;
  --zp-shadow: 0 16px 44px rgba(29, 28, 58, .12);
  --zp-radius: 18px;
  --zp-radius-sm: 12px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body.zp-body, body.zp-login-body {
  margin: 0;
  min-height: 100vh;
  color: var(--zp-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--zp-bg);
}
body.zp-body { padding-bottom: 0; }
a { text-decoration: none; }

/* Shared brand */
.zp-brand { display: inline-flex; align-items: center; gap: .72rem; min-width: 0; color: inherit; }
.zp-brand img { width: 38px; height: 38px; object-fit: contain; flex: 0 0 auto; }
.zp-brand-copy { line-height: 1.05; min-width: 0; }
.zp-brand-name { display: block; font-weight: 800; letter-spacing: .02em; font-size: 1.05rem; color: #fff; }
.zp-brand-name span { color: #d7c8ff; }
.zp-brand-subtitle { display: block; margin-top: .18rem; color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 600; }

/* Login */
.zp-login-body {
  background:
    radial-gradient(circle at 5% 8%, rgba(140, 92, 246, .43), transparent 32%),
    radial-gradient(circle at 96% 90%, rgba(0, 166, 166, .28), transparent 34%),
    linear-gradient(135deg, #0d1020 0%, #171443 48%, #331571 100%);
  display: grid;
  place-items: center;
  padding: 1.25rem;
  position: relative;
  overflow-x: hidden;
}
.zp-login-body::before, .zp-login-body::after {
  content: "";
  position: fixed;
  pointer-events: none;
  border-radius: 999px;
  filter: blur(2px);
}
.zp-login-body::before { width: 420px; height: 420px; right: -160px; top: -170px; background: rgba(141, 89, 255, .24); }
.zp-login-body::after { width: 360px; height: 360px; left: -180px; bottom: -150px; background: rgba(0, 166, 166, .18); }
.zp-login-shell { width: min(1040px, 100%); min-height: 600px; display: grid; grid-template-columns: 1.12fr .88fr; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: 28px; overflow: hidden; box-shadow: 0 28px 90px rgba(0,0,0,.35); backdrop-filter: blur(12px); position: relative; z-index: 1; }
.zp-login-hero { padding: clamp(2rem, 5vw, 4.8rem); color: #fff; background: linear-gradient(145deg, rgba(12, 16, 37, .9), rgba(76, 38, 159, .66)); position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; }
.zp-login-hero::after { content:""; position:absolute; width: 370px; height:370px; border: 44px solid rgba(255,255,255,.06); border-radius: 50%; right:-130px; bottom:-125px; }
.zp-login-hero .zp-brand img { width: 56px; height: 56px; }
.zp-login-hero .zp-brand-name { font-size: 1.45rem; }
.zp-login-kicker { margin: 4rem 0 .9rem; display: inline-flex; align-items:center; gap:.45rem; font-size:.78rem; letter-spacing:.11em; text-transform: uppercase; color:#ddd5ff; font-weight: 700; }
.zp-login-hero h1 { font-size: clamp(2rem, 4vw, 3.65rem); line-height:1.05; margin: 0; max-width: 620px; font-weight: 800; }
.zp-login-hero h1 span { color: #c5b2ff; }
.zp-login-hero p { margin: 1.1rem 0 0; max-width: 510px; font-size: 1.02rem; color: rgba(255,255,255,.76); line-height:1.65; }
.zp-login-highlights { margin-top: 2rem; display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:.75rem; }
.zp-login-highlights div { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.07); border-radius:14px; padding:.8rem; font-size:.78rem; color:rgba(255,255,255,.87); }
.zp-login-highlights i { display:block; color:#c5b2ff; font-size:1.2rem; margin-bottom:.35rem; }
.zp-login-form-wrap { display: grid; place-items: center; background: #fff; padding: clamp(1.4rem, 4vw, 3.2rem); }
.zp-login-card { width:min(100%, 380px); }
.zp-login-card h2 { font-size:1.65rem; font-weight:800; margin:0; color:#22213a; }
.zp-login-card p { color:var(--zp-muted); margin:.45rem 0 1.8rem; font-size:.94rem; }
.zp-login-label { font-size:.8rem; color:#626176; font-weight:800; margin-bottom:.45rem; display:block; }
.zp-login-card .input-group { border:1px solid var(--zp-border); border-radius:12px; overflow:hidden; background:#fff; transition:.18s ease; }
.zp-login-card .input-group:focus-within { border-color:var(--zp-primary); box-shadow:0 0 0 .22rem rgba(111,61,244,.12); }
.zp-login-card .input-group-text { border:0; background:#faf9ff; color:var(--zp-primary); min-width:44px; justify-content:center; }
.zp-login-card .form-control { border:0; min-height:48px; box-shadow:none !important; font-size:.95rem; }
.zp-login-card .eye-icon { cursor:pointer; }
.zp-login-card .form-check-label { color:#616172; font-size:.86rem; }
.zp-login-footer { margin-top:1.6rem; text-align:center; font-size:.78rem; color:#858398; }

/* Header and desktop shell */
.zp-topbar { height: 72px; background: linear-gradient(92deg, #17113a, #3c207a 58%, #5c2bb9); display:flex; align-items:center; padding:0 1.1rem; box-shadow:0 7px 30px rgba(21, 15, 62, .22); position:sticky; top:0; z-index:1040; }
.zp-topbar-inner { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.zp-topbar-actions { display:flex; align-items:center; gap:.5rem; }
.zp-icon-btn { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.2); color:#fff; background:rgba(255,255,255,.08); transition:.16s ease; }
.zp-icon-btn:hover { color:#fff; background:rgba(255,255,255,.18); transform:translateY(-1px); }
.zp-user-pill { display:flex; align-items:center; gap:.52rem; color:#fff; padding:.42rem .65rem; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.14); border-radius:10px; font-size:.82rem; font-weight:700; max-width:220px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.zp-menu-toggle { display:none; }
.zp-admin-shell { min-height: calc(100vh - 72px); display:grid; grid-template-columns: 270px minmax(0,1fr); }
.zp-sidebar { background:#17152c; color:#c9c6da; padding:1.1rem .85rem 1.25rem; position:sticky; top:72px; height:calc(100vh - 72px); overflow-y:auto; border-right:1px solid rgba(255,255,255,.05); }
.zp-sidebar-label { color:#8f8ba8; font-size:.66rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; padding:.85rem .8rem .4rem; }
.zp-sidebar-nav { display:grid; gap:.25rem; }
.zp-sidebar-link { color:#cac7d9; padding:.7rem .78rem; display:flex; align-items:center; gap:.75rem; border-radius:10px; font-size:.91rem; font-weight:650; transition:.16s ease; }
.zp-sidebar-link i { width:1.25rem; text-align:center; font-size:1rem; color:#a6a1c1; }
.zp-sidebar-link:hover { color:#fff; background:rgba(255,255,255,.07); }
.zp-sidebar-link.active { color:#fff; background:linear-gradient(100deg, #6231d2, #7d4df0); box-shadow:0 9px 22px rgba(98,49,210,.28); }
.zp-sidebar-link.active i { color:#fff; }
.zp-admin-main { min-width:0; padding:1.55rem; }
.zp-page-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding: .2rem 0 1.45rem; }
.zp-page-top h1 { margin:0; color:#25213e; font-weight:800; font-size:clamp(1.35rem, 2.3vw, 2rem); }
.zp-page-top p { margin:.35rem 0 0; color:var(--zp-muted); font-size:.92rem; }
.zp-crumb { color:var(--zp-primary); background:#eee9ff; padding:.45rem .65rem; border-radius:9px; font-size:.74rem; font-weight:800; white-space:nowrap; }
.zp-admin-footer { padding:1.15rem 1.55rem 1.5rem  calc(270px + 1.55rem); color:#8a8799; font-size:.78rem; }

/* General cards, buttons and tables */
.zp-card { background:var(--zp-surface); border:1px solid var(--zp-border); border-radius:var(--zp-radius); box-shadow: var(--zp-shadow); }
.zp-card-body { padding:1.25rem; }
.zp-card-title { margin:0; font-size:1.05rem; font-weight:800; color:#28243f; }
.zp-card-subtitle { color:var(--zp-muted); margin:.25rem 0 0; font-size:.86rem; }
.zp-section-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1rem; }
.zp-action-card { padding:1.1rem; background:linear-gradient(145deg,#fff,#fbfaff); border:1px solid var(--zp-border); border-radius:var(--zp-radius); box-shadow:0 10px 26px rgba(24, 21, 55,.08); display:flex; flex-direction:column; min-height: 205px; transition:.18s ease; }
.zp-action-card:hover { transform:translateY(-4px); border-color:#d7c8ff; box-shadow:0 18px 34px rgba(47, 25, 109,.14); }
.zp-action-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:#eee9ff; color:var(--zp-primary); font-size:1.35rem; }
.zp-action-card h3 { margin:1.05rem 0 .35rem; font-size:1.02rem; color:#28243f; font-weight:800; }
.zp-action-card p { margin:0; color:var(--zp-muted); font-size:.84rem; line-height:1.45; flex:1; }
.zp-btn { border-radius:10px; border:0; padding:.6rem .85rem; font-weight:800; font-size:.87rem; display:inline-flex; align-items:center; justify-content:center; gap:.42rem; }
.zp-btn-primary { background:linear-gradient(100deg, var(--zp-primary-strong), var(--zp-primary)); color:#fff; }
.zp-btn-primary:hover { color:#fff; filter:brightness(1.06); }
.zp-btn-secondary { background:#ece9f7; color:#46405f; }
.zp-btn-secondary:hover { background:#e1ddee; color:#332d4f; }
.zp-btn-danger { background:#fee7ea; color:#ae2434; }
.zp-btn-danger:hover { background:#fdd7dd; color:#8e1524; }
.zp-btn-success { background:#e7f8ed; color:#16793c; }
.zp-btn-success:hover { background:#d5f3df; color:#0e6830; }
.zp-btn-warning { background:#fff3d7; color:#9c6300; }
.zp-btn-warning:hover { background:#feeabd; color:#7c5000; }
.zp-form-label { font-size:.8rem; font-weight:800; color:#5d596f; margin-bottom:.42rem; }
.zp-card .form-control, .zp-card .form-select { border-radius:10px; border-color:#e1e0ea; min-height:42px; box-shadow:none; font-size:.9rem; }
.zp-card .form-control:focus, .zp-card .form-select:focus { border-color:var(--zp-primary); box-shadow:0 0 0 .2rem rgba(111,61,244,.12); }
.zp-table-wrap { padding: .4rem; overflow:auto; }
.zp-table { margin:0; min-width:760px; }
.zp-table thead th { border-bottom:0; background:#292244; color:#fff; padding:.78rem .7rem; font-size:.76rem; text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.zp-table thead th:first-child { border-radius:10px 0 0 10px; }
.zp-table thead th:last-child { border-radius:0 10px 10px 0; }
.zp-table tbody td { border-color:#efedf5; padding:.76rem .7rem; font-size:.87rem; vertical-align:middle; color:#3c394e; }
.zp-table tbody tr:hover { background:#faf9fd; }
.zp-badge { display:inline-flex; align-items:center; border-radius:999px; padding:.28rem .56rem; font-size:.72rem; font-weight:800; }
.zp-badge-success { background:#e4f7e9; color:#157b3d; }
.zp-badge-warning { background:#fff3d7; color:#975c00; }
.zp-badge-danger { background:#fde7eb; color:#b12235; }
.zp-badge-muted { background:#efedf4; color:#5e596b; }
.zp-alert { border:0; border-radius:12px; font-weight:700; font-size:.88rem; }
.zp-empty { padding:2.4rem 1rem; text-align:center; color:var(--zp-muted); }
.zp-empty i { display:block; font-size:2rem; color:#bbb5ca; margin-bottom:.65rem; }

/* Employee */
.zp-employee-wrap { width:min(1120px, calc(100% - 2rem)); margin:0 auto; padding:1.55rem 0 2.2rem; }
.zp-employee-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.zp-employee-name { display:flex; align-items:center; gap:.8rem; }
.zp-employee-avatar { width:46px; height:46px; border-radius:14px; display:grid; place-items:center; color:#fff; background:linear-gradient(130deg, #5633b9, #8d5bff); font-size:1.32rem; }
.zp-employee-name h1 { margin:0; color:#28243f; font-weight:800; font-size:1.23rem; }
.zp-employee-name p { margin:.22rem 0 0; color:var(--zp-muted); font-size:.82rem; }
.zp-employee-hero { background:linear-gradient(119deg,#21144f,#5230b2 58%,#7e58e7); color:#fff; border-radius:var(--zp-radius); padding:1.5rem; box-shadow:0 20px 44px rgba(53,24,119,.25); position:relative; overflow:hidden; }
.zp-employee-hero::after { content:""; position:absolute; width:260px; height:260px; border:32px solid rgba(255,255,255,.08); border-radius:50%; right:-100px; top:-130px; }
.zp-employee-hero h2 { margin:0; font-weight:800; font-size:1.42rem; }
.zp-employee-hero p { margin:.4rem 0 0; color:rgba(255,255,255,.76); font-size:.9rem; }
.zp-punch-grid { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:.95rem; margin-top:1.2rem; }
.zp-punch-btn { border:0; border-radius:16px; color:#fff; padding:1.05rem .8rem; min-height:118px; font-weight:800; box-shadow:0 10px 24px rgba(36,30,75,.13); transition:.16s ease; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.6rem; }
.zp-punch-btn i { font-size:1.62rem; }
.zp-punch-btn:hover:not(:disabled) { transform:translateY(-3px); filter:brightness(1.04); }
.zp-punch-btn:disabled { opacity:.44; cursor:not-allowed; }
.zp-punch-entry { background:linear-gradient(145deg,#159f64,#35c985); }
.zp-punch-lunch { background:linear-gradient(145deg,#e28b07,#f4bd37); }
.zp-punch-exit { background:linear-gradient(145deg,#c93450,#eb5e78); }
.zp-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.95rem; margin-top:1.2rem; }
.zp-stat-card { background:#fff; border:1px solid var(--zp-border); border-radius:15px; padding:1rem; box-shadow:0 9px 24px rgba(24,21,55,.07); }
.zp-stat-card p { margin:0; color:var(--zp-muted); font-size:.78rem; font-weight:750; }
.zp-stat-card strong { display:block; margin-top:.32rem; color:#2d2747; font-size:1.35rem; }
.zp-stat-card i { color:var(--zp-primary); margin-right:.28rem; }
.zp-history-list .list-group-item { border-color:#efedf5; padding:.72rem .75rem; font-size:.88rem; }
.zp-history-list .list-group-item:first-child { border-radius:10px 10px 0 0; }
.zp-history-list .list-group-item:last-child { border-radius:0 0 10px 10px; }
.zp-employee-nav { display:flex; gap:.5rem; flex-wrap:wrap; }
.zp-employee-nav .zp-btn { min-height:38px; }

/* Dark mode */
body.zp-theme-dark { --zp-bg:#111124; --zp-surface:#1c1b31; --zp-surface-soft:#24213c; --zp-text:#f5f4fb; --zp-muted:#b7b4c7; --zp-border:#34314e; --zp-shadow:0 15px 42px rgba(0,0,0,.25); }
body.zp-theme-dark .zp-admin-main, body.zp-theme-dark .zp-employee-wrap { color:var(--zp-text); }
body.zp-theme-dark .zp-page-top h1, body.zp-theme-dark .zp-card-title, body.zp-theme-dark .zp-action-card h3, body.zp-theme-dark .zp-employee-name h1, body.zp-theme-dark .zp-stat-card strong { color:#f7f5ff; }
body.zp-theme-dark .zp-card, body.zp-theme-dark .zp-stat-card { background:var(--zp-surface); border-color:var(--zp-border); }
body.zp-theme-dark .zp-action-card { background:linear-gradient(145deg,#211f39,#1b1a30); border-color:#34304f; }
body.zp-theme-dark .zp-table tbody td { color:#e4e2ef; border-color:#383551; }
body.zp-theme-dark .zp-table tbody tr:hover { background:#24213b; }
body.zp-theme-dark .zp-card .form-control, body.zp-theme-dark .zp-card .form-select { background:#25223d; color:#f4f2fb; border-color:#45405c; }
body.zp-theme-dark .zp-card .form-control::placeholder { color:#aaa5bf; }
body.zp-theme-dark .zp-crumb { background:#292147; color:#cfbfff; }
body.zp-theme-dark .zp-sidebar { background:#121123; }
body.zp-theme-dark .zp-history-list .list-group-item { background:#1c1b31; color:#e4e2ef; border-color:#34314e; }
body.zp-theme-dark .zp-login-form-wrap { background:#fff; }

@media (max-width: 1199px) { .zp-section-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .zp-punch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 991px) {
  .zp-menu-toggle { display:grid; }
  .zp-user-pill { display:none; }
  .zp-admin-shell { display:block; }
  .zp-sidebar { position:fixed; z-index:1035; top:72px; left:0; width:270px; height:calc(100vh - 72px); transform:translateX(-103%); transition:.2s ease; box-shadow:18px 0 45px rgba(0,0,0,.25); }
  .zp-sidebar.open { transform:translateX(0); }
  .zp-admin-main { padding:1.25rem; }
  .zp-admin-footer { padding:1rem 1.25rem 1.35rem; }
  .zp-login-shell { grid-template-columns:1fr; max-width:520px; }
  .zp-login-hero { display:none; }
}
@media (max-width: 760px) { .zp-section-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .zp-stat-grid { grid-template-columns:1fr; } .zp-page-top { flex-direction:column; } .zp-employee-top { align-items:flex-start; flex-direction:column; } }
@media (max-width: 540px) { .zp-topbar { padding:0 .75rem; } .zp-brand img { width:34px; height:34px; } .zp-brand-name { font-size:.98rem; } .zp-brand-subtitle { display:none; } .zp-admin-main { padding:1rem .8rem; } .zp-admin-footer { padding:1rem .8rem 1.25rem; } .zp-section-grid { grid-template-columns:1fr; } .zp-action-card { min-height:0; } .zp-login-body { padding:.75rem; } .zp-login-shell { border-radius:20px; min-height:auto; } .zp-login-form-wrap { padding:2rem 1.2rem; } .zp-employee-wrap { width:min(100% - 1rem, 1120px); padding-top:1rem; } .zp-employee-hero { padding:1.2rem; } .zp-punch-grid { grid-template-columns:1fr 1fr; gap:.65rem; } .zp-punch-btn { min-height:105px; padding:.8rem .5rem; font-size:.87rem; } .zp-punch-btn i { font-size:1.35rem; } .zp-employee-nav { width:100%; } .zp-employee-nav .zp-btn { flex:1; } }

/* Filtros, totais e registro manual */
.zp-filter-card { background:linear-gradient(145deg,#ffffff,#faf9ff); }
.zp-filter-card .zp-card-body { padding:1.05rem 1.25rem; }
.zp-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.95rem; }
.zp-summary-card { background:var(--zp-surface); border:1px solid var(--zp-border); border-radius:15px; padding:1rem 1.05rem; box-shadow:0 9px 24px rgba(24,21,55,.07); }
.zp-summary-card span { display:block; color:var(--zp-muted); font-size:.78rem; font-weight:800; }
.zp-summary-card span i { color:var(--zp-primary); margin-right:.35rem; }
.zp-summary-card strong { display:block; color:#2d2747; font-size:1.42rem; line-height:1.15; margin:.34rem 0 .24rem; }
.zp-summary-card small { display:block; color:var(--zp-muted); font-size:.73rem; }
.zp-rule-card { display:flex; align-items:flex-start; gap:.8rem; padding:1rem 1.1rem; background:linear-gradient(115deg,#ede8ff,#f8f6ff); border:1px solid #d9ccff; border-radius:15px; color:#383052; }
.zp-rule-card .zp-rule-icon { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:10px; background:#6f3df4; color:#fff; }
.zp-rule-card strong { display:block; font-size:.88rem; margin-bottom:.15rem; }
.zp-rule-card span { display:block; font-size:.81rem; line-height:1.45; color:#5c5672; }
.zp-table tfoot td { background:#f6f3ff; border-color:#e8e1fb; color:#383052; font-size:.86rem; }

/* Ajustes completos de modo escuro para campos, filtros e resultados */
body.zp-theme-dark .zp-filter-card { background:linear-gradient(145deg,#211f3a,#19182d); border-color:#393552; }
body.zp-theme-dark .zp-form-label { color:#e0ddec; }
body.zp-theme-dark .zp-card .form-control,
body.zp-theme-dark .zp-card .form-select,
body.zp-theme-dark .zp-filter-card .form-control,
body.zp-theme-dark .zp-filter-card .form-select { background-color:#27243f !important; color:#f8f7fc !important; border-color:#514b6d !important; color-scheme:dark; }
body.zp-theme-dark .zp-card .form-control:focus,
body.zp-theme-dark .zp-card .form-select:focus { border-color:#9c78ff !important; box-shadow:0 0 0 .2rem rgba(156,120,255,.18) !important; }
body.zp-theme-dark .zp-card .form-control::placeholder { color:#bbb6cb !important; }
body.zp-theme-dark .zp-card .form-select option { color:#f8f7fc; background:#27243f; }
body.zp-theme-dark .zp-card input[type="date"]::-webkit-calendar-picker-indicator,
body.zp-theme-dark .zp-card input[type="time"]::-webkit-calendar-picker-indicator { filter:invert(1); opacity:.9; }
body.zp-theme-dark .zp-table { --bs-table-bg:transparent; --bs-table-color:#eceaf5; --bs-table-border-color:#393552; --bs-table-hover-bg:#27243f; --bs-table-hover-color:#ffffff; }
body.zp-theme-dark .zp-table tbody tr,
body.zp-theme-dark .zp-table tbody td { background:#1c1b31 !important; color:#eceaf5 !important; border-color:#393552 !important; }
body.zp-theme-dark .zp-table tbody tr:hover td { background:#282541 !important; }
body.zp-theme-dark .zp-table tfoot td { background:#292640 !important; color:#f7f5ff !important; border-color:#45405f !important; }
body.zp-theme-dark .zp-btn-secondary { background:#2c2947; color:#f2effa; }
body.zp-theme-dark .zp-btn-secondary:hover { background:#383456; color:#fff; }
body.zp-theme-dark .zp-summary-card { background:#1c1b31; border-color:#34314e; }
body.zp-theme-dark .zp-summary-card strong { color:#f7f5ff; }
body.zp-theme-dark .zp-rule-card { background:linear-gradient(115deg,#272044,#1e1c35); border-color:#4c3e78; color:#f0edfb; }
body.zp-theme-dark .zp-rule-card span { color:#c9c4dd; }
body.zp-theme-dark .text-secondary { color:#bdb8ce !important; }

@media (max-width: 760px) { .zp-summary-grid { grid-template-columns:1fr; } }


/* Central de ajuda — área do funcionário */
.zp-help-modal .modal-content { border:0; border-radius:18px; overflow:hidden; background:var(--zp-surface); color:var(--zp-text); box-shadow:0 28px 70px rgba(20,14,50,.34); }
.zp-help-modal .modal-header { border:0; padding:1.2rem 1.25rem; color:#fff; background:linear-gradient(100deg,#24124f,#5d31bb); }
.zp-help-modal .modal-title { margin:.22rem 0 0; font-size:1.18rem; font-weight:800; }
.zp-help-modal .btn-close { filter:invert(1); opacity:.92; }
.zp-help-modal .modal-body { padding:1.25rem; }
.zp-help-modal .modal-footer { border-top:1px solid var(--zp-border); padding:1rem 1.25rem; }
.zp-help-kicker { display:inline-flex; align-items:center; gap:.35rem; color:rgba(255,255,255,.78); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.zp-help-intro { display:flex; align-items:flex-start; gap:.85rem; padding:1rem; background:linear-gradient(120deg,#f0ebff,#f8f6ff); border:1px solid #ded3ff; border-radius:14px; }
.zp-help-intro-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:12px; color:#fff; background:linear-gradient(135deg,#6336ca,#8758ef); font-size:1.14rem; }
.zp-help-intro strong { display:block; color:#33245e; font-size:.92rem; }
.zp-help-intro p { margin:.2rem 0 0; color:#5d5972; font-size:.84rem; line-height:1.45; }
.zp-help-section-title { margin:1.15rem 0 .7rem; color:#30274b; font-size:.91rem; font-weight:850; }
.zp-help-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.zp-help-card { display:flex; align-items:flex-start; gap:.68rem; padding:.85rem; min-height:118px; border:1px solid var(--zp-border); border-radius:13px; background:var(--zp-surface-soft); }
.zp-help-card-icon { width:34px; height:34px; flex:0 0 34px; display:grid; place-items:center; border-radius:10px; color:var(--zp-primary); background:#eae3ff; }
.zp-help-card strong { display:block; color:#362d52; font-size:.84rem; }
.zp-help-card p { margin:.2rem 0 0; color:var(--zp-muted); font-size:.77rem; line-height:1.42; }
.zp-help-rules { display:grid; gap:.6rem; }
.zp-help-rules > div { display:flex; gap:.6rem; align-items:flex-start; padding:.78rem .85rem; border-radius:12px; border:1px solid #f0dcaa; background:#fff8e7; color:#76510a; font-size:.8rem; line-height:1.45; }
.zp-help-rules i { margin-top:.08rem; color:#bf7c00; font-size:1rem; }
.zp-help-admin-note { margin:0; padding:.85rem; border-radius:12px; background:#eff9f5; border:1px solid #caead8; color:#376450; font-size:.81rem; line-height:1.5; }
body.zp-theme-dark .zp-help-modal .modal-content { background:#1c1b31; color:#f4f2fb; }
body.zp-theme-dark .zp-help-modal .modal-footer { border-color:#34314e; }
body.zp-theme-dark .zp-help-intro { background:linear-gradient(120deg,#292047,#211f39); border-color:#4b3d75; }
body.zp-theme-dark .zp-help-intro strong, body.zp-theme-dark .zp-help-section-title, body.zp-theme-dark .zp-help-card strong { color:#f4f1ff; }
body.zp-theme-dark .zp-help-intro p { color:#cbc6df; }
body.zp-theme-dark .zp-help-card { background:#24213c; border-color:#3a3655; }
body.zp-theme-dark .zp-help-card-icon { background:#382766; color:#d6c7ff; }
body.zp-theme-dark .zp-help-card p { color:#c0bbd0; }
body.zp-theme-dark .zp-help-rules > div { border-color:#65502a; background:#352d1b; color:#f2dc9e; }
body.zp-theme-dark .zp-help-rules i { color:#f5b420; }
body.zp-theme-dark .zp-help-admin-note { background:#163427; border-color:#2d694c; color:#c9edd8; }
@media (max-width: 640px) { .zp-help-grid { grid-template-columns:1fr; } .zp-help-modal .modal-body { padding:1rem; } .zp-help-modal .modal-header { padding:1rem; } }
