/*
Theme Name: JP Produções - Central de Operações
Theme URI: https://juniorproducoes.com.br/
Author: Lufe Comunicação
Description: Tema institucional e operacional da JP Produções, com identidade visual própria e foco em uma central integrada de eventos, montagens, demandas, comunicação e frota.
Version: 0.4.9
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
Text Domain: jp-producoes
*/

:root {
  --jp-bg: #0b0c10;
  --jp-bg-soft: #11131a;
  --jp-card: #171922;
  --jp-card-2: #1d202a;
  --jp-line: rgba(255,255,255,.08);
  --jp-text: #f7f7f9;
  --jp-muted: #9da3b2;
  --jp-orange: #ffa20a;
  --jp-orange-2: #ff7f11;
  --jp-purple: #7f139c;
  --jp-magenta: #c318a8;
  --jp-green: #22c55e;
  --jp-yellow: #f5c542;
  --jp-red: #ef4444;
  --jp-blue: #4f8cff;
  --jp-radius: 18px;
  --jp-shadow: 0 18px 55px rgba(0,0,0,.30);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--jp-bg);
  color: var(--jp-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; height: auto; }

.jp-shell { min-height: 100vh; display: grid; grid-template-columns: 268px minmax(0,1fr); }
.jp-sidebar {
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
  border-right: 1px solid var(--jp-line);
  background: linear-gradient(180deg, #0f1016 0%, #0b0c10 100%);
  padding: 24px 18px 18px;
  z-index: 20;
}
.jp-brand {
  display: flex; align-items: center; min-height: 86px; padding: 2px 10px 20px;
  border-bottom: 1px solid var(--jp-line); margin-bottom: 18px;
}
.jp-brand img { width: 205px; max-height: 94px; object-fit: contain; object-position: left center; }
.jp-nav-title { color: #6f7582; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; padding: 16px 12px 8px; }
.jp-nav { display: grid; gap: 5px; }
.jp-nav a {
  display: flex; align-items: center; gap: 12px; padding: 12px 12px; border-radius: 13px;
  color: #c9cdd7; font-size: 14px; font-weight: 650; position: relative; transition: .18s ease;
}
.jp-nav a:hover { background: rgba(255,255,255,.045); color: white; transform: translateX(2px); }
.jp-nav a.is-active {
  color: white;
  background: linear-gradient(90deg, rgba(255,162,10,.17), rgba(127,19,156,.18));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}
.jp-nav a.is-active::before {
  content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 3px; border-radius: 99px;
  background: linear-gradient(180deg,var(--jp-orange),var(--jp-magenta));
}
.jp-icon { width: 20px; height: 20px; flex: 0 0 20px; opacity: .95; }
.jp-sidebar-footer { margin-top: 22px; padding: 16px 12px; border-top: 1px solid var(--jp-line); color: #737987; font-size: 11px; line-height: 1.5; }

.jp-main { min-width: 0; }
.jp-accent-line { height: 4px; background: linear-gradient(90deg,var(--jp-orange) 0%, var(--jp-orange-2) 28%, var(--jp-purple) 66%, var(--jp-magenta) 100%); }
.jp-topbar {
  position: sticky; top: 0; z-index: 15; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  height: 78px; padding: 0 30px; background: rgba(11,12,16,.90); backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--jp-line);
}
.jp-top-left { display: flex; align-items: center; gap: 14px; min-width: 0; }
.jp-mobile-toggle { display: none; border: 0; color: white; background: #171922; width: 42px; height: 42px; border-radius: 12px; cursor: pointer; }
.jp-title-wrap h1 { font-size: 18px; margin: 0; letter-spacing: -.02em; }
.jp-title-wrap p { margin: 3px 0 0; color: var(--jp-muted); font-size: 12px; }
.jp-top-actions { display: flex; align-items: center; gap: 10px; }
.jp-top-button {
  height: 42px; min-width: 42px; padding: 0 13px; border: 1px solid var(--jp-line); border-radius: 12px; background: #151720;
  color: #dfe2e9; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; font-size: 13px;
}
.jp-avatar { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-weight: 900; background: linear-gradient(135deg,var(--jp-orange),var(--jp-purple)); color: white; }

.jp-content { padding: 30px; max-width: 1560px; margin: 0 auto; }
.jp-hero {
  position: relative; overflow: hidden; border: 1px solid var(--jp-line); border-radius: 24px;
  background:
    radial-gradient(circle at 84% 20%, rgba(195,24,168,.20), transparent 32%),
    radial-gradient(circle at 18% 0%, rgba(255,162,10,.17), transparent 34%),
    linear-gradient(145deg, #171922 0%, #11131a 100%);
  padding: 30px; box-shadow: var(--jp-shadow);
}
.jp-hero::after {
  content: ""; position: absolute; inset: auto -120px -130px auto; width: 330px; height: 330px; border: 1px solid rgba(255,255,255,.05); border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(255,255,255,.018), 0 0 0 84px rgba(255,255,255,.012);
}
.jp-hero-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr); gap: 28px; align-items: center; position: relative; z-index: 1; }
.jp-kicker { display: inline-flex; align-items: center; gap: 8px; color: #ffd18b; font-size: 12px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.jp-kicker-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--jp-orange); box-shadow: 0 0 16px rgba(255,162,10,.7); }
.jp-hero h2 { margin: 12px 0 10px; font-size: clamp(28px,4vw,48px); line-height: 1.04; letter-spacing: -.045em; max-width: 820px; }
.jp-hero h2 span { background: linear-gradient(90deg,#ffb02d 0%,#ff9a14 34%,#c951c5 78%,#dc43c7 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jp-hero p { color: #b2b7c3; max-width: 760px; line-height: 1.65; font-size: 15px; }
.jp-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.jp-primary, .jp-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 0 16px; border-radius: 12px; font-weight: 800; font-size: 13px;
}
.jp-primary { color: #111; background: linear-gradient(90deg,#ffae21,#ff8c13); box-shadow: 0 8px 24px rgba(255,140,19,.18); }
.jp-secondary { border: 1px solid var(--jp-line); background: rgba(255,255,255,.03); color: white; }
.jp-hero-side { display: grid; gap: 12px; }
.jp-live-card { border: 1px solid rgba(255,255,255,.08); border-radius: 18px; padding: 18px; background: rgba(10,11,15,.58); backdrop-filter: blur(8px); }
.jp-live-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.jp-live-title { font-weight: 850; font-size: 14px; }
.jp-live-badge { color: #ffb6b6; background: rgba(239,68,68,.10); border: 1px solid rgba(239,68,68,.18); border-radius: 999px; padding: 5px 8px; font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.jp-live-value { font-size: 34px; font-weight: 900; letter-spacing: -.04em; margin: 12px 0 3px; }
.jp-live-sub { color: var(--jp-muted); font-size: 12px; }
.jp-progress { height: 7px; background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden; margin-top: 14px; }
.jp-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--jp-orange),var(--jp-purple),var(--jp-magenta)); }

.jp-section { margin-top: 28px; }
.jp-section-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.jp-section-head h3 { margin: 0; font-size: 17px; letter-spacing: -.02em; }
.jp-section-head p { margin: 4px 0 0; color: var(--jp-muted); font-size: 12px; }
.jp-text-link { color: #d8dbe3; font-size: 12px; font-weight: 750; }

.jp-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; }
.jp-metric { min-width: 0; background: var(--jp-card); border: 1px solid var(--jp-line); border-radius: 16px; padding: 17px; transition: .18s ease; }
.jp-metric:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.13); }
.jp-metric-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.jp-metric-label { color: var(--jp-muted); font-size: 11px; font-weight: 780; text-transform: uppercase; letter-spacing: .05em; }
.jp-metric-icon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.04); }
.jp-metric-value { margin-top: 10px; font-size: 29px; line-height: 1; font-weight: 900; letter-spacing: -.04em; }
.jp-metric-foot { margin-top: 8px; color: #858b98; font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.jp-grid-main { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 18px; }
.jp-panel { background: var(--jp-card); border: 1px solid var(--jp-line); border-radius: var(--jp-radius); overflow: hidden; }
.jp-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--jp-line); }
.jp-panel-head h4 { margin: 0; font-size: 14px; }
.jp-panel-head small { color: var(--jp-muted); }
.jp-operations { display: grid; }
.jp-operation { display: grid; grid-template-columns: minmax(0,1fr) 120px 110px; gap: 14px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--jp-line); }
.jp-operation:last-child { border-bottom: 0; }
.jp-operation-title { font-weight: 850; font-size: 14px; }
.jp-operation-meta { color: var(--jp-muted); font-size: 11px; margin-top: 5px; display: flex; flex-wrap: wrap; gap: 8px; }
.jp-status { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 999px; font-size: 10px; font-weight: 900; width: fit-content; }
.jp-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.jp-status.green { color: #77e69a; background: rgba(34,197,94,.09); }
.jp-status.blue { color: #86aaff; background: rgba(79,140,255,.10); }
.jp-status.yellow { color: #f8d56b; background: rgba(245,197,66,.10); }
.jp-status.red { color: #ff8c8c; background: rgba(239,68,68,.10); }
.jp-operation-progress { color: #d9dce4; font-size: 11px; }
.jp-operation-progress strong { display: block; font-size: 13px; margin-bottom: 7px; }
.jp-mini-progress { height: 5px; border-radius: 999px; background: rgba(255,255,255,.06); overflow: hidden; }
.jp-mini-progress span { display: block; height: 100%; background: linear-gradient(90deg,var(--jp-orange),var(--jp-purple)); border-radius: inherit; }

.jp-feed { padding: 8px 0; }
.jp-feed-item { display: grid; grid-template-columns: 54px 11px minmax(0,1fr); gap: 10px; padding: 10px 18px; align-items: start; }
.jp-feed-time { color: #737987; font-size: 10px; font-weight: 800; padding-top: 2px; }
.jp-feed-dot { width: 9px; height: 9px; border-radius: 50%; background: #5b6270; margin-top: 2px; box-shadow: 0 0 0 4px rgba(255,255,255,.02); }
.jp-feed-dot.orange { background: var(--jp-orange); }
.jp-feed-dot.red { background: var(--jp-red); }
.jp-feed-dot.green { background: var(--jp-green); }
.jp-feed-text { font-size: 12px; line-height: 1.5; color: #d5d8df; }
.jp-feed-text b { color: white; }

.jp-quick-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.jp-quick {
  padding: 17px; border-radius: 16px; border: 1px solid var(--jp-line); background: linear-gradient(145deg,var(--jp-card),#14161e); min-height: 118px;
  display: flex; flex-direction: column; justify-content: space-between; transition: .18s ease;
}
.jp-quick:hover { transform: translateY(-2px); border-color: rgba(255,162,10,.25); }
.jp-quick-icon { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: linear-gradient(135deg,rgba(255,162,10,.14),rgba(127,19,156,.16)); }
.jp-quick strong { display: block; font-size: 13px; margin-top: 14px; }
.jp-quick span { color: var(--jp-muted); font-size: 11px; margin-top: 4px; display: block; }

.jp-bottom-brand { margin-top: 34px; border-top: 1px solid var(--jp-line); padding: 20px 0 8px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #646a77; font-size: 11px; }
.jp-bottom-brand img { width: 260px; opacity: .34; }

.jp-page-simple { max-width: 1100px; margin: 0 auto; padding: 44px 28px; }
.jp-page-simple article { background: var(--jp-card); border: 1px solid var(--jp-line); border-radius: var(--jp-radius); padding: 28px; }
.jp-page-simple h1 { margin-top: 0; }

@media (max-width: 1180px) {
  .jp-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .jp-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jp-grid-main { grid-template-columns: 1fr; }
}

@media (max-width: 880px) {
  .jp-shell { display: block; }
  .jp-sidebar { position: fixed; inset: 0 auto 0 0; width: min(86vw,300px); transform: translateX(-102%); transition: transform .22s ease; box-shadow: 28px 0 70px rgba(0,0,0,.55); }
  body.jp-menu-open .jp-sidebar { transform: translateX(0); }
  body.jp-menu-open::after { content: ""; position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 18; }
  .jp-sidebar { z-index: 25; }
  .jp-mobile-toggle { display: inline-grid; place-items: center; }
  .jp-topbar { padding: 0 18px; }
  .jp-content { padding: 20px 16px 30px; }
  .jp-hero { padding: 22px; border-radius: 19px; }
  .jp-hero-grid { grid-template-columns: 1fr; }
  .jp-hero-side { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jp-user-text { display: none; }
}

@media (max-width: 620px) {
  .jp-topbar { height: 68px; }
  .jp-title-wrap h1 { font-size: 15px; }
  .jp-title-wrap p { display: none; }
  .jp-top-button.jp-notif span { display: none; }
  .jp-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .jp-metric { padding: 14px; }
  .jp-metric-value { font-size: 25px; }
  .jp-hero h2 { font-size: 31px; }
  .jp-hero-side { grid-template-columns: 1fr; }
  .jp-operation { grid-template-columns: 1fr; gap: 10px; }
  .jp-quick-grid { grid-template-columns: 1fr 1fr; }
  .jp-quick { min-height: 108px; }
  .jp-bottom-brand { flex-direction: column; align-items: flex-start; }
  .jp-bottom-brand img { width: 220px; }
}

@media (max-width: 390px) {
  .jp-metrics, .jp-quick-grid { grid-template-columns: 1fr; }
}

/* =========================================================
   TELA DE ACESSO / HOME
   ========================================================= */
body.home { overflow-x: hidden; }
.jp-access-page {
  min-height: 100vh; position: relative; overflow: hidden; display: flex; flex-direction: column;
  background:
    radial-gradient(circle at 80% 20%, rgba(195,24,168,.10), transparent 28%),
    radial-gradient(circle at 10% 88%, rgba(255,162,10,.09), transparent 24%),
    #090a0e;
}
.jp-access-accent, .jp-login-accent { height: 5px; position: absolute; inset: 0 0 auto; z-index: 10; background: linear-gradient(90deg,var(--jp-orange) 0%,var(--jp-orange-2) 30%,var(--jp-purple) 68%,var(--jp-magenta) 100%); }
.jp-access-glow { position: absolute; width: 520px; height: 520px; border-radius: 50%; filter: blur(15px); opacity: .22; pointer-events: none; }
.jp-access-glow-orange { left: -330px; bottom: -280px; background: radial-gradient(circle, rgba(255,162,10,.55), transparent 65%); }
.jp-access-glow-purple { right: -290px; top: -260px; background: radial-gradient(circle, rgba(195,24,168,.48), transparent 65%); }
.jp-access-header { width: min(1460px, calc(100% - 72px)); margin: 0 auto; padding: 30px 0 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; position: relative; z-index: 2; }
.jp-access-brand img { width: 290px; max-height: 108px; object-fit: contain; object-position: left center; display: block; }
.jp-access-internal { display: inline-flex; align-items: center; gap: 9px; padding: 9px 13px; border: 1px solid var(--jp-line); border-radius: 999px; background: rgba(255,255,255,.025); color: #aeb3bf; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.jp-access-internal span { width: 7px; height: 7px; border-radius: 50%; background: var(--jp-orange); box-shadow: 0 0 15px rgba(255,162,10,.65); }
.jp-access-hero { width: min(1460px, calc(100% - 72px)); margin: auto; padding: 42px 0 62px; display: grid; grid-template-columns: minmax(0,1fr) minmax(480px,.92fr); gap: 72px; align-items: center; position: relative; z-index: 2; }
.jp-access-copy { max-width: 710px; }
.jp-access-kicker { color: #ffbd52; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: .15em; margin-bottom: 17px; }
.jp-access-copy h1 { margin: 0; font-size: clamp(46px,5.8vw,82px); line-height: .99; letter-spacing: -.055em; font-weight: 880; }
.jp-access-copy h1 strong { font-weight: 900; background: linear-gradient(92deg,#ffb326 4%,#ff9118 34%,#bd3dbb 74%,#db32c0 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jp-access-copy > p { max-width: 650px; margin: 24px 0 0; color: #aeb3bf; font-size: 17px; line-height: 1.72; }
.jp-access-actions { margin-top: 30px; }
.jp-access-primary { min-height: 54px; width: fit-content; padding: 0 21px 0 24px; border-radius: 14px; display: inline-flex; align-items: center; gap: 34px; color: #111218; font-size: 14px; font-weight: 900; background: linear-gradient(90deg,#ffb22a,#ff8d15); box-shadow: 0 16px 40px rgba(255,142,21,.20); transition: transform .18s ease, box-shadow .18s ease; }
.jp-access-primary:hover { transform: translateY(-2px); box-shadow: 0 20px 48px rgba(255,142,21,.27); }
.jp-access-primary .jp-icon { width: 19px; height: 19px; }
.jp-access-note { margin-top: 22px; display: flex; align-items: center; gap: 10px; color: #717785; font-size: 11px; font-weight: 650; }
.jp-access-note-dot { width: 7px; height: 7px; border-radius: 50%; background: #4b5160; }
.jp-access-visual { position: relative; }
.jp-access-visual::before { content: ""; position: absolute; width: 78%; height: 60%; left: 12%; top: 18%; border-radius: 50%; background: linear-gradient(90deg,rgba(255,162,10,.18),rgba(127,19,156,.23),rgba(195,24,168,.15)); filter: blur(75px); }
.jp-access-window { position: relative; padding: 26px; border-radius: 26px; border: 1px solid rgba(255,255,255,.10); background: linear-gradient(145deg,rgba(27,29,39,.96),rgba(14,16,22,.97)); box-shadow: 0 34px 100px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.04); transform: perspective(1100px) rotateY(-3deg) rotateX(1deg); }
.jp-access-window::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(130deg,rgba(255,255,255,.045),transparent 26%); }
.jp-access-window-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 19px; border-bottom: 1px solid var(--jp-line); }
.jp-access-window-top > div { display: grid; gap: 4px; }
.jp-access-window-eyebrow { color: #737987; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .12em; }
.jp-access-window-top strong { font-size: 16px; }
.jp-access-live { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 999px; color: #ff9b9b; background: rgba(239,68,68,.09); border: 1px solid rgba(239,68,68,.15); font-size: 9px; font-weight: 900; letter-spacing: .10em; }
.jp-access-live i { width: 6px; height: 6px; border-radius: 50%; background: #ef4444; box-shadow: 0 0 10px rgba(239,68,68,.8); }
.jp-access-event { margin-top: 22px; padding: 21px; border-radius: 17px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.06); }
.jp-access-event-main { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.jp-access-event-label { color: #aeb3bf; font-size: 12px; font-weight: 750; }
.jp-access-event-main strong { font-size: 34px; line-height: 1; letter-spacing: -.04em; }
.jp-access-progress { height: 8px; border-radius: 999px; margin-top: 17px; background: rgba(255,255,255,.06); overflow: hidden; }
.jp-access-progress span { display: block; width: 78%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--jp-orange),var(--jp-purple),var(--jp-magenta)); }
.jp-access-event-meta { margin-top: 13px; display: flex; justify-content: space-between; gap: 15px; color: #777d8a; font-size: 10px; font-weight: 700; }
.jp-access-mini-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 12px; }
.jp-access-mini-card { min-width: 0; display: flex; align-items: center; gap: 11px; padding: 14px; border-radius: 15px; border: 1px solid var(--jp-line); background: rgba(255,255,255,.018); }
.jp-access-mini-icon { flex: 0 0 37px; width: 37px; height: 37px; border-radius: 11px; display: grid; place-items: center; }
.jp-access-mini-icon.orange { color: #ffbc56; background: rgba(255,162,10,.10); }
.jp-access-mini-icon.purple { color: #d07ce0; background: rgba(127,19,156,.13); }
.jp-access-mini-icon.magenta { color: #ee76da; background: rgba(195,24,168,.12); }
.jp-access-mini-icon .jp-icon { width: 18px; height: 18px; }
.jp-access-mini-card div { min-width: 0; display: grid; gap: 4px; }
.jp-access-mini-card strong { font-size: 18px; line-height: 1; }
.jp-access-mini-card small { color: #777d8a; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jp-access-activity { display: flex; align-items: center; gap: 11px; margin-top: 12px; padding: 15px; border-radius: 14px; border: 1px dashed rgba(255,255,255,.10); color: #dfe2e9; }
.jp-access-activity-dot { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: var(--jp-green); box-shadow: 0 0 13px rgba(34,197,94,.45); }
.jp-access-activity div { display: grid; gap: 3px; }
.jp-access-activity strong { font-size: 11px; }
.jp-access-activity small { color: #737987; font-size: 9px; line-height: 1.4; }
.jp-access-footer { width: min(1460px, calc(100% - 72px)); margin: 0 auto; padding: 20px 0 26px; display: flex; align-items: center; justify-content: space-between; gap: 22px; border-top: 1px solid rgba(255,255,255,.06); color: #5f6572; font-size: 10px; position: relative; z-index: 2; }
.jp-access-footer-modules { display: flex; align-items: center; gap: 9px; }
.jp-access-footer-modules i { width: 3px; height: 3px; border-radius: 50%; background: #444a56; }

/* =========================================================
   LOGIN
   ========================================================= */
.jp-login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(460px,.88fr); background: #090a0e; position: relative; overflow: hidden; }
.jp-login-brand-panel { position: relative; overflow: hidden; min-height: 100vh; background: radial-gradient(circle at 26% 20%, rgba(255,162,10,.14), transparent 31%), radial-gradient(circle at 82% 77%, rgba(195,24,168,.20), transparent 34%), linear-gradient(145deg,#11131a 0%,#0b0c10 72%); border-right: 1px solid var(--jp-line); }
.jp-login-brand-inner { width: min(760px, calc(100% - 100px)); min-height: 100%; margin: 0 auto; padding: 64px 0 54px; display: flex; flex-direction: column; position: relative; z-index: 2; }
.jp-login-logo img { width: 315px; max-height: 118px; object-fit: contain; object-position: left center; }
.jp-login-brand-copy { margin: auto 0; max-width: 660px; padding: 70px 0; }
.jp-login-eyebrow { display: block; margin-bottom: 15px; color: #ffbd52; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .16em; }
.jp-login-brand-copy h1 { margin: 0; font-size: clamp(42px,4.6vw,72px); line-height: 1.02; letter-spacing: -.05em; }
.jp-login-brand-copy h1 strong { font-weight: 900; background: linear-gradient(92deg,#ffb326,#ff8e17 32%,#c344bd 72%,#db32c0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.jp-login-brand-copy p { max-width: 580px; margin: 22px 0 0; color: #9ca2af; font-size: 15px; line-height: 1.7; }
.jp-login-brand-status { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; color: #747a87; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.jp-login-brand-status span { display: inline-flex; align-items: center; gap: 8px; }
.jp-login-brand-status i { width: 6px; height: 6px; border-radius: 50%; }
.jp-login-brand-status .is-orange { background: var(--jp-orange); }
.jp-login-brand-status .is-purple { background: #a345bd; }
.jp-login-brand-status .is-magenta { background: var(--jp-magenta); }
.jp-login-shape { position: absolute; border: 1px solid rgba(255,255,255,.035); border-radius: 50%; pointer-events: none; }
.jp-login-shape-one { width: 520px; height: 520px; right: -270px; top: 10%; box-shadow: 0 0 0 60px rgba(255,255,255,.010), 0 0 0 120px rgba(255,255,255,.007); }
.jp-login-shape-two { width: 330px; height: 330px; left: -190px; bottom: -120px; box-shadow: 0 0 0 48px rgba(255,162,10,.018); }
.jp-login-form-panel { min-height: 100vh; display: grid; place-items: center; padding: 52px; background: #0d0f14; }
.jp-login-box { width: min(100%,430px); }
.jp-login-mobile-logo { display: none; margin-bottom: 34px; }
.jp-login-mobile-logo img { width: 270px; }
.jp-login-box-head > span { color: #ffbd52; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .15em; }
.jp-login-box-head h2 { margin: 10px 0 7px; font-size: 28px; letter-spacing: -.035em; }
.jp-login-box-head p { margin: 0; color: #777d8b; font-size: 12px; line-height: 1.55; }
.jp-login-error { margin-top: 22px; padding: 13px 14px; display: flex; align-items: center; gap: 10px; border-radius: 12px; border: 1px solid rgba(239,68,68,.18); background: rgba(239,68,68,.07); color: #ffaaaa; font-size: 12px; font-weight: 650; }
.jp-login-error .jp-icon { width: 18px; height: 18px; flex: 0 0 18px; }
.jp-login-form { display: grid; gap: 17px; margin-top: 28px; }
.jp-login-field { display: grid; gap: 8px; }
.jp-login-field > span { color: #b7bbc5; font-size: 11px; font-weight: 800; }
.jp-login-field input { width: 100%; height: 52px; border-radius: 12px; border: 1px solid rgba(255,255,255,.09); background: #151720; color: #fff; outline: none; padding: 0 15px; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.jp-login-field input:focus { border-color: rgba(255,162,10,.48); background: #171922; box-shadow: 0 0 0 4px rgba(255,162,10,.07); }
.jp-login-password-wrap { position: relative; }
.jp-login-password-wrap input { padding-right: 78px; }
.jp-login-password-toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); height: 34px; padding: 0 9px; border: 0; border-radius: 8px; color: #999fac; background: rgba(255,255,255,.04); cursor: pointer; font-size: 10px; font-weight: 800; }
.jp-login-remember { display: flex; align-items: center; gap: 9px; width: fit-content; color: #858b98; font-size: 11px; cursor: pointer; }
.jp-login-remember input { accent-color: var(--jp-orange); width: 15px; height: 15px; }
.jp-login-submit { width: 100%; height: 54px; margin-top: 2px; padding: 0 17px 0 20px; border: 0; border-radius: 12px; display: flex; align-items: center; justify-content: space-between; color: #101116; background: linear-gradient(90deg,#ffb326,#ff8d15); box-shadow: 0 15px 35px rgba(255,141,21,.16); cursor: pointer; font-size: 13px; font-weight: 900; transition: transform .18s ease, box-shadow .18s ease; }
.jp-login-submit:hover { transform: translateY(-1px); box-shadow: 0 18px 42px rgba(255,141,21,.23); }
.jp-login-submit .jp-icon { width: 19px; height: 19px; }
.jp-login-security { margin-top: 23px; padding-top: 20px; border-top: 1px solid var(--jp-line); display: flex; align-items: center; justify-content: center; gap: 8px; color: #616774; font-size: 10px; }
.jp-login-security-icon { width: 19px; height: 19px; border-radius: 50%; display: grid; place-items: center; background: rgba(34,197,94,.09); color: #72d692; font-size: 10px; }

@media (max-width: 1100px) {
  .jp-access-hero { grid-template-columns: 1fr; gap: 46px; padding-top: 26px; }
  .jp-access-copy { max-width: 780px; }
  .jp-access-visual { max-width: 760px; }
  .jp-login-page { grid-template-columns: minmax(0,1fr) 460px; }
  .jp-login-brand-inner { width: min(650px, calc(100% - 60px)); }
}
@media (max-width: 820px) {
  .jp-access-header, .jp-access-hero, .jp-access-footer { width: min(100% - 36px, 720px); }
  .jp-access-header { padding-top: 22px; }
  .jp-access-brand img { width: 235px; }
  .jp-access-internal { font-size: 9px; padding: 8px 10px; }
  .jp-access-hero { margin: 0 auto auto; padding: 54px 0 44px; }
  .jp-access-copy h1 { font-size: clamp(42px,12vw,65px); }
  .jp-access-copy > p { font-size: 15px; }
  .jp-access-window { transform: none; padding: 20px; }
  .jp-access-footer { flex-direction: column; align-items: flex-start; }
  .jp-login-page { grid-template-columns: 1fr; }
  .jp-login-brand-panel { display: none; }
  .jp-login-form-panel { padding: 36px 24px; background: radial-gradient(circle at 85% 12%,rgba(195,24,168,.13),transparent 30%),radial-gradient(circle at 6% 88%,rgba(255,162,10,.10),transparent 30%),#0c0e13; }
  .jp-login-mobile-logo { display: block; }
}
@media (max-width: 560px) {
  .jp-access-header { align-items: flex-start; }
  .jp-access-brand img { width: 205px; }
  .jp-access-internal { margin-top: 5px; }
  .jp-access-copy h1 { font-size: 45px; }
  .jp-access-copy > p { line-height: 1.6; }
  .jp-access-primary { width: 100%; justify-content: space-between; }
  .jp-access-mini-grid { grid-template-columns: 1fr; }
  .jp-access-event-meta { flex-direction: column; gap: 5px; }
  .jp-access-footer-modules { display: none; }
  .jp-login-form-panel { padding: 28px 20px; }
  .jp-login-mobile-logo img { width: 235px; }
  .jp-login-box-head h2 { font-size: 25px; }
}

/* Preserva a proporção da marca nas três áreas principais. */
.jp-brand img,
.jp-access-brand img,
.jp-login-logo img,
.jp-login-mobile-logo img { height: auto; max-height: none; }

/* Login v0.3.0 */
body.page-login,
body.page-id-0 { background: #090a0e; }
.jp-login-notice { margin-top: 22px; padding: 13px 14px; display: flex; align-items: center; gap: 10px; border-radius: 12px; border: 1px solid rgba(34,197,94,.18); background: rgba(34,197,94,.07); color: #91e7ac; font-size: 12px; font-weight: 650; }
.jp-login-notice-icon { width: 18px; height: 18px; flex: 0 0 18px; display: grid; place-items: center; border-radius: 50%; background: rgba(34,197,94,.12); font-size: 10px; font-weight: 900; }
.jp-login-back { display: block; width: fit-content; margin: 20px auto 0; color: #666d7a; font-size: 10px; font-weight: 750; transition: color .18s ease; }
.jp-login-back:hover { color: #c7cbd4; }
.jp-login-box::before { content: "JP • CENTRAL OPERACIONAL"; display: block; width: fit-content; margin-bottom: 28px; color: #555c69; font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.jp-login-form-panel { position: relative; }
.jp-login-form-panel::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(135deg,rgba(255,162,10,.025),transparent 30%,transparent 70%,rgba(195,24,168,.03)); }
.jp-login-box { position: relative; z-index: 2; }
@media (max-width: 820px) {
  .jp-login-box::before { display: none; }
}

/* 0.3.1 — sessão ativa sem ocultar a tela personalizada de login */
.jp-login-session-actions { display: grid; grid-template-columns: 1fr; gap: 9px; margin-top: 18px; }
.jp-login-session-primary,
.jp-login-session-secondary { min-height: 44px; border-radius: 11px; display: flex; align-items: center; justify-content: center; padding: 10px 14px; font-size: 11px; font-weight: 850; text-align: center; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.jp-login-session-primary { color: #111218; background: linear-gradient(90deg,#ffb326,#ff8d15); }
.jp-login-session-secondary { color: #adb2bd; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.025); }
.jp-login-session-primary:hover,
.jp-login-session-secondary:hover { transform: translateY(-1px); }
.jp-login-session-divider,
.jp-login-divider { margin: 22px 0 -5px; display: flex; align-items: center; gap: 12px; color: #595f6b; font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.jp-login-divider::before,
.jp-login-divider::after { content: ""; height: 1px; flex: 1; background: rgba(255,255,255,.07); }

/* ==============================================================
   JP PRODUÇÕES — CENTRAL OPERACIONAL INTERATIVA v0.4.0
   Dados demonstrativos persistidos por usuário.
   ============================================================== */

.jp-app-shell { --jp-sidebar-width: 286px; grid-template-columns: var(--jp-sidebar-width) minmax(0,1fr); }
.jp-app-shell .jp-sidebar { width: var(--jp-sidebar-width); padding: 18px 14px 16px; }
.jp-app-shell .jp-brand { min-height: 78px; padding: 0 10px 16px; }
.jp-app-shell .jp-brand img { width: 218px; }
.jp-app-nav { gap: 3px; }
.jp-app-nav button {
  width: 100%; border: 0; text-align: left; cursor: pointer; color: #c8ccd7; background: transparent;
  display: flex; align-items: center; gap: 11px; min-height: 43px; padding: 10px 11px; border-radius: 12px;
  font-size: 13px; font-weight: 720; position: relative; transition: .18s ease;
}
.jp-app-nav button:hover { background: rgba(255,255,255,.045); color: #fff; transform: translateX(2px); }
.jp-app-nav button.is-active {
  color: #fff; background: linear-gradient(90deg,rgba(255,162,10,.14),rgba(127,19,156,.18));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.045);
}
.jp-app-nav button.is-active::before {
  content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:99px;
  background:linear-gradient(180deg,var(--jp-orange),var(--jp-magenta));
}
.jp-app-nav button span { min-width: 0; flex: 1; }
.jp-nav-count {
  min-width: 22px; height: 21px; padding: 0 6px; border-radius: 999px; display: inline-flex; align-items:center; justify-content:center;
  font-style: normal; font-size: 10px; font-weight:900; color:#111; background:var(--jp-orange);
}
.jp-nav-live { font-style:normal; color:#ff8c8c; background:rgba(239,68,68,.10); border:1px solid rgba(239,68,68,.18); padding:3px 6px; border-radius:999px; font-size:8px; letter-spacing:.08em; font-weight:900; }
.jp-app-shell .jp-sidebar-footer { display:grid; gap:3px; }
.jp-app-shell .jp-sidebar-footer strong { color:#e6e8ee; font-size:12px; }
.jp-app-shell .jp-sidebar-footer span { color:#777d8b; }
.jp-app-shell .jp-sidebar-footer small { margin-top:4px; color:#555b68; }

.jp-app-topbar { height: 72px; padding: 0 24px; }
.jp-global-search-wrap {
  height: 40px; width: min(300px,24vw); display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid var(--jp-line);
  border-radius:11px; background:#14161e; color:#737987;
}
.jp-global-search-wrap .jp-icon { width:17px; height:17px; }
.jp-global-search-wrap input { width:100%; border:0; outline:0; background:transparent; color:#f2f3f5; font-size:12px; }
.jp-global-search-wrap input::placeholder { color:#6d7380; }
.jp-notif { position:relative; border:0; cursor:pointer; }
.jp-notif b { position:absolute; top:-5px; right:-5px; width:18px; height:18px; border-radius:999px; place-items:center; background:#ef4444; color:white; font-size:9px; box-shadow:0 0 0 3px #0b0c10; }
.jp-user-button { border:1px solid var(--jp-line); cursor:pointer; }
.jp-user-chevron { color:#747a87; margin-left:2px; }
.jp-app-content { padding: 24px; max-width: 1700px; }
.jp-app-view { min-height: calc(100vh - 124px); }
.jp-app-loading { min-height:55vh; display:grid; place-items:center; align-content:center; gap:18px; color:#777d8b; font-size:12px; }
.jp-loading-logo { width:150px; opacity:.45; }

.jp-dashboard-hero {
  display:grid; grid-template-columns:minmax(0,1.5fr) minmax(310px,.5fr); gap:20px; padding:28px;
  border:1px solid rgba(255,255,255,.08); border-radius:22px; overflow:hidden; position:relative;
  background:radial-gradient(circle at 84% 10%,rgba(184,22,168,.22),transparent 28%),radial-gradient(circle at 10% 0%,rgba(255,162,10,.16),transparent 35%),linear-gradient(145deg,#171922,#101218);
  box-shadow:0 20px 55px rgba(0,0,0,.26);
}
.jp-dashboard-hero::after { content:""; position:absolute; width:430px; height:430px; right:-190px; bottom:-280px; border-radius:50%; border:1px solid rgba(255,255,255,.05); box-shadow:0 0 0 52px rgba(255,255,255,.015),0 0 0 104px rgba(255,255,255,.01); }
.jp-dashboard-hero-copy,.jp-dashboard-health { position:relative; z-index:1; }
.jp-live-pill { display:inline-flex; align-items:center; gap:7px; width:fit-content; color:#ffbbbb; font-size:10px; letter-spacing:.10em; font-weight:900; padding:6px 9px; border-radius:999px; background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.14); }
.jp-live-pill i,.jp-online i { width:7px; height:7px; border-radius:50%; background:#ef4444; box-shadow:0 0 0 4px rgba(239,68,68,.08),0 0 12px rgba(239,68,68,.55); }
.jp-dashboard-hero h2,.jp-live-command-head h2 { margin:12px 0 6px; font-size:clamp(28px,3.2vw,46px); letter-spacing:-.04em; line-height:1.05; }
.jp-dashboard-hero-copy > p,.jp-live-command-head p { margin:0; color:#9fa5b2; font-size:13px; }
.jp-hero-statline { display:flex; gap:20px; flex-wrap:wrap; margin:22px 0 0; }
.jp-hero-statline span { color:#888e9b; font-size:11px; }
.jp-hero-statline b { display:block; color:#fff; font-size:18px; margin-bottom:2px; }
.jp-hero-buttons { display:flex; gap:9px; margin-top:22px; flex-wrap:wrap; }
.jp-btn {
  min-height:42px; border:0; border-radius:11px; padding:0 15px; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-size:12px; font-weight:850; cursor:pointer; transition:.18s ease; white-space:nowrap;
}
.jp-btn:hover { transform:translateY(-1px); }
.jp-btn.primary { background:linear-gradient(90deg,#ffad22,#ff8b14); color:#151515; box-shadow:0 12px 28px rgba(255,142,20,.14); }
.jp-btn.ghost { background:rgba(255,255,255,.035); border:1px solid var(--jp-line); color:#e9eaf0; }
.jp-btn.soft { background:rgba(127,19,156,.15); border:1px solid rgba(195,24,168,.18); color:#f1b8ed; }
.jp-btn.small { min-height:34px; padding:0 11px; font-size:10px; }
.jp-dashboard-health { display:grid; grid-template-columns:150px 1fr; align-items:center; gap:18px; padding:17px; border-radius:18px; background:rgba(6,7,10,.48); border:1px solid rgba(255,255,255,.07); }
.jp-health-ring { --p:50; width:140px; height:140px; display:grid; place-items:center; border-radius:50%; position:relative; background:conic-gradient(var(--jp-orange) 0 calc(var(--p)*1%),rgba(255,255,255,.055) calc(var(--p)*1%) 100%); }
.jp-health-ring::before { content:""; position:absolute; inset:9px; border-radius:50%; background:#12141b; }
.jp-health-ring > div { position:relative; display:grid; text-align:center; }
.jp-health-ring strong { font-size:28px; letter-spacing:-.04em; }
.jp-health-ring span { color:#7f8592; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.jp-health-lines { display:grid; gap:13px; }
.jp-health-lines div { display:flex; justify-content:space-between; gap:10px; padding-bottom:10px; border-bottom:1px solid var(--jp-line); }
.jp-health-lines div:last-child { border-bottom:0; padding-bottom:0; }
.jp-health-lines span { color:#818794; font-size:10px; }
.jp-health-lines b { font-size:12px; }

.jp-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px; margin-top:18px; }
.jp-kpi-grid.jp-kpi-4,.jp-event-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.jp-event-summary { display:grid; gap:11px; margin-bottom:18px; }
.jp-kpi { min-width:0; padding:16px; border-radius:15px; border:1px solid var(--jp-line); background:var(--jp-card); }
.jp-kpi.warning { box-shadow:inset 0 2px 0 rgba(245,197,66,.45); }
.jp-kpi.danger { box-shadow:inset 0 2px 0 rgba(239,68,68,.55); }
.jp-kpi-head { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#8d93a0; font-size:10px; text-transform:uppercase; letter-spacing:.06em; font-weight:800; }
.jp-kpi-head i { width:29px; height:29px; display:grid; place-items:center; border-radius:9px; font-style:normal; color:#c8ccd4; background:rgba(255,255,255,.04); font-size:9px; }
.jp-kpi > strong { display:block; margin:8px 0 5px; font-size:26px; letter-spacing:-.04em; line-height:1; overflow:hidden; text-overflow:ellipsis; }
.jp-kpi > small { color:#747a87; font-size:10px; }

.jp-two-col { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:17px; margin-top:17px; }
.jp-dashboard-grid { grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr); }
.jp-card { background:var(--jp-card); border:1px solid var(--jp-line); border-radius:17px; overflow:hidden; }
.jp-card-head { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; border-bottom:1px solid var(--jp-line); }
.jp-card-head span:first-child { display:block; color:#777d8a; font-size:9px; text-transform:uppercase; letter-spacing:.09em; font-weight:850; }
.jp-card-head h3 { margin:3px 0 0; font-size:14px; }
.jp-link-btn,.jp-more-btn { border:0; background:transparent; color:#b7bbc5; cursor:pointer; font-size:10px; font-weight:800; padding:6px 8px; border-radius:8px; }
.jp-link-btn:hover,.jp-more-btn:hover { background:rgba(255,255,255,.05); color:#fff; }
.jp-online { display:inline-flex; align-items:center; gap:7px; color:#78dc96; font-size:9px; text-transform:uppercase; letter-spacing:.07em; font-weight:900; }
.jp-online i { background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.07),0 0 12px rgba(34,197,94,.45); }

.jp-operation-list { display:grid; }
.jp-operation-row { width:100%; border:0; border-bottom:1px solid var(--jp-line); background:transparent; color:inherit; text-align:left; display:grid; grid-template-columns:minmax(0,1fr) 140px 120px; gap:14px; align-items:center; padding:15px 18px; cursor:pointer; transition:.15s; }
.jp-operation-row:last-child { border-bottom:0; }
.jp-operation-row:hover { background:rgba(255,255,255,.025); }
.jp-op-main { min-width:0; }
.jp-op-code { display:block; color:#6d7380; font-size:9px; font-weight:800; margin-bottom:3px; }
.jp-op-main strong { display:block; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jp-op-main small { display:block; color:#787e8b; font-size:9px; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jp-op-progress { display:grid; gap:6px; text-align:right; }
.jp-op-progress b { font-size:11px; }
.jp-op-progress span,.jp-table-progress span,.jp-mini-progress-row > span,.jp-control-progress > span,.jp-report-bars span { height:5px; border-radius:99px; overflow:hidden; background:rgba(255,255,255,.06); }
.jp-op-progress i,.jp-table-progress i,.jp-mini-progress-row > span i,.jp-control-progress > span i,.jp-report-bars i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--jp-orange),var(--jp-purple),var(--jp-magenta)); }

.jp-feed-list { padding:8px 18px 12px; }
.jp-feed-row { display:grid; grid-template-columns:38px 10px minmax(0,1fr); gap:8px; align-items:start; padding:9px 0; }
.jp-feed-row time { color:#6f7582; font-size:9px; padding-top:2px; }
.jp-feed-mark { width:8px; height:8px; margin-top:2px; border-radius:50%; background:#6c7280; box-shadow:0 0 0 4px rgba(255,255,255,.03); }
.jp-feed-mark.demand { background:#ef4444; }.jp-feed-mark.assembly { background:#ffa20a; }.jp-feed-mark.message { background:#9b46b3; }.jp-feed-mark.fleet { background:#4f8cff; }.jp-feed-mark.artistico { background:#c318a8; }
.jp-feed-row p { margin:0; color:#9aa0ad; font-size:10px; line-height:1.45; }
.jp-feed-row p b { color:#daddE4; }

.jp-mini-progress-list,.jp-control-progress-list { padding:9px 18px 13px; display:grid; }
.jp-mini-progress-row,.jp-control-progress { width:100%; color:inherit; border:0; background:transparent; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) 42px 130px; gap:11px; align-items:center; padding:9px 0; text-align:left; }
.jp-mini-progress-row:hover,.jp-control-progress:hover { color:#fff; }
.jp-mini-progress-row strong,.jp-control-progress strong { display:block; font-size:11px; }
.jp-mini-progress-row small,.jp-control-progress small { display:block; color:#707684; font-size:9px; margin-top:2px; }
.jp-mini-progress-row > b,.jp-control-progress > b { text-align:right; font-size:10px; }

.jp-action-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; padding:15px 18px 18px; }
.jp-action-grid button { border:1px solid var(--jp-line); background:rgba(255,255,255,.02); color:inherit; cursor:pointer; min-height:71px; border-radius:12px; display:flex; align-items:center; gap:10px; text-align:left; padding:12px; }
.jp-action-grid button:hover { border-color:rgba(255,162,10,.22); background:rgba(255,162,10,.035); }
.jp-action-grid button > b { width:31px; height:31px; display:grid; place-items:center; border-radius:9px; background:linear-gradient(135deg,rgba(255,162,10,.18),rgba(127,19,156,.18)); color:#f0c77d; }
.jp-action-grid strong { display:block; font-size:10px; }.jp-action-grid small { display:block; color:#727886; font-size:9px; margin-top:2px; }

.jp-page-toolbar { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.jp-page-kicker { color:#9a70aa; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.10em; }
.jp-page-toolbar h2 { margin:4px 0 0; font-size:25px; letter-spacing:-.03em; }
.jp-toolbar-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.jp-select,.jp-inline-select { min-height:40px; border:1px solid var(--jp-line); border-radius:10px; color:#dfe2e9; background:#151720; outline:0; padding:0 32px 0 11px; font-size:11px; }
.jp-inline-select { min-height:31px; padding:0 26px 0 8px; font-size:9px; }

.jp-table-card { overflow:hidden; }
.jp-table-wrap { overflow:auto; }
.jp-table { width:100%; border-collapse:collapse; min-width:900px; }
.jp-table th { text-align:left; color:#6f7582; text-transform:uppercase; letter-spacing:.06em; font-size:8px; font-weight:900; padding:11px 15px; border-bottom:1px solid var(--jp-line); background:#14161d; white-space:nowrap; }
.jp-table td { color:#b9bdc7; font-size:10px; padding:13px 15px; border-bottom:1px solid rgba(255,255,255,.055); vertical-align:middle; }
.jp-table tbody tr:hover { background:rgba(255,255,255,.018); }
.jp-table tbody tr:last-child td { border-bottom:0; }
.jp-table td > small,.jp-row-link small { display:block; margin-top:3px; color:#707684; font-size:8px; }
.jp-table td > strong { color:#e4e6eb; }
.jp-row-link { border:0; background:transparent; color:inherit; cursor:pointer; text-align:left; padding:0; max-width:360px; }
.jp-row-link strong { color:#e1e3e8; font-size:10px; }
.jp-table-progress { width:95px; display:grid; grid-template-columns:30px 1fr; gap:7px; align-items:center; }
.jp-table-progress b { font-size:9px; }.jp-table-progress span { height:4px; }
.jp-filter-chips,.jp-filterbar { display:flex; flex-wrap:wrap; gap:6px; }
.jp-filterbar { margin-bottom:14px; }
.jp-filter-chips button,.jp-filterbar button { min-height:31px; padding:0 11px; border-radius:999px; border:1px solid var(--jp-line); background:#14161d; color:#858b98; cursor:pointer; font-size:9px; font-weight:800; }
.jp-filter-chips button.is-active,.jp-filterbar button.is-active { color:#111; background:#ffa20a; border-color:#ffa20a; }

.jp-live-command-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:16px; }
.jp-live-command-actions { display:flex; align-items:center; gap:8px; }
.jp-live-strip { display:grid; grid-template-columns:1.45fr repeat(4,1fr); border:1px solid var(--jp-line); background:#151720; border-radius:16px; overflow:hidden; margin-bottom:17px; }
.jp-live-strip > div { padding:14px 16px; border-right:1px solid var(--jp-line); min-width:0; }
.jp-live-strip > div:last-child { border-right:0; }
.jp-live-strip span { display:block; color:#747a87; font-size:8px; text-transform:uppercase; letter-spacing:.06em; }
.jp-live-strip strong { display:block; margin-top:4px; font-size:20px; letter-spacing:-.03em; }
.jp-live-strip small { color:#666c79; font-size:8px; }
.jp-live-strip > div:first-child { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 12px; align-items:center; }
.jp-live-strip > div:first-child i { grid-column:1/-1; height:5px; border-radius:99px; background:rgba(255,255,255,.06); overflow:hidden; }
.jp-live-strip > div:first-child b { display:block; height:100%; background:linear-gradient(90deg,var(--jp-orange),var(--jp-purple),var(--jp-magenta)); }
.jp-live-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr); gap:17px; margin-top:17px; }
.jp-timeline-row { display:grid; grid-template-columns:48px 14px minmax(0,1fr) 74px; gap:8px; align-items:center; min-height:50px; padding:0 17px; border-bottom:1px solid rgba(255,255,255,.05); }
.jp-timeline-row:last-child { border-bottom:0; }
.jp-timeline-row time { color:#858b98; font-size:10px; }
.jp-timeline-node { width:9px; height:9px; border-radius:50%; background:#555c69; box-shadow:0 0 0 4px rgba(255,255,255,.025); }
.jp-timeline-row.done .jp-timeline-node { background:#22c55e; }.jp-timeline-row.active .jp-timeline-node { background:#ffa20a; box-shadow:0 0 0 4px rgba(255,162,10,.08),0 0 14px rgba(255,162,10,.35); }
.jp-timeline-row strong { display:block; font-size:10px; }.jp-timeline-row small { color:#717785; font-size:8px; }
.jp-live-demand-list,.jp-show-list { display:grid; }
.jp-live-demand,.jp-show-row { width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.05); color:inherit; background:transparent; cursor:pointer; display:grid; align-items:center; gap:10px; padding:12px 17px; text-align:left; }
.jp-live-demand { grid-template-columns:70px minmax(0,1fr) 88px; }.jp-show-row { grid-template-columns:45px minmax(0,1fr) 100px; }
.jp-live-demand:hover,.jp-show-row:hover { background:rgba(255,255,255,.02); }
.jp-live-demand strong,.jp-show-row strong { display:block; font-size:10px; }.jp-live-demand small,.jp-show-row small { color:#717785; font-size:8px; }.jp-live-demand > b { color:#888e9a; font-size:8px; text-align:right; }
.jp-show-row time { font-size:11px; color:#ffb437; font-weight:900; }

.jp-assembly-overview { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:15px; }
.jp-assembly-overview div { display:flex; align-items:baseline; gap:7px; padding:12px 14px; border:1px solid var(--jp-line); border-radius:12px; background:#151720; }
.jp-assembly-overview strong { font-size:19px; }.jp-assembly-overview span { color:#727886; font-size:9px; }
.jp-assembly-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.jp-assembly-card { padding:16px; border:1px solid var(--jp-line); border-radius:15px; background:var(--jp-card); }
.jp-assembly-card.attention { box-shadow:inset 0 2px 0 rgba(245,197,66,.48); }
.jp-assembly-card header { display:flex; justify-content:space-between; gap:12px; }
.jp-assembly-card header > div > span { color:#777d89; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.jp-assembly-card h3 { margin:4px 0 0; font-size:12px; }
.jp-assembly-progress { display:grid; grid-template-columns:45px 1fr; gap:9px; align-items:center; margin:18px 0; }
.jp-assembly-progress strong { font-size:17px; }.jp-assembly-progress span { height:7px; border-radius:99px; background:rgba(255,255,255,.06); overflow:hidden; }.jp-assembly-progress i { display:block; height:100%; background:linear-gradient(90deg,var(--jp-orange),var(--jp-purple),var(--jp-magenta)); }
.jp-assembly-meta { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.jp-assembly-meta span { color:#8a909d; font-size:9px; }.jp-assembly-meta b { display:block; color:#626875; text-transform:uppercase; letter-spacing:.06em; font-size:7px; margin-bottom:2px; }
.jp-assembly-card footer { display:flex; gap:7px; margin-top:16px; padding-top:13px; border-top:1px solid var(--jp-line); }

.jp-chat-shell { height:calc(100vh - 121px); min-height:640px; display:grid; grid-template-columns:310px minmax(0,1fr); overflow:hidden; border:1px solid var(--jp-line); border-radius:18px; background:var(--jp-card); }
.jp-chat-channels { border-right:1px solid var(--jp-line); background:#12141b; min-width:0; }
.jp-chat-channels > header { padding:18px; border-bottom:1px solid var(--jp-line); }.jp-chat-channels > header span { color:#777d8a; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.jp-chat-channels > header h2 { margin:4px 0 0; font-size:15px; }
.jp-channel-search { margin:11px; padding:10px; border-radius:10px; background:#181a22; color:#686e7b; font-size:9px; }
.jp-channel-list { display:grid; max-height:calc(100% - 130px); overflow:auto; }
.jp-channel { width:100%; min-width:0; border:0; border-bottom:1px solid rgba(255,255,255,.045); background:transparent; color:inherit; cursor:pointer; display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; align-items:center; text-align:left; padding:12px 14px; }
.jp-channel:hover,.jp-channel.is-active { background:rgba(255,255,255,.035); }.jp-channel.is-active { box-shadow:inset 3px 0 0 var(--jp-orange); }
.jp-channel-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; font-size:9px; font-weight:900; background:linear-gradient(135deg,rgba(255,162,10,.22),rgba(127,19,156,.27)); color:#efdcbe; }
.jp-channel strong { display:block; font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.jp-channel small { color:#6c7280; font-size:8px; }.jp-channel > b { min-width:19px; height:19px; display:grid; place-items:center; border-radius:999px; background:#ffa20a; color:#141414; font-size:8px; }
.jp-chat-main { min-width:0; display:grid; grid-template-rows:66px minmax(0,1fr) auto; }
.jp-chat-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:0 18px; border-bottom:1px solid var(--jp-line); }.jp-chat-head strong { display:block; font-size:12px; }.jp-chat-head span { color:#737986; font-size:8px; }
.jp-message-list { overflow:auto; padding:18px; display:flex; flex-direction:column; gap:15px; background:radial-gradient(circle at 95% 0,rgba(127,19,156,.055),transparent 30%); }
.jp-message { max-width:76%; display:grid; grid-template-columns:34px minmax(0,1fr); gap:8px; align-items:start; }.jp-message.mine { align-self:flex-end; grid-template-columns:minmax(0,1fr); }.jp-message.mine .jp-message-avatar { display:none; }.jp-message.mine > div { background:linear-gradient(135deg,rgba(255,162,10,.15),rgba(127,19,156,.13)); border-color:rgba(255,162,10,.13); }
.jp-message-avatar { width:32px; height:32px; display:grid; place-items:center; border-radius:9px; color:#ddd; background:#1e2029; font-size:8px; font-weight:900; }
.jp-message > div { padding:10px 12px; border:1px solid var(--jp-line); border-radius:12px; background:#171922; }.jp-message header { display:flex; gap:8px; align-items:center; }.jp-message header strong { font-size:9px; }.jp-message header time { color:#656b78; font-size:7px; }.jp-message p { margin:5px 0 0; color:#b5b9c3; font-size:10px; line-height:1.5; }
.jp-message-form { border-top:1px solid var(--jp-line); padding:11px 13px; background:#12141a; }.jp-message-form textarea { width:100%; min-height:56px; resize:none; border:1px solid var(--jp-line); border-radius:10px; background:#181a22; color:#eee; outline:0; padding:10px 12px; font-size:10px; }.jp-message-form > div { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:8px; }.jp-message-form > div > span { color:#676d79; font-size:8px; }

.jp-vehicle-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.jp-vehicle-card { border:1px solid var(--jp-line); border-radius:15px; background:var(--jp-card); padding:15px; }
.jp-vehicle-card header { display:flex; justify-content:space-between; gap:10px; }.jp-vehicle-card header > div > span { color:#ffa20a; font-size:9px; font-weight:900; }.jp-vehicle-card h3 { margin:3px 0 0; font-size:12px; }.jp-vehicle-card header small { color:#737986; font-size:8px; }
.jp-vehicle-body { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:17px 0 11px; }.jp-vehicle-body span { display:block; color:#666c79; font-size:7px; text-transform:uppercase; letter-spacing:.05em; }.jp-vehicle-body strong { display:block; color:#bfc3cc; font-size:9px; margin-top:2px; }
.jp-fuel-gauge { height:5px; border-radius:99px; background:rgba(255,255,255,.055); overflow:hidden; }.jp-fuel-gauge i { display:block; height:100%; background:linear-gradient(90deg,#ffa20a,#22c55e); }
.jp-vehicle-card footer { display:flex; gap:7px; margin-top:14px; }

.jp-supplier-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.jp-supplier-card { border:1px solid var(--jp-line); border-radius:15px; background:var(--jp-card); color:inherit; text-align:left; padding:15px; cursor:pointer; transition:.15s; }.jp-supplier-card:hover { transform:translateY(-2px); border-color:rgba(255,162,10,.16); }
.jp-supplier-card header { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:center; }.jp-supplier-avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; background:linear-gradient(135deg,rgba(255,162,10,.18),rgba(195,24,168,.22)); color:#f0d9b0; font-size:9px; font-weight:900; }.jp-supplier-card header strong { display:block; font-size:10px; }.jp-supplier-card header small { color:#727885; font-size:8px; }
.jp-supplier-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin:16px 0; }.jp-supplier-stats span { text-align:center; color:#676d7a; font-size:7px; }.jp-supplier-stats b { display:block; color:#dfe1e6; font-size:14px; margin-bottom:2px; }.jp-supplier-card footer { display:flex; justify-content:space-between; gap:8px; padding-top:11px; border-top:1px solid var(--jp-line); color:#747a87; font-size:8px; }

.jp-report-hero { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:17px; }.jp-report-hero > div { padding:18px; border:1px solid var(--jp-line); border-radius:14px; background:linear-gradient(145deg,#191b24,#14161c); }.jp-report-hero span { color:#727886; font-size:8px; text-transform:uppercase; letter-spacing:.06em; }.jp-report-hero strong { display:block; margin:6px 0 4px; font-size:22px; letter-spacing:-.04em; }.jp-report-hero small { color:#696f7c; font-size:8px; }
.jp-report-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); gap:17px; margin-bottom:17px; }.jp-report-bars { padding:17px; display:grid; gap:17px; }.jp-report-bars div { display:grid; gap:7px; }.jp-report-bars label { display:flex; justify-content:space-between; color:#8c929f; font-size:9px; }.jp-report-bars label b { color:#dfe2e7; }.jp-report-bars span { height:7px; }
.jp-big-stat { display:grid; place-items:center; padding:22px 18px 14px; }.jp-big-stat strong { font-size:40px; letter-spacing:-.05em; background:linear-gradient(90deg,#ffb02d,#cb46bf); -webkit-background-clip:text; background-clip:text; color:transparent; }.jp-big-stat span { color:#737986; font-size:8px; }
.jp-report-list { display:grid; padding:0 17px 16px; }.jp-report-list div { display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--jp-line); color:#818794; font-size:9px; }.jp-report-list div:last-child { border-bottom:0; }.jp-report-list b { color:#d8dbe3; }

.jp-status.neutral { color:#a1a6b1; background:rgba(255,255,255,.05); }
.jp-status.yellow { color:#efd064; background:rgba(245,197,66,.09); }
.jp-status.red { color:#ff8f8f; background:rgba(239,68,68,.10); }
.jp-status.blue { color:#83aaff; background:rgba(79,140,255,.10); }
.jp-status.green { color:#75df96; background:rgba(34,197,94,.09); }

.jp-empty { padding:28px; text-align:center; color:#6f7582; font-size:10px; }.jp-empty.compact { padding:14px 0; text-align:left; }
.jp-muted-text { color:#6f7582; font-size:9px; }

/* Modais */
.jp-modal-backdrop { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:22px; background:rgba(2,3,5,.74); backdrop-filter:blur(8px); opacity:0; transition:.18s ease; }
.jp-modal-backdrop.is-open { opacity:1; }
.jp-modal-backdrop[hidden] { display:none; }
.jp-modal { width:min(760px,100%); max-height:min(88vh,900px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; border:1px solid rgba(255,255,255,.11); border-radius:18px; overflow:hidden; background:#14161d; box-shadow:0 32px 90px rgba(0,0,0,.58); transform:translateY(8px) scale(.99); transition:.18s ease; }
.jp-modal-backdrop.is-open .jp-modal { transform:none; }
.jp-modal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:70px; padding:14px 18px; border-bottom:1px solid var(--jp-line); }.jp-modal-eyebrow { color:#9365a4; font-size:8px; text-transform:uppercase; letter-spacing:.10em; font-weight:900; }.jp-modal-head h2 { margin:3px 0 0; font-size:16px; }
.jp-icon-button { width:34px; height:34px; border:1px solid var(--jp-line); border-radius:10px; background:#1a1c24; color:#a7acb7; cursor:pointer; font-size:20px; line-height:1; }.jp-icon-button:hover { color:#fff; }
.jp-modal-body { overflow:auto; padding:18px; }.jp-modal-foot { min-height:62px; display:flex; justify-content:flex-end; align-items:center; gap:8px; padding:11px 18px; border-top:1px solid var(--jp-line); background:#11131a; }.jp-modal-foot:empty { display:none; }
.jp-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.jp-detail-grid.four { grid-template-columns:repeat(4,1fr); }.jp-detail-grid > div { padding:11px 12px; border:1px solid var(--jp-line); border-radius:10px; background:#181a22; }.jp-detail-grid span { display:block; color:#676d7a; font-size:7px; text-transform:uppercase; letter-spacing:.06em; }.jp-detail-grid strong { display:block; margin-top:4px; color:#d9dce3; font-size:10px; }
.jp-detail-note { margin-top:12px; padding:12px 13px; border:1px solid var(--jp-line); border-radius:10px; background:#181a22; }.jp-detail-note > span { color:#676d7a; font-size:7px; text-transform:uppercase; letter-spacing:.06em; }.jp-detail-note p { margin:5px 0 0; color:#aaaeba; font-size:10px; line-height:1.55; }
.jp-modal-section { margin-top:17px; }.jp-modal-section > header span { color:#7f5d89; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.jp-modal-section > header h3 { margin:3px 0 10px; font-size:11px; }
.jp-modal-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }.jp-modal-kpis > div { padding:12px; border:1px solid var(--jp-line); border-radius:10px; background:#181a22; }.jp-modal-kpis span { display:block; color:#686e7b; font-size:7px; text-transform:uppercase; }.jp-modal-kpis strong { display:block; margin-top:4px; font-size:11px; }
.jp-event-modal-hero { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid var(--jp-line); }.jp-event-modal-hero > div > span { color:#ffa20a; font-size:8px; font-weight:900; }.jp-event-modal-hero h3 { margin:3px 0 0; font-size:16px; }.jp-event-modal-hero p { margin:4px 0 0; color:#787e8b; font-size:9px; }
.jp-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.jp-form-grid label { display:grid; gap:6px; }.jp-form-grid label.span-2 { grid-column:1/-1; }.jp-form-grid label > span { color:#777d8a; font-size:8px; font-weight:800; }.jp-form-grid input,.jp-form-grid select,.jp-form-grid textarea { width:100%; min-height:42px; border:1px solid var(--jp-line); border-radius:10px; background:#191b23; color:#e6e8ed; outline:0; padding:9px 11px; font-size:10px; }.jp-form-grid textarea { resize:vertical; }.jp-form-grid input:focus,.jp-form-grid select:focus,.jp-form-grid textarea:focus { border-color:rgba(255,162,10,.34); box-shadow:0 0 0 3px rgba(255,162,10,.055); }
.jp-comments { display:grid; gap:8px; }.jp-comment { padding:10px 11px; border-radius:10px; border:1px solid var(--jp-line); background:#181a22; }.jp-comment strong { font-size:9px; }.jp-comment time { margin-left:7px; color:#666c79; font-size:7px; }.jp-comment p { margin:5px 0 0; color:#a7abb6; font-size:9px; line-height:1.45; }.jp-comment-form { display:flex; gap:7px; margin-top:9px; }.jp-comment-form input { flex:1; min-width:0; min-height:35px; border:1px solid var(--jp-line); border-radius:9px; background:#191b23; color:#eee; padding:0 10px; outline:0; font-size:9px; }
.jp-check-list { display:grid; border:1px solid var(--jp-line); border-radius:11px; overflow:hidden; }.jp-check-row { display:block; cursor:pointer; border-bottom:1px solid var(--jp-line); }.jp-check-row:last-child { border-bottom:0; }.jp-check-row input { position:absolute; opacity:0; pointer-events:none; }.jp-check-row span { display:flex; align-items:center; gap:9px; min-height:41px; padding:0 11px; color:#aeb2bd; font-size:9px; }.jp-check-row span i { width:17px; height:17px; border:1px solid rgba(255,255,255,.14); border-radius:5px; position:relative; flex:0 0 17px; }.jp-check-row input:checked + span { color:#dfe2e8; background:rgba(34,197,94,.025); }.jp-check-row input:checked + span i { background:#22c55e; border-color:#22c55e; }.jp-check-row input:checked + span i::after { content:"✓"; position:absolute; inset:0; display:grid; place-items:center; color:#07130b; font-size:10px; font-weight:900; }
.jp-progress-editor { margin-top:14px; padding:12px; border:1px solid var(--jp-line); border-radius:10px; background:#181a22; }.jp-progress-editor > div { display:flex; justify-content:space-between; gap:8px; align-items:center; }.jp-progress-editor span { color:#777d8a; font-size:8px; }.jp-progress-editor strong { font-size:14px; }.jp-progress-editor input[type=range] { width:100%; margin-top:10px; accent-color:#ffa20a; }
.jp-file-list { display:flex; flex-wrap:wrap; gap:6px; }.jp-file-pill { padding:7px 9px; border:1px solid var(--jp-line); border-radius:8px; background:#181a22; color:#a9aeba; font-size:8px; }.jp-evidence-form { display:flex; align-items:center; gap:8px; margin-top:10px; }.jp-evidence-form input[type=file] { flex:1; min-width:0; color:#747a87; font-size:8px; }
.jp-file-preview { margin-top:14px; min-height:180px; display:grid; place-items:center; align-content:center; gap:7px; text-align:center; border:1px dashed rgba(255,255,255,.12); border-radius:12px; background:#181a22; }.jp-file-preview > span { width:45px; height:45px; display:grid; place-items:center; border-radius:10px; background:rgba(239,68,68,.12); color:#ff9c9c; font-weight:900; font-size:10px; }.jp-file-preview strong { font-size:10px; }.jp-file-preview small { color:#6d7380; font-size:8px; }

/* Painéis laterais */
.jp-sidepanel-backdrop { position:fixed; inset:0; z-index:1090; background:rgba(0,0,0,.36); opacity:0; transition:.18s; }.jp-sidepanel-backdrop.is-open { opacity:1; }.jp-sidepanel-backdrop[hidden] { display:none; }
.jp-sidepanel { position:fixed; top:0; right:0; bottom:0; z-index:1100; width:min(390px,92vw); transform:translateX(105%); transition:.2s ease; border-left:1px solid var(--jp-line); background:#12141b; box-shadow:-22px 0 70px rgba(0,0,0,.38); }.jp-sidepanel.is-open { transform:none; }
.jp-sidepanel-head { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:75px; padding:14px 16px; border-bottom:1px solid var(--jp-line); }.jp-sidepanel-head span { color:#7e5f8a; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.jp-sidepanel-head h2 { margin:3px 0 0; font-size:15px; }.jp-sidepanel-body { overflow:auto; height:calc(100% - 75px); }
.jp-notification-actions { padding:10px 12px; border-bottom:1px solid var(--jp-line); }.jp-notification-actions button { border:0; background:transparent; color:#9a9fab; cursor:pointer; font-size:8px; font-weight:800; }.jp-notification-item { width:100%; border:0; border-bottom:1px solid var(--jp-line); background:transparent; color:inherit; cursor:pointer; display:grid; grid-template-columns:9px minmax(0,1fr); gap:10px; padding:14px; text-align:left; }.jp-notification-item:hover { background:rgba(255,255,255,.025); }.jp-notification-item.unread { background:rgba(255,162,10,.025); }.jp-notification-item > i { width:7px; height:7px; border-radius:50%; margin-top:3px; background:#4f8cff; }.jp-notification-item > i.urgent { background:#ef4444; }.jp-notification-item > i.attention { background:#f5c542; }.jp-notification-item strong { display:block; font-size:9px; }.jp-notification-item p { margin:4px 0 0; color:#787e8b; font-size:8px; line-height:1.45; }
.jp-user-panel { width:min(330px,92vw); bottom:auto; top:70px; right:13px; border:1px solid var(--jp-line); border-radius:14px; box-shadow:0 25px 70px rgba(0,0,0,.45); overflow:hidden; transform:translateY(-8px) scale(.98); opacity:0; visibility:hidden; }.jp-user-panel.is-open { transform:none; opacity:1; visibility:visible; }.jp-user-panel-profile { display:flex; gap:10px; align-items:center; padding:14px; border-bottom:1px solid var(--jp-line); }.jp-avatar-large { width:42px; height:42px; }.jp-user-panel-profile strong { display:block; font-size:10px; }.jp-user-panel-profile span:not(.jp-avatar) { color:#717785; font-size:8px; }.jp-user-panel-actions { display:grid; }.jp-user-panel-actions button,.jp-user-panel-actions a { min-height:45px; border:0; border-bottom:1px solid var(--jp-line); background:transparent; color:#aab0bb; display:flex; align-items:center; gap:10px; padding:0 14px; cursor:pointer; text-align:left; font-size:9px; font-weight:800; }.jp-user-panel-actions button:hover,.jp-user-panel-actions a:hover { background:rgba(255,255,255,.03); color:#fff; }.jp-user-panel-actions .jp-icon { width:16px; height:16px; }

.jp-toast-stack { position:fixed; right:18px; bottom:18px; z-index:1300; display:grid; gap:8px; width:min(330px,calc(100vw - 36px)); }.jp-toast { opacity:0; transform:translateY(8px); transition:.2s; display:flex; gap:9px; align-items:center; min-height:48px; padding:10px 12px; border:1px solid var(--jp-line); border-radius:11px; background:#1a1c24; box-shadow:0 18px 50px rgba(0,0,0,.35); color:#d8dbe2; font-size:9px; }.jp-toast.show { opacity:1; transform:none; }.jp-toast-dot { width:8px; height:8px; border-radius:50%; background:#22c55e; }.jp-toast.error .jp-toast-dot { background:#ef4444; }

@media (max-width: 1220px) {
  .jp-app-shell { --jp-sidebar-width:248px; }
  .jp-app-shell .jp-brand img { width:190px; }
  .jp-dashboard-hero { grid-template-columns:1fr; }
  .jp-dashboard-health { max-width:620px; }
  .jp-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .jp-kpi-grid.jp-kpi-4,.jp-event-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jp-two-col,.jp-dashboard-grid,.jp-live-layout,.jp-report-grid { grid-template-columns:1fr; }
  .jp-assembly-grid,.jp-vehicle-grid,.jp-supplier-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jp-report-hero { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 900px) {
  .jp-app-shell { display:block; }
  .jp-app-shell .jp-sidebar { position:fixed; left:0; top:0; bottom:0; width:286px; height:100vh; transform:translateX(-102%); transition:.2s ease; box-shadow:22px 0 65px rgba(0,0,0,.55); z-index:100; }
  body.jp-menu-open .jp-app-shell .jp-sidebar { transform:none; }
  body.jp-menu-open::after { content:""; position:fixed; inset:0; z-index:90; background:rgba(0,0,0,.45); }
  .jp-app-topbar { padding:0 14px; }
  .jp-mobile-toggle { display:grid; place-items:center; flex:0 0 42px; }
  .jp-global-search-wrap { width:190px; }
  .jp-user-text,.jp-user-chevron,.jp-notif-label { display:none; }
  .jp-app-content { padding:16px; }
  .jp-live-strip { grid-template-columns:repeat(2,1fr); }
  .jp-live-strip > div { border-bottom:1px solid var(--jp-line); }
  .jp-live-strip > div:first-child { grid-column:1/-1; }
  .jp-live-strip > div:nth-last-child(-n+2) { border-bottom:0; }
  .jp-assembly-grid,.jp-vehicle-grid,.jp-supplier-grid { grid-template-columns:1fr 1fr; }
  .jp-chat-shell { height:calc(100vh - 105px); grid-template-columns:260px minmax(0,1fr); }
}

@media (max-width: 680px) {
  .jp-title-wrap p { display:none; }
  .jp-global-search-wrap { display:none; }
  .jp-app-topbar { height:64px; }
  .jp-app-content { padding:12px; }
  .jp-dashboard-hero { padding:20px; border-radius:17px; }
  .jp-dashboard-hero h2,.jp-live-command-head h2 { font-size:28px; }
  .jp-dashboard-health { grid-template-columns:112px 1fr; }.jp-health-ring { width:106px; height:106px; }.jp-health-ring strong { font-size:23px; }
  .jp-kpi-grid,.jp-kpi-grid.jp-kpi-4,.jp-event-summary { grid-template-columns:1fr 1fr; gap:8px; }
  .jp-kpi { padding:13px; }.jp-kpi > strong { font-size:22px; }
  .jp-two-col,.jp-live-layout,.jp-report-grid { margin-top:12px; gap:12px; }
  .jp-operation-row { grid-template-columns:minmax(0,1fr) auto; }.jp-operation-row > .jp-op-progress { grid-column:1/-1; display:grid; grid-template-columns:35px 1fr; text-align:left; }.jp-op-progress b { text-align:left; }
  .jp-action-grid { grid-template-columns:1fr; }
  .jp-page-toolbar,.jp-live-command-head { align-items:flex-start; flex-direction:column; }.jp-page-toolbar h2 { font-size:21px; }.jp-live-command-actions { width:100%; }.jp-live-command-actions .jp-select { flex:1; min-width:0; }
  .jp-live-strip { grid-template-columns:1fr 1fr; }.jp-live-strip > div:first-child { grid-column:1/-1; }.jp-live-strip > div { padding:11px; }
  .jp-timeline-row { grid-template-columns:40px 12px minmax(0,1fr); padding:8px 12px; }.jp-timeline-row .jp-more-btn { grid-column:3; justify-self:start; padding-left:0; }
  .jp-live-demand { grid-template-columns:60px minmax(0,1fr); }.jp-live-demand > b { grid-column:2; text-align:left; }.jp-show-row { grid-template-columns:40px minmax(0,1fr); }.jp-show-row > .jp-status { grid-column:2; }
  .jp-assembly-overview { grid-template-columns:1fr 1fr; }.jp-assembly-grid,.jp-vehicle-grid,.jp-supplier-grid { grid-template-columns:1fr; }
  .jp-chat-shell { height:auto; min-height:calc(100vh - 100px); display:block; }.jp-chat-channels { border-right:0; border-bottom:1px solid var(--jp-line); }.jp-channel-list { max-height:180px; }.jp-chat-main { min-height:540px; }.jp-message { max-width:92%; }.jp-message-form > div > span { display:none; }
  .jp-report-hero { grid-template-columns:1fr 1fr; }.jp-report-hero strong { font-size:18px; }
  .jp-modal-backdrop { padding:8px; align-items:end; }.jp-modal { max-height:92vh; border-radius:17px 17px 8px 8px; }.jp-detail-grid,.jp-detail-grid.four,.jp-modal-kpis { grid-template-columns:1fr 1fr; }.jp-form-grid { grid-template-columns:1fr; }.jp-form-grid label.span-2 { grid-column:auto; }
  .jp-user-panel { top:66px; right:8px; }
}

@media print {
  .jp-sidebar,.jp-topbar,.jp-accent-line,.jp-page-toolbar .jp-toolbar-actions,.jp-toast-stack,.jp-sidepanel,.jp-sidepanel-backdrop,.jp-modal-backdrop { display:none !important; }
  body,.jp-main,.jp-app-content,.jp-card,.jp-kpi,.jp-report-hero > div { background:#fff !important; color:#111 !important; box-shadow:none !important; }
  .jp-app-content { max-width:none; padding:0; }.jp-card,.jp-kpi,.jp-report-hero > div { border-color:#ddd !important; break-inside:avoid; }
  .jp-card-head h3,.jp-kpi strong,.jp-table td,.jp-table th,.jp-report-hero strong { color:#111 !important; }
  .jp-table { min-width:0; }.jp-table th,.jp-table td { color:#333 !important; border-color:#ddd !important; }
}
.jp-filter-static { min-height:31px; padding:0 11px; border-radius:999px; display:inline-flex; align-items:center; color:#111; background:#ffa20a; border:1px solid #ffa20a; font-size:9px; font-weight:800; }
.jp-wa-bridge { margin-bottom:14px; border:1px solid rgba(34,197,94,.13); border-radius:15px; overflow:hidden; background:linear-gradient(145deg,rgba(34,197,94,.035),rgba(21,23,32,.95)); }
.jp-wa-bridge > header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:14px 16px; border-bottom:1px solid var(--jp-line); }
.jp-wa-bridge > header span,.jp-wa-empty span { color:#60c77e; font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.jp-wa-bridge > header h3 { margin:3px 0 0; font-size:12px; }.jp-wa-bridge > header p { margin:4px 0 0; color:#747a87; font-size:8px; }.jp-wa-bridge > header > b { color:#79df98; font-size:9px; white-space:nowrap; }
.jp-wa-list { display:grid; }.jp-wa-item { display:grid; grid-template-columns:35px minmax(0,1fr) auto; gap:10px; align-items:center; padding:12px 15px; border-bottom:1px solid var(--jp-line); }.jp-wa-item:last-child { border-bottom:0; }.jp-wa-avatar { width:33px; height:33px; display:grid; place-items:center; border-radius:10px; background:rgba(34,197,94,.10); color:#72dc92; font-size:8px; font-weight:900; }.jp-wa-item strong { display:block; font-size:9px; }.jp-wa-item small { display:block; color:#696f7c; font-size:7px; margin-top:2px; }.jp-wa-item p { margin:5px 0 0; color:#a7abb6; font-size:9px; line-height:1.4; }
.jp-wa-empty { padding:14px 16px; }.jp-wa-empty strong { display:block; margin-top:3px; font-size:10px; }.jp-wa-empty small { display:block; margin-top:3px; color:#747a87; font-size:8px; }
@media (max-width:680px){.jp-wa-item{grid-template-columns:35px minmax(0,1fr)}.jp-wa-item .jp-btn{grid-column:2;justify-self:start}}

/* =========================================================
   QUADRO DE DEMANDAS / TV
   ========================================================= */
.jp-app-nav .jp-board-link {
  width: 100%; color: #c8ccd7; background: transparent; display:flex; align-items:center; gap:11px;
  min-height:43px; padding:10px 11px; border-radius:12px; font-size:13px; font-weight:720; position:relative; transition:.18s ease;
}
.jp-app-nav .jp-board-link:hover { background: rgba(255,255,255,.045); color:#fff; transform:translateX(2px); }
.jp-app-nav .jp-board-link span { min-width:0; flex:1; }

.jp-board-shell { min-height:100vh; background: radial-gradient(circle at 78% 10%, rgba(195,24,168,.12), transparent 28%), radial-gradient(circle at 14% 0, rgba(255,162,10,.10), transparent 30%), #0b0c10; }
.jp-board-topbar {
  display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 24px; border-bottom:1px solid var(--jp-line);
  background:rgba(11,12,16,.92); backdrop-filter: blur(16px); position:sticky; top:0; z-index:20;
}
.jp-board-brand { display:flex; align-items:center; gap:16px; min-width:0; }
.jp-board-brand img { width:130px; object-fit:contain; }
.jp-board-brand span { display:block; color:#ffcb7b; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.jp-board-brand h1 { margin:4px 0 0; font-size:24px; letter-spacing:-.03em; }
.jp-board-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.jp-board-user { color:#9aa0ad; font-size:12px; font-weight:700; padding-right:4px; }
.jp-board-main { padding:22px; }
.jp-board-summary { display:grid; gap:14px; margin-bottom:18px; }
.jp-board-summary-head { display:flex; align-items:end; justify-content:space-between; gap:18px; }
.jp-board-summary-head h2 { margin:4px 0 6px; font-size:34px; letter-spacing:-.04em; }
.jp-board-summary-head p { margin:0; color:#98a0af; }
.jp-board-summary-head span { color:#ffcf83; font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.11em; }
.jp-board-clock { text-align:right; min-width:180px; }
.jp-board-clock b { display:block; font-size:34px; line-height:1; letter-spacing:-.04em; }
.jp-board-clock small { color:#9da3b2; font-size:12px; }
.jp-board-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.jp-board-metric {
  background:linear-gradient(145deg, #171922 0%, #11131a 100%); border:1px solid var(--jp-line); border-radius:18px; padding:16px 18px;
}
.jp-board-metric span { display:block; color:#9aa0ad; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.jp-board-metric strong { display:block; margin-top:10px; font-size:34px; line-height:1; letter-spacing:-.04em; }
.jp-board-metric small { display:block; margin-top:6px; color:#747c8b; font-size:12px; }
.jp-board-metric.red { border-color: rgba(239,68,68,.26); box-shadow: inset 0 0 0 1px rgba(239,68,68,.04); }
.jp-board-metric.yellow { border-color: rgba(245,197,66,.24); }
.jp-board-metric.orange { border-color: rgba(255,140,20,.24); }
.jp-board-metric.green { border-color: rgba(34,197,94,.22); }
.jp-board-columns { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:start; }
.jp-board-column {
  min-width:0; background: rgba(17,19,26,.92); border:1px solid var(--jp-line); border-radius:20px; overflow:hidden; min-height:calc(100vh - 260px);
}
.jp-board-column > header {
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 16px; border-bottom:1px solid var(--jp-line);
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.jp-board-column > header h3 { margin:0; font-size:14px; }
.jp-board-column > header b {
  min-width:28px; height:28px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:rgba(255,255,255,.06); font-size:12px;
}
.jp-board-column.critical > header { background: linear-gradient(90deg, rgba(239,68,68,.14), rgba(255,140,20,.10)); }
.jp-board-column.active > header { background: linear-gradient(90deg, rgba(79,140,255,.14), rgba(79,140,255,.06)); }
.jp-board-column.waiting > header { background: linear-gradient(90deg, rgba(245,197,66,.13), rgba(245,197,66,.05)); }
.jp-board-column.new > header { background: linear-gradient(90deg, rgba(34,197,94,.12), rgba(34,197,94,.05)); }
.jp-board-column-body { display:grid; gap:12px; padding:14px; max-height:calc(100vh - 330px); overflow:auto; }
.jp-board-empty {
  min-height:140px; display:grid; place-items:center; border:1px dashed rgba(255,255,255,.08); border-radius:16px; color:#808896; font-size:13px; text-align:center; padding:18px;
}
.jp-demand-tile {
  display:grid; gap:12px; padding:14px; border-radius:18px; border:1px solid rgba(255,255,255,.08); background:linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  box-shadow: 0 10px 22px rgba(0,0,0,.18);
}
.jp-demand-tile.red { border-color: rgba(239,68,68,.32); background: linear-gradient(145deg, rgba(239,68,68,.12), rgba(255,255,255,.03)); }
.jp-demand-tile.orange { border-color: rgba(255,140,20,.32); background: linear-gradient(145deg, rgba(255,140,20,.12), rgba(255,255,255,.03)); }
.jp-demand-tile.yellow { border-color: rgba(245,197,66,.28); background: linear-gradient(145deg, rgba(245,197,66,.10), rgba(255,255,255,.03)); }
.jp-demand-tile.blue { border-color: rgba(79,140,255,.28); background: linear-gradient(145deg, rgba(79,140,255,.10), rgba(255,255,255,.03)); }
.jp-demand-tile.green { border-color: rgba(34,197,94,.24); background: linear-gradient(145deg, rgba(34,197,94,.09), rgba(255,255,255,.03)); }
.jp-demand-tile header { display:flex; align-items:start; justify-content:space-between; gap:10px; }
.jp-demand-num { display:inline-flex; color:#ffcd7d; font-size:10px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; margin-bottom:8px; }
.jp-demand-tile h3 { margin:0; font-size:16px; line-height:1.25; letter-spacing:-.02em; }
.jp-demand-tile-body p { margin:0; color:#c9ced8; font-size:13px; line-height:1.55; }
.jp-demand-meta { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.jp-demand-meta span { display:grid; gap:4px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.05); border-radius:12px; padding:10px; font-size:12px; color:#dbe0e8; }
.jp-demand-meta b { color:#8d95a4; font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.jp-demand-tile footer { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; }
.jp-demand-deadline { display:inline-flex; align-items:center; gap:6px; color:#b5bdca; }
.jp-demand-deadline::before { content:'Prazo'; color:#77808f; text-transform:uppercase; letter-spacing:.08em; font-size:10px; font-weight:800; }
.jp-demand-tile footer strong { font-size:12px; letter-spacing:.01em; }

@media (max-width: 1380px){
  .jp-board-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jp-board-column { min-height:unset; }
  .jp-board-column-body { max-height:none; }
}
@media (max-width: 980px){
  .jp-board-topbar, .jp-board-summary-head { flex-direction:column; align-items:flex-start; }
  .jp-board-clock { text-align:left; }
  .jp-board-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jp-board-columns { grid-template-columns:1fr; }
  .jp-demand-meta { grid-template-columns:1fr; }
}
@media (max-width: 640px){
  .jp-board-topbar { padding:14px 16px; }
  .jp-board-brand img { width:108px; }
  .jp-board-brand h1 { font-size:20px; }
  .jp-board-main { padding:16px; }
  .jp-board-metrics { grid-template-columns:1fr 1fr; }
}
@media (display-mode: fullscreen) {
  .jp-board-topbar { padding:14px 18px; }
}

/* =========================================================
   GESTÃO DE USUÁRIOS
   ========================================================= */
.jp-status.orange { color:#ffb35a; background:rgba(255,140,20,.10); }
.jp-user-cell { display:flex; align-items:center; gap:10px; min-width:230px; }
.jp-user-cell .jp-avatar { width:34px; height:34px; flex:0 0 34px; border-radius:10px; font-size:10px; }
.jp-user-cell strong { display:block; color:#e7e9ef; font-size:10px; }
.jp-user-cell small { display:block; margin-top:3px; color:#707684; font-size:8px; }
.jp-table-actions { display:flex; align-items:center; gap:9px; white-space:nowrap; }
.jp-more-btn.danger { color:#ff8f8f; }
.jp-more-btn.danger:hover { color:#ffb2b2; }
.jp-user-security-note { color:#6f7582; font-size:9px; }
.jp-form-note { border:1px solid rgba(255,162,10,.14); background:rgba(255,162,10,.045); border-radius:12px; padding:11px 12px; color:#9da3b2; font-size:9px; line-height:1.5; }
.jp-form-grid label small { display:block; margin-top:5px; color:#727987; font-size:8px; line-height:1.4; }

/* Acesso rápido ao quadro de demandas no dashboard */
.jp-action-grid .jp-action-link {
  border:1px solid var(--jp-line); background:rgba(255,255,255,.02); color:inherit; min-height:71px; border-radius:12px;
  display:flex; align-items:center; gap:10px; text-align:left; padding:12px; transition:.18s ease;
}
.jp-action-grid .jp-action-link:hover { border-color:rgba(255,162,10,.22); background:rgba(255,162,10,.035); transform:translateY(-1px); }
.jp-action-grid .jp-action-link > b { width:31px; height:31px; display:grid; place-items:center; border-radius:9px; background:linear-gradient(135deg,rgba(255,162,10,.18),rgba(127,19,156,.18)); color:#f0c77d; font-size:9px; }
.jp-action-grid .jp-action-link strong { display:block; font-size:10px; }
.jp-action-grid .jp-action-link small { display:block; color:#727886; font-size:9px; margin-top:2px; }
.jp-action-grid .jp-action-wide { grid-column:1/-1; min-height:62px; background:linear-gradient(90deg,rgba(255,162,10,.055),rgba(127,19,156,.065)); }


/* =========================================================
   BARRA ADMINISTRATIVA DO WORDPRESS — SOMENTE ADMINISTRADOR
   ========================================================= */
body.admin-bar .jp-sidebar,
body.admin-bar .jp-app-shell .jp-sidebar {
  top: 32px;
  height: calc(100vh - 32px);
}
body.admin-bar .jp-topbar,
body.admin-bar .jp-app-topbar,
body.admin-bar .jp-board-topbar {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .jp-sidebar,
  body.admin-bar .jp-app-shell .jp-sidebar {
    top: 46px;
    height: calc(100vh - 46px);
  }
  body.admin-bar .jp-topbar,
  body.admin-bar .jp-app-topbar,
  body.admin-bar .jp-board-topbar {
    top: 46px;
  }
}

/* =========================================================
   QUADRO DE DEMANDAS TV — ROTAÇÃO AUTOMÁTICA v0.4.6
   ========================================================= */
.jp-board-col-head { display:flex; align-items:center; gap:8px; }
.jp-board-page {
  min-width:36px; height:24px; padding:0 8px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.06); color:#9ca4b2; font-size:10px; font-weight:850;
}
.jp-board-column-body {
  overflow:hidden !important;
  max-height:none !important;
  align-content:start;
}
.jp-demand-tile { animation: jp-board-card-in .34s ease both; }
.jp-demand-tile-body p {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
}
@keyframes jp-board-card-in {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:none; }
}

/* Tela cheia: nenhuma rolagem e nenhuma dependência de mouse. */
html.jp-board-fullscreen-root,
html.jp-board-fullscreen-root body,
body.jp-board-fullscreen-active { overflow:hidden !important; height:100% !important; }
html.jp-board-fullscreen-root { margin-top:0 !important; }
body.jp-board-fullscreen-active #wpadminbar { display:none !important; }
body.jp-board-fullscreen-active .jp-board-topbar { display:none !important; }
body.jp-board-fullscreen-active .jp-board-shell { height:100vh; min-height:100vh; overflow:hidden; }
body.jp-board-fullscreen-active .jp-accent-line { height:3px; }
body.jp-board-fullscreen-active .jp-board-main {
  height:calc(100vh - 3px); padding:12px 14px 14px; overflow:hidden; display:block;
}
body.jp-board-fullscreen-active .jp-demand-board-app {
  height:100%; min-height:0; display:grid; grid-template-rows:auto minmax(0,1fr); gap:10px;
}
body.jp-board-fullscreen-active .jp-board-summary { gap:8px; margin:0; }
body.jp-board-fullscreen-active .jp-board-summary-head { align-items:center; }
body.jp-board-fullscreen-active .jp-board-summary-head h2 { font-size:25px; margin:2px 0; }
body.jp-board-fullscreen-active .jp-board-summary-head p { display:none; }
body.jp-board-fullscreen-active .jp-board-summary-head span { font-size:9px; }
body.jp-board-fullscreen-active .jp-board-clock b { font-size:27px; }
body.jp-board-fullscreen-active .jp-board-clock small { font-size:10px; }
body.jp-board-fullscreen-active .jp-board-metrics { gap:8px; }
body.jp-board-fullscreen-active .jp-board-metric { padding:9px 12px; border-radius:13px; }
body.jp-board-fullscreen-active .jp-board-metric span { font-size:8px; }
body.jp-board-fullscreen-active .jp-board-metric strong { margin-top:4px; font-size:25px; }
body.jp-board-fullscreen-active .jp-board-metric small { display:none; }
body.jp-board-fullscreen-active .jp-board-columns {
  height:100%; min-height:0; gap:10px; align-items:stretch;
}
body.jp-board-fullscreen-active .jp-board-column {
  height:100%; min-height:0; border-radius:15px; display:grid; grid-template-rows:auto minmax(0,1fr);
}
body.jp-board-fullscreen-active .jp-board-column > header { padding:9px 11px; min-height:43px; }
body.jp-board-fullscreen-active .jp-board-column > header h3 { font-size:12px; }
body.jp-board-fullscreen-active .jp-board-column > header b { min-width:24px; height:24px; font-size:10px; }
body.jp-board-fullscreen-active .jp-board-column-body {
  height:100%; min-height:0; padding:9px; gap:8px; overflow:hidden !important;
}
body.jp-board-fullscreen-active .jp-demand-tile { padding:10px; gap:7px; border-radius:13px; box-shadow:none; }
body.jp-board-fullscreen-active .jp-demand-num { margin-bottom:4px; font-size:8px; }
body.jp-board-fullscreen-active .jp-demand-tile h3 { font-size:13px; line-height:1.2; }
body.jp-board-fullscreen-active .jp-demand-tile .jp-status { padding:4px 6px; font-size:8px; }
body.jp-board-fullscreen-active .jp-demand-tile-body p { font-size:10px; line-height:1.35; -webkit-line-clamp:1; }
body.jp-board-fullscreen-active .jp-demand-meta { gap:5px; margin-top:7px; }
body.jp-board-fullscreen-active .jp-demand-meta span { gap:2px; padding:6px 7px; border-radius:8px; font-size:9px; }
body.jp-board-fullscreen-active .jp-demand-meta b { font-size:7px; }
body.jp-board-fullscreen-active .jp-demand-tile footer { font-size:9px; }
body.jp-board-fullscreen-active .jp-demand-tile footer strong { font-size:9px; }
body.jp-board-fullscreen-active .jp-demand-deadline::before { font-size:7px; }
body.jp-board-fullscreen-active .jp-board-empty { min-height:100px; font-size:11px; }

@media (max-width:1380px) {
  body.jp-board-fullscreen-active .jp-board-columns { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* =========================================================
   ALERTA MÁXIMO DE ATRASO — v0.4.6
   Movimento concentrado no contorno para preservar a leitura.
   ========================================================= */
.jp-demand-tile.overdue {
  position: relative;
  isolation: isolate;
  border-width: 2px;
  border-color: #ff3b45;
  background: linear-gradient(145deg, rgba(94,14,22,.88), rgba(38,13,18,.97));
  box-shadow:
    0 0 0 1px rgba(255,77,85,.16),
    0 0 18px rgba(239,68,68,.24),
    0 12px 26px rgba(0,0,0,.24);
  animation: jp-board-card-in .34s ease both, jp-overdue-frame 1.55s ease-in-out infinite;
}
.jp-demand-tile.overdue::after {
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:calc(18px + 5px);
  border:1px solid rgba(255,48,58,.30);
  pointer-events:none;
  z-index:-1;
  animation:jp-overdue-aura 1.55s ease-in-out infinite;
}
.jp-demand-tile.overdue.critical-overdue {
  border-color:#ff1f2d;
  background:linear-gradient(145deg, rgba(112,9,19,.92), rgba(43,10,16,.98));
  box-shadow:
    0 0 0 1px rgba(255,50,62,.22),
    0 0 24px rgba(255,31,45,.34),
    0 12px 28px rgba(0,0,0,.28);
}
.jp-overdue-banner {
  display:flex;
  align-items:center;
  gap:8px;
  width:fit-content;
  min-height:24px;
  padding:4px 9px;
  border-radius:999px;
  color:#fff;
  background:#d71927;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 3px 12px rgba(145,0,10,.20);
  font-size:9px;
  font-weight:950;
  letter-spacing:.11em;
  line-height:1;
  text-transform:uppercase;
}
.jp-demand-tile.critical-overdue .jp-overdue-banner {
  background:#f01827;
  box-shadow:0 4px 15px rgba(255,24,39,.28);
}
.jp-overdue-dot {
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 0 rgba(255,255,255,.55);
  animation:jp-overdue-dot 1.2s ease-out infinite;
}
.jp-demand-tile.overdue .jp-demand-num { color:#ffc0c3; }
.jp-demand-tile.overdue .jp-demand-meta span {
  background:rgba(0,0,0,.13);
  border-color:rgba(255,255,255,.07);
}
.jp-demand-tile.overdue .jp-demand-tile-body p,
.jp-demand-tile.overdue h3,
.jp-demand-tile.overdue .jp-demand-meta span {
  text-shadow:0 1px 2px rgba(0,0,0,.32);
}
.jp-demand-tile .jp-overdue-text {
  color:#ffb6bb;
  font-weight:950;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.jp-demand-tile.critical-overdue .jp-overdue-text { color:#fff; }

@keyframes jp-overdue-frame {
  0%,100% {
    border-color:#ff3540;
    box-shadow:0 0 0 1px rgba(255,77,85,.14), 0 0 13px rgba(239,68,68,.20), 0 12px 26px rgba(0,0,0,.24);
  }
  50% {
    border-color:#ff6570;
    box-shadow:0 0 0 2px rgba(255,60,70,.23), 0 0 30px rgba(255,35,48,.46), 0 12px 26px rgba(0,0,0,.24);
  }
}
@keyframes jp-overdue-aura {
  0%,100% { opacity:.30; transform:scale(.995); }
  50% { opacity:.88; transform:scale(1.008); }
}
@keyframes jp-overdue-dot {
  0% { box-shadow:0 0 0 0 rgba(255,255,255,.56); }
  70% { box-shadow:0 0 0 6px rgba(255,255,255,0); }
  100% { box-shadow:0 0 0 0 rgba(255,255,255,0); }
}

body.jp-board-fullscreen-active .jp-demand-tile.overdue::after {
  inset:-3px;
  border-radius:calc(13px + 3px);
}
body.jp-board-fullscreen-active .jp-overdue-banner {
  min-height:19px;
  padding:3px 7px;
  gap:6px;
  font-size:7px;
}
body.jp-board-fullscreen-active .jp-overdue-dot {
  width:6px;
  height:6px;
  flex-basis:6px;
}
body.jp-board-fullscreen-active .jp-demand-tile .jp-overdue-text {
  font-size:9px;
}

@media (prefers-reduced-motion: reduce) {
  .jp-demand-tile.overdue,
  .jp-demand-tile.overdue::after,
  .jp-overdue-dot {
    animation:none !important;
  }
  .jp-demand-tile.overdue {
    box-shadow:0 0 0 2px rgba(255,65,75,.28), 0 0 24px rgba(239,68,68,.30);
  }
}

/* =========================================================
   REFORÇO VISUAL DO ALERTA ATRASADO — v0.4.7
   Contorno grosso + duplo halo + trilho lateral, sem animar texto.
   ========================================================= */
.jp-demand-tile.overdue {
  border-width: 5px;
  border-color: #ff2635;
  padding: 12px;
  box-shadow:
    0 0 0 2px rgba(255,38,53,.34),
    0 0 0 5px rgba(150,0,13,.18),
    0 0 34px rgba(255,24,39,.40),
    0 14px 30px rgba(0,0,0,.30);
  animation: jp-board-card-in .34s ease both, jp-overdue-frame-strong 1.45s ease-in-out infinite;
}

.jp-demand-tile.overdue::after {
  inset: -10px;
  border-radius: calc(18px + 10px);
  border: 3px solid rgba(255,33,47,.58);
  box-shadow:
    0 0 0 3px rgba(255,35,49,.10),
    0 0 28px rgba(255,22,37,.28);
  animation: jp-overdue-aura-strong 1.45s ease-in-out infinite;
}

.jp-demand-tile.overdue::before {
  content:"";
  position:absolute;
  left:-9px;
  top:12px;
  bottom:12px;
  width:8px;
  border-radius:999px;
  background:linear-gradient(180deg,#ff6973 0%,#ff1528 45%,#a90012 100%);
  box-shadow:
    0 0 10px rgba(255,51,66,.85),
    0 0 24px rgba(255,24,39,.50);
  pointer-events:none;
  z-index:2;
  animation:jp-overdue-rail 1.45s ease-in-out infinite;
}

.jp-demand-tile.overdue.critical-overdue {
  border-width:6px;
  border-color:#ff1025;
  box-shadow:
    0 0 0 2px rgba(255,16,37,.46),
    0 0 0 6px rgba(138,0,12,.22),
    0 0 44px rgba(255,10,30,.52),
    0 15px 34px rgba(0,0,0,.34);
}

.jp-demand-tile.overdue.critical-overdue::after {
  border-color:rgba(255,20,40,.76);
  box-shadow:
    0 0 0 4px rgba(255,20,40,.12),
    0 0 38px rgba(255,10,30,.42);
}

.jp-demand-tile.overdue .jp-overdue-banner {
  border-width:2px;
  border-color:rgba(255,255,255,.24);
  box-shadow:0 0 0 2px rgba(255,28,43,.13), 0 5px 18px rgba(125,0,12,.26);
}

@keyframes jp-overdue-frame-strong {
  0%,100% {
    border-color:#ff1f31;
    box-shadow:
      0 0 0 2px rgba(255,38,53,.30),
      0 0 0 5px rgba(150,0,13,.15),
      0 0 24px rgba(255,24,39,.30),
      0 14px 30px rgba(0,0,0,.30);
  }
  50% {
    border-color:#ff6b75;
    box-shadow:
      0 0 0 4px rgba(255,55,69,.52),
      0 0 0 8px rgba(175,0,17,.20),
      0 0 52px rgba(255,20,38,.66),
      0 14px 30px rgba(0,0,0,.30);
  }
}

@keyframes jp-overdue-aura-strong {
  0%,100% { opacity:.38; transform:scale(.997); }
  50% { opacity:1; transform:scale(1.012); }
}

@keyframes jp-overdue-rail {
  0%,100% {
    opacity:.78;
    box-shadow:0 0 10px rgba(255,51,66,.70), 0 0 20px rgba(255,24,39,.38);
  }
  50% {
    opacity:1;
    box-shadow:0 0 16px rgba(255,80,92,.98), 0 0 34px rgba(255,20,38,.68);
  }
}

/* No modo TV, o alerta ganha mais presença ainda, sem tocar no conteúdo textual. */
body.jp-board-fullscreen-active .jp-demand-tile.overdue {
  border-width:5px;
  padding:8px;
  box-shadow:
    0 0 0 3px rgba(255,38,53,.42),
    0 0 0 7px rgba(145,0,13,.18),
    0 0 40px rgba(255,20,37,.50),
    0 10px 22px rgba(0,0,0,.30);
}
body.jp-board-fullscreen-active .jp-demand-tile.overdue.critical-overdue {
  border-width:6px;
}
body.jp-board-fullscreen-active .jp-demand-tile.overdue::after {
  inset:-8px;
  border-width:3px;
  border-radius:calc(13px + 8px);
}
body.jp-board-fullscreen-active .jp-demand-tile.overdue::before {
  left:-8px;
  top:8px;
  bottom:8px;
  width:7px;
}

@media (prefers-reduced-motion: reduce) {
  .jp-demand-tile.overdue {
    border-width:5px;
    box-shadow:
      0 0 0 3px rgba(255,50,64,.46),
      0 0 0 7px rgba(145,0,13,.20),
      0 0 36px rgba(239,68,68,.42);
  }
  .jp-demand-tile.overdue::after,
  .jp-demand-tile.overdue::before {
    animation:none !important;
  }
}

/* =========================================================
   QUADRO TV — TIPOGRAFIA PARA LEITURA À DISTÂNCIA v0.4.8
   Mantém o mesmo design, mas prioriza legibilidade em TV alta/longe.
   ========================================================= */
body.jp-board-fullscreen-active .jp-board-main {
  padding: 14px 18px 16px;
}
body.jp-board-fullscreen-active .jp-board-summary-head h2 {
  font-size: clamp(29px, 1.8vw, 38px);
  line-height: 1.05;
}
body.jp-board-fullscreen-active .jp-board-summary-head span {
  font-size: clamp(11px, .68vw, 14px);
}
body.jp-board-fullscreen-active .jp-board-clock b {
  font-size: clamp(31px, 1.9vw, 42px);
}
body.jp-board-fullscreen-active .jp-board-clock small {
  font-size: clamp(11px, .68vw, 14px);
}
body.jp-board-fullscreen-active .jp-board-metric {
  padding: 11px 14px;
}
body.jp-board-fullscreen-active .jp-board-metric span {
  font-size: clamp(10px, .62vw, 13px);
}
body.jp-board-fullscreen-active .jp-board-metric strong {
  margin-top: 5px;
  font-size: clamp(28px, 1.7vw, 38px);
}
body.jp-board-fullscreen-active .jp-board-column > header {
  padding: 11px 13px;
  min-height: 50px;
}
body.jp-board-fullscreen-active .jp-board-column > header h3 {
  font-size: clamp(15px, .9vw, 19px);
  line-height: 1.15;
}
body.jp-board-fullscreen-active .jp-board-column > header b {
  min-width: 30px;
  height: 30px;
  font-size: clamp(11px, .68vw, 14px);
}
body.jp-board-fullscreen-active .jp-board-page {
  font-size: clamp(10px, .62vw, 13px);
  padding: 5px 8px;
}
body.jp-board-fullscreen-active .jp-board-column-body {
  gap: 12px;
  padding: 12px;
}
body.jp-board-fullscreen-active .jp-demand-tile {
  padding: 14px;
  gap: 10px;
  border-radius: 15px;
}
body.jp-board-fullscreen-active .jp-demand-num {
  margin-bottom: 6px;
  font-size: clamp(10px, .64vw, 13px);
}
body.jp-board-fullscreen-active .jp-demand-tile h3 {
  font-size: clamp(19px, 1.08vw, 24px);
  line-height: 1.18;
}
body.jp-board-fullscreen-active .jp-demand-tile .jp-status {
  padding: 6px 8px;
  font-size: clamp(10px, .62vw, 13px);
}
body.jp-board-fullscreen-active .jp-demand-tile-body p {
  font-size: clamp(13px, .78vw, 17px);
  line-height: 1.42;
  -webkit-line-clamp: 2;
}
body.jp-board-fullscreen-active .jp-demand-meta {
  gap: 8px;
  margin-top: 9px;
}
body.jp-board-fullscreen-active .jp-demand-meta span {
  gap: 3px;
  padding: 8px 9px;
  border-radius: 9px;
  font-size: clamp(11.5px, .7vw, 15px);
  line-height: 1.25;
}
body.jp-board-fullscreen-active .jp-demand-meta b {
  font-size: clamp(9px, .56vw, 12px);
}
body.jp-board-fullscreen-active .jp-demand-tile footer {
  font-size: clamp(11.5px, .72vw, 15px);
}
body.jp-board-fullscreen-active .jp-demand-tile footer strong {
  font-size: clamp(12px, .76vw, 16px);
}
body.jp-board-fullscreen-active .jp-demand-deadline::before {
  font-size: clamp(9px, .56vw, 12px);
}
body.jp-board-fullscreen-active .jp-overdue-banner {
  min-height: 30px;
  padding: 6px 9px;
  font-size: clamp(10px, .64vw, 13px);
}
body.jp-board-fullscreen-active .jp-overdue-dot {
  width: 10px;
  height: 10px;
}
body.jp-board-fullscreen-active .jp-demand-tile .jp-overdue-text {
  font-size: clamp(13px, .8vw, 17px);
}
body.jp-board-fullscreen-active .jp-board-empty {
  min-height: 120px;
  font-size: clamp(13px, .78vw, 17px);
}

/* Em Full HD, a prioridade é leitura: dois cards altos por coluna. */
@media (min-width: 1500px) and (max-height: 1300px) {
  body.jp-board-fullscreen-active .jp-board-columns {
    gap: 14px;
  }
  body.jp-board-fullscreen-active .jp-board-column-body {
    align-content: start;
  }
}

/* =========================================================
   QUADRO TV — LEITURA À DISTÂNCIA / 1 DEMANDA POR VEZ v0.4.9
   O painel foi recalibrado para TV instalada longe da equipe.
   ========================================================= */
body.jp-board-fullscreen-active .jp-board-main {
  padding: 16px 20px 18px;
}

body.jp-board-fullscreen-active .jp-board-summary {
  gap: 12px;
}

body.jp-board-fullscreen-active .jp-board-summary-head h2 {
  font-size: clamp(38px, 2.35vw, 50px);
  line-height: 1.02;
  margin: 3px 0 4px;
}

body.jp-board-fullscreen-active .jp-board-summary-head span {
  font-size: clamp(14px, .82vw, 18px);
  letter-spacing: .10em;
}

body.jp-board-fullscreen-active .jp-board-clock {
  min-width: 220px;
}

body.jp-board-fullscreen-active .jp-board-clock b {
  font-size: clamp(42px, 2.55vw, 56px);
  line-height: .95;
}

body.jp-board-fullscreen-active .jp-board-clock small {
  font-size: clamp(14px, .82vw, 18px);
  margin-top: 5px;
  display: block;
}

body.jp-board-fullscreen-active .jp-board-metrics {
  gap: 10px;
}

body.jp-board-fullscreen-active .jp-board-metric {
  padding: 13px 16px;
  border-radius: 15px;
}

body.jp-board-fullscreen-active .jp-board-metric span {
  font-size: clamp(13px, .76vw, 16px);
  letter-spacing: .07em;
}

body.jp-board-fullscreen-active .jp-board-metric strong {
  margin-top: 5px;
  font-size: clamp(36px, 2.05vw, 46px);
  line-height: .95;
}

body.jp-board-fullscreen-active .jp-board-columns {
  gap: 15px;
}

body.jp-board-fullscreen-active .jp-board-column {
  min-height: calc(100vh - 245px);
}

body.jp-board-fullscreen-active .jp-board-column > header {
  min-height: 60px;
  padding: 14px 16px;
}

body.jp-board-fullscreen-active .jp-board-column > header h3 {
  font-size: clamp(20px, 1.16vw, 25px);
  line-height: 1.12;
}

body.jp-board-fullscreen-active .jp-board-column > header b {
  min-width: 36px;
  height: 36px;
  font-size: clamp(14px, .82vw, 17px);
}

body.jp-board-fullscreen-active .jp-board-page {
  font-size: clamp(13px, .76vw, 16px);
  padding: 6px 9px;
}

body.jp-board-fullscreen-active .jp-board-column-body {
  padding: 16px;
  gap: 0;
  overflow: hidden !important;
  align-content: start;
}

body.jp-board-fullscreen-active .jp-demand-tile {
  width: 100%;
  min-height: min(58vh, 610px);
  padding: 20px;
  gap: 15px;
  border-radius: 18px;
  align-content: start;
}

body.jp-board-fullscreen-active .jp-demand-tile header {
  gap: 14px;
}

body.jp-board-fullscreen-active .jp-demand-num {
  margin-bottom: 8px;
  font-size: clamp(14px, .82vw, 18px);
}

body.jp-board-fullscreen-active .jp-demand-tile h3 {
  font-size: clamp(28px, 1.55vw, 34px);
  line-height: 1.13;
  letter-spacing: -.025em;
}

body.jp-board-fullscreen-active .jp-demand-tile .jp-status {
  padding: 8px 11px;
  font-size: clamp(13px, .76vw, 16px);
  flex: 0 0 auto;
}

body.jp-board-fullscreen-active .jp-demand-tile .jp-status::before {
  width: 8px;
  height: 8px;
}

body.jp-board-fullscreen-active .jp-demand-tile-body p {
  margin-top: 2px;
  font-size: clamp(19px, 1.06vw, 23px);
  line-height: 1.42;
  -webkit-line-clamp: 3;
}

body.jp-board-fullscreen-active .jp-demand-meta {
  grid-template-columns: 1fr;
  gap: 9px;
  margin-top: 14px;
}

body.jp-board-fullscreen-active .jp-demand-meta span {
  min-height: 60px;
  gap: 4px;
  padding: 10px 12px;
  border-radius: 11px;
  font-size: clamp(16px, .90vw, 20px);
  line-height: 1.28;
}

body.jp-board-fullscreen-active .jp-demand-meta b {
  font-size: clamp(12px, .70vw, 15px);
  letter-spacing: .07em;
}

body.jp-board-fullscreen-active .jp-demand-tile footer {
  margin-top: auto;
  padding-top: 10px;
  font-size: clamp(16px, .92vw, 20px);
  gap: 12px;
}

body.jp-board-fullscreen-active .jp-demand-tile footer strong {
  font-size: clamp(18px, 1.02vw, 22px);
  text-align: right;
}

body.jp-board-fullscreen-active .jp-demand-deadline::before {
  font-size: clamp(12px, .70vw, 15px);
}

body.jp-board-fullscreen-active .jp-overdue-banner {
  min-height: 38px;
  padding: 8px 12px;
  font-size: clamp(14px, .82vw, 18px);
  border-radius: 999px;
}

body.jp-board-fullscreen-active .jp-overdue-dot {
  width: 12px;
  height: 12px;
}

body.jp-board-fullscreen-active .jp-demand-tile .jp-overdue-text {
  font-size: clamp(19px, 1.08vw, 24px);
}

body.jp-board-fullscreen-active .jp-board-empty {
  min-height: min(58vh, 610px);
  padding: 28px;
  font-size: clamp(20px, 1.12vw, 25px);
  line-height: 1.35;
}

/* O alerta atrasado continua forte, mas com conteúdo estável e legível. */
body.jp-board-fullscreen-active .jp-demand-tile.overdue {
  padding: 18px;
}

/* Em telas 4K, amplia novamente para preservar leitura à distância. */
@media (min-width: 2500px) {
  body.jp-board-fullscreen-active .jp-board-summary-head h2 { font-size: 64px; }
  body.jp-board-fullscreen-active .jp-board-clock b { font-size: 68px; }
  body.jp-board-fullscreen-active .jp-board-metric span { font-size: 20px; }
  body.jp-board-fullscreen-active .jp-board-metric strong { font-size: 56px; }
  body.jp-board-fullscreen-active .jp-board-column > header h3 { font-size: 30px; }
  body.jp-board-fullscreen-active .jp-board-column > header b { font-size: 20px; min-width:42px; height:42px; }
  body.jp-board-fullscreen-active .jp-board-page { font-size: 18px; }
  body.jp-board-fullscreen-active .jp-demand-num { font-size: 21px; }
  body.jp-board-fullscreen-active .jp-demand-tile h3 { font-size: 42px; }
  body.jp-board-fullscreen-active .jp-demand-tile-body p { font-size: 29px; }
  body.jp-board-fullscreen-active .jp-demand-meta span { font-size: 24px; }
  body.jp-board-fullscreen-active .jp-demand-meta b { font-size: 18px; }
  body.jp-board-fullscreen-active .jp-demand-tile footer,
  body.jp-board-fullscreen-active .jp-demand-tile footer strong { font-size: 26px; }
  body.jp-board-fullscreen-active .jp-overdue-banner { font-size: 22px; }
}
