/* Prodio design system (design/styles.css), gerado por apps/site/build.mjs. */
/* Sora (marca), Inter (interface), JetBrains Mono (códigos). Arquivos woff2 de fonts/, baixados do Google Fonts (subconjuntos latin e latin-ext). */
@font-face{font-family:'Sora';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/Sora-latin-ext-var.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Sora';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/Sora-latin-var.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/Inter-latin-ext-var.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/Inter-latin-var.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('/fonts/JetBrainsMono-latin-ext-var.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 600;font-display:swap;src:url('/fonts/JetBrainsMono-latin-var.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Prodio — cores.
   Base: tokens do app (apps/web/src/index.css), agora com os nomes do guia de marca v1 (Prodio Marca).
   Remake: --color-text passa a ser Grafite (#0f172a), a mesma tinta da logo; no app era #111827. */
:root{
  /* Marca */
  --prodio-grafite:#0f172a;
  --prodio-petroleo:#0f766e;
  --prodio-petroleo-escuro:#115e59;
  --prodio-sinal:#14b8a6;
  --prodio-menta:#5eead4;
  --prodio-nevoa:#f6f7f9;
  --prodio-branco:#ffffff;
  --prodio-preto:#000000;

  /* Neutros (claro) */
  --color-bg:#f6f7f9;
  --color-surface:#ffffff;
  --color-surface-2:#f1f3f6;
  --color-border:#e3e6eb;
  --color-text:#0f172a;
  --color-muted:#6b7280;
  --color-faint:#9ca3af;

  /* Ação: Petróleo */
  --color-accent:#0f766e;
  --color-accent-strong:#115e59;
  --color-accent-soft:#ccfbf1;
  --color-accent-text:#0f766e;
  --color-on-accent:#ffffff;

  /* Estados */
  --color-ok:#15803d;
  --color-ok-soft:#dcfce7;
  --color-warn:#b45309;
  --color-warn-soft:#fef3c7;
  --color-danger:#b91c1c;
  --color-danger-soft:#fee2e2;
  --color-info:#1d4ed8;
  --color-info-soft:#dbeafe;

  /* Botão escuro "Abrir modo chão de fábrica" e selos invertidos */
  --color-inverse:#0f172a;
  --color-inverse-hover:#1e293b;
  --color-on-inverse:#ffffff;

  /* Logo: a linha muda de tom conforme o fundo (Sinal no claro, Menta no escuro) */
  --color-logo-mark:#0f172a;
  --color-logo-line:#14b8a6;

  /* Véu de modal (desktop) e de folha (celular) */
  --color-overlay:rgba(0,0,0,.4);
  --color-overlay-strong:rgba(0,0,0,.6);

  /* Painel de resultado do bipe (texto branco em cima, igual no claro e no escuro) */
  --feedback-ok-bg:#15803d;
  --feedback-warn-bg:#b45309;
  --feedback-danger-bg:#b91c1c;
  --feedback-on:#ffffff;

  /* Aliases semânticos */
  --surface-page:var(--color-bg);
  --surface-card:var(--color-surface);
  --surface-sunken:var(--color-surface-2);
  --text-body:var(--color-text);
  --text-secondary:var(--color-muted);
  --text-disabled:var(--color-faint);
  --text-link:var(--color-accent-text);
  --border-default:var(--color-border);
  --action-primary:var(--color-accent);
  --action-primary-hover:var(--color-accent-strong);
  --focus-ring:color-mix(in srgb, var(--color-accent) 50%, transparent);
  --field-ring:color-mix(in srgb, var(--color-accent) 40%, transparent);
}

/* Escuro: tema .dark do app e paleta do chão de fábrica (/chao) */
.dark{
  --color-bg:#0b1220;
  --color-surface:#111a2b;
  --color-surface-2:#17223a;
  --color-border:#243049;
  --color-text:#e5e7eb;
  --color-muted:#9aa4b5;
  --color-faint:#6b7588;

  --color-accent:#2dd4bf;
  --color-accent-strong:#5eead4;
  --color-accent-soft:#134e4a;
  --color-accent-text:#5eead4;
  --color-on-accent:#0f172a;

  --color-ok:#4ade80;
  --color-ok-soft:#14532d;
  --color-warn:#fbbf24;
  --color-warn-soft:#78350f;
  --color-danger:#f87171;
  --color-danger-soft:#7f1d1d;
  --color-info:#60a5fa;
  --color-info-soft:#1e3a8a;

  --color-inverse:#5eead4;
  --color-inverse-hover:#99f6e4;
  --color-on-inverse:#0f172a;

  --color-logo-mark:#ffffff;
  --color-logo-line:#5eead4;

  --surface-page:var(--color-bg);
  --surface-card:var(--color-surface);
  --surface-sunken:var(--color-surface-2);
  --text-body:var(--color-text);
  --text-secondary:var(--color-muted);
  --text-disabled:var(--color-faint);
  --text-link:var(--color-accent-text);
  --border-default:var(--color-border);
  --action-primary:var(--color-accent);
  --action-primary-hover:var(--color-accent-strong);
  --focus-ring:color-mix(in srgb, var(--color-accent) 50%, transparent);
  --field-ring:color-mix(in srgb, var(--color-accent) 40%, transparent);
}

/* Prodio — tipografia.
   Sora: nome, títulos e números grandes. Inter: texto da interface. JetBrains Mono: SKU, serial, OC, NF-e.
   Etiqueta térmica: o core calcula o layout com Arial e uma monoespaçada de 0,6 em (no app: 'DejaVu Sans Mono', 'Liberation Mono', Menlo). */
:root{
  --font-brand:'Sora', ui-sans-serif, system-ui, sans-serif;
  --font-sans:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --font-label:Arial, 'Liberation Sans', Helvetica, sans-serif;

  /* Escala da marca (guia v1) */
  --type-display:600 48px/56px var(--font-brand);
  --type-title:600 28px/34px var(--font-brand);
  --type-subtitle:600 18px/26px var(--font-sans);
  --type-body:400 15px/22px var(--font-sans);
  --type-code:500 13px/18px var(--font-mono);

  /* Escala da interface (tamanhos do app) */
  --text-10:10px;
  --text-11:11px;
  --text-12:12px;
  --text-13:13px;
  --text-14:14px;
  --text-15:15px;
  --text-16:16px;
  --text-17:17px;
  --text-18:18px;
  --text-20:20px;
  --text-22:22px;
  --text-24:24px;
  --text-28:28px;
  --text-30:30px;

  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  --leading-none:1;
  --leading-snug:1.375;
  --leading-normal:1.5;

  --tracking-wordmark:-0.045em;
  --tracking-display:-0.035em;
  --tracking-h2:-0.03em;
  --tracking-title:-0.025em;
  --tracking-heading:-0.02em;
  --tracking-wide:0.025em;
  --tracking-wider:0.05em;
  --tracking-caps:0.06em;
}

/* Prodio — espaço, raio, sombra, alvos de toque e movimento.
   Valores do app (Tailwind v4: unidade de 4px) e do guia de marca. */
:root{
  --space-0-5:2px;
  --space-1:4px;
  --space-1-5:6px;
  --space-2:8px;
  --space-2-5:10px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --space-18:72px;
  --space-24:96px;

  --radius-sm:4px;
  --radius-md:6px;
  --radius-lg:8px;
  --radius-field-brand:10px;
  --radius-xl:12px;
  --radius-card:14px;
  --radius-2xl:16px;
  --radius-3xl:24px;
  --radius-full:9999px;

  --shadow-card:0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.04);
  --shadow-sm:0 1px 3px 0 rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1);
  --shadow-lg:0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);
  --shadow-xl:0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1);
  --shadow-2xl:0 25px 50px -12px rgba(0,0,0,.25);
  --shadow-paper:0 1px 3px rgba(15,23,42,.12);

  --control-sm:32px;
  --control-md:40px;
  --control-lg:56px;
  --touch-min:56px;
  --touch-cta:64px;
  --touch-key:68px;

  --sidebar-w:248px;
  --topbar-h:56px;
  --content-max:1280px;

  --duration-fast:150ms; /* @kind other */
  --ease-standard:cubic-bezier(.4,0,.2,1); /* @kind other */
  --ease-shake:cubic-bezier(.36,.07,.19,.97); /* @kind other */
}

/* Prodio — base do documento (igual ao body do app, com as fontes da marca). */
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--color-accent-text);text-decoration:none}
a:hover{color:var(--color-accent-strong);text-decoration:underline}
::selection{background:var(--color-accent-soft)}
.dark{color-scheme:dark}
.pd-num{font-variant-numeric:tabular-nums}
.pd-mono{font-family:var(--font-mono);font-weight:500}
.pd-brand{font-family:var(--font-brand)}
@keyframes pd-spin{to{transform:rotate(360deg)}}
@keyframes pd-shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-8px)}40%,60%{transform:translateX(8px)}}
@media print{body{background:#fff}.no-print{display:none !important}}

.pd-logo{display:inline-flex;align-items:center;color:var(--color-logo-mark);line-height:1;vertical-align:middle}
.pd-logo--vertical{flex-direction:column}
.pd-logo__mark{flex:none;display:block}
.pd-logo__word{font-family:var(--font-brand);font-weight:600;line-height:1;letter-spacing:var(--tracking-wordmark);white-space:nowrap}
.pd-logo-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;vertical-align:middle}

.pd-icon{display:inline-block;flex:none;vertical-align:middle}
.pd-icon--spin{animation:pd-spin 1s linear infinite}

.pd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;border:0;border-radius:var(--radius-lg);background:transparent;color:inherit;font-family:var(--font-sans);font-weight:500;white-space:nowrap;text-decoration:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-standard),background-color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),filter var(--duration-fast) var(--ease-standard)}
.pd-btn:focus{outline:none}
.pd-btn:focus-visible{box-shadow:0 0 0 2px var(--focus-ring)}
.pd-btn:disabled{opacity:.5;cursor:not-allowed}
.pd-btn:hover{text-decoration:none}
.pd-btn--sm{height:32px;padding:0 12px;font-size:13px;line-height:1}
.pd-btn--md{height:40px;padding:0 16px;font-size:14px;line-height:20px}
.pd-btn--lg{height:56px;padding:0 24px;font-size:16px;line-height:24px}
.pd-btn--primary{background:var(--color-accent);color:var(--color-on-accent)}
.pd-btn--primary:hover:not(:disabled){background:var(--color-accent-strong);color:var(--color-on-accent)}
.pd-btn--secondary{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}
.pd-btn--secondary:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}
.pd-btn--ghost{color:var(--color-muted)}
.pd-btn--ghost:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}
.pd-btn--danger{background:var(--color-danger-soft);color:var(--color-danger)}
.pd-btn--danger:hover:not(:disabled){filter:brightness(.95);color:var(--color-danger)}

.pd-badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-md);padding:2px 8px;font:500 12px/1.5 var(--font-sans);white-space:nowrap}
.pd-badge--neutral{background:var(--color-surface-2);color:var(--color-muted)}
.pd-badge--ok{background:var(--color-ok-soft);color:var(--color-ok)}
.pd-badge--warn{background:var(--color-warn-soft);color:var(--color-warn)}
.pd-badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}
.pd-badge--info{background:var(--color-info-soft);color:var(--color-info)}
.pd-badge--accent{background:var(--color-accent-soft);color:var(--color-accent-text)}

.pd-progress{height:8px;width:100%;border-radius:var(--radius-full);background:var(--color-surface-2);overflow:hidden}
.pd-progress__bar{height:100%;border-radius:var(--radius-full);transition:width var(--duration-fast) var(--ease-standard)}
.pd-progress--neutral .pd-progress__bar{background:var(--color-faint)}
.pd-progress--ok .pd-progress__bar{background:var(--color-ok)}
.pd-progress--warn .pd-progress__bar{background:var(--color-warn)}
.pd-progress--danger .pd-progress__bar{background:var(--color-danger)}
.pd-progress--info .pd-progress__bar{background:var(--color-info)}
.pd-progress--accent .pd-progress__bar{background:var(--color-accent)}

.pd-aviso{display:flex;align-items:flex-start;gap:8px;box-sizing:border-box;border:1px solid;border-radius:var(--radius-lg);padding:10px 12px;font:400 14px/20px var(--font-sans)}
.pd-aviso__icon{margin-top:2px;flex:none}
.pd-aviso__body{min-width:0}
.pd-aviso__title{font-weight:500}
.pd-aviso__text{font-size:13px;line-height:1.5;opacity:.9}
.pd-aviso--warn{border-color:color-mix(in srgb,var(--color-warn) 30%,transparent);background:var(--color-warn-soft);color:var(--color-warn)}
.pd-aviso--danger{border-color:color-mix(in srgb,var(--color-danger) 30%,transparent);background:var(--color-danger-soft);color:var(--color-danger)}
.pd-aviso--info{border-color:color-mix(in srgb,var(--color-info) 30%,transparent);background:var(--color-info-soft);color:var(--color-info)}
.pd-aviso--ok{border-color:color-mix(in srgb,var(--color-ok) 30%,transparent);background:var(--color-ok-soft);color:var(--color-ok)}
.pd-aviso--accent{border-color:transparent;background:color-mix(in srgb,var(--color-accent-soft) 40%,transparent);color:var(--color-accent-text);font-size:12px;line-height:1.5;padding:8px 12px}

.pd-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px}
.pd-empty__icon{color:var(--color-faint);margin-bottom:12px;display:flex}
.pd-empty__title{font-weight:500;color:var(--color-text)}
.pd-empty__desc{font-size:14px;line-height:20px;color:var(--color-muted);margin-top:4px;max-width:384px;text-wrap:pretty}
.pd-empty__action{margin-top:16px}

.pd-field{display:block}
.pd-field__label{display:block;margin-bottom:6px;font:500 13px/1.5 var(--font-sans);color:var(--color-muted)}
.pd-field__hint{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--color-faint)}
.pd-input,.pd-select{height:40px;width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);padding:0 12px;font:400 14px/20px var(--font-sans);color:var(--color-text)}
.pd-input::placeholder{color:var(--color-faint)}
.pd-input:focus,.pd-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--field-ring)}
.pd-input[aria-invalid=true]{border-color:var(--color-danger)}
.pd-input[aria-invalid=true]:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-danger) 40%,transparent)}
.pd-input:disabled,.pd-select:disabled{opacity:.6;cursor:not-allowed}
.pd-input--num{text-align:right;font-variant-numeric:tabular-nums}
.pd-search{position:relative}
.pd-search__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-faint);pointer-events:none}
.pd-search .pd-input{padding-left:36px}

.pd-toggle{display:inline-flex;max-width:100%;align-items:center;gap:10px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;vertical-align:middle;cursor:pointer}
.pd-toggle:focus{outline:none}
.pd-toggle:disabled{cursor:not-allowed;opacity:.5}
.pd-toggle__track{position:relative;display:inline-block;flex:none;height:24px;width:44px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-faint) 50%,transparent);transition:background-color var(--duration-fast) var(--ease-standard)}
.pd-toggle[aria-checked=true] .pd-toggle__track{background:var(--color-accent)}
.pd-toggle:focus-visible .pd-toggle__track{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--focus-ring)}
.pd-toggle__knob{position:absolute;left:2px;top:2px;height:20px;width:20px;border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast) var(--ease-standard)}
.pd-toggle[aria-checked=true] .pd-toggle__knob{transform:translateX(20px)}
.pd-toggle__label{min-width:0;font-size:14px;line-height:20px}

.pd-seg{display:inline-flex;max-width:100%;flex-wrap:wrap;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2px}
.pd-seg__btn{height:32px;white-space:nowrap;border:0;border-radius:var(--radius-md);background:transparent;padding:0 12px;font:400 13px/1 var(--font-sans);color:var(--color-muted);cursor:pointer}
.pd-seg__btn:not([aria-pressed=true]):hover:not(:disabled){background:var(--color-surface-2)}
.pd-seg__btn[aria-pressed=true]{background:var(--color-accent-soft);font-weight:500;color:var(--color-accent-text)}
.pd-seg__btn:disabled{cursor:not-allowed;opacity:.6}

.pd-chips{display:flex;flex-wrap:wrap;gap:6px}
.pd-chip{display:inline-flex;height:32px;white-space:nowrap;align-items:center;gap:6px;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-full);background:transparent;padding:0 12px;font:400 13px/1 var(--font-sans);color:var(--color-muted);cursor:pointer;transition:color var(--duration-fast),background-color var(--duration-fast),border-color var(--duration-fast)}
.pd-chip:not([aria-pressed=true]):hover:not(:disabled){background:var(--color-surface-2)}
.pd-chip[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-soft);font-weight:500;color:var(--color-accent-text)}
.pd-chip:disabled{cursor:not-allowed;opacity:.6}

.pd-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--color-border);overflow-x:auto}
.pd-tab{margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;padding:8px 12px;font:400 14px/20px var(--font-sans);color:var(--color-muted);white-space:nowrap;cursor:pointer;transition:color var(--duration-fast),border-color var(--duration-fast)}
.pd-tab:hover{color:var(--color-text)}
.pd-tab[aria-selected=true]{border-bottom-color:var(--color-accent);font-weight:500;color:var(--color-text)}
.pd-tab__count{display:inline-block;margin-left:6px;border-radius:var(--radius-full);background:var(--color-surface-2);padding:2px 6px;font-size:11px;line-height:1.4;font-weight:400;color:var(--color-muted)}

.pd-pagehead{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.pd-pagehead__main{min-width:0}
.pd-pagehead__crumb{margin-bottom:4px;font-size:12px;line-height:1.5;color:var(--color-muted)}
.pd-pagehead__title{margin:0;font:600 22px/28px var(--font-brand);letter-spacing:var(--tracking-title);color:var(--color-text)}
.pd-pagehead__sub{margin:4px 0 0;font-size:14px;line-height:20px;color:var(--color-muted)}
.pd-pagehead__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0}
@media (min-width:640px){.pd-pagehead{flex-direction:row;align-items:flex-end;justify-content:space-between}.pd-pagehead__title{font-size:28px;line-height:34px}}

.pd-card{min-width:0;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);color:var(--color-text)}
.pd-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 12px}
.pd-card__title{margin:0;font:600 15px/1.5 var(--font-sans);color:var(--color-text)}
.pd-card__actions{display:flex;align-items:center;gap:8px}
.pd-card__body--padded{padding:20px}
.pd-card__body--under-head{padding:0 20px 20px}

.pd-stat{height:100%;min-width:0;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:16px}
.pd-stat__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-size:13px;line-height:1.375;color:var(--color-muted)}
.pd-stat__label{min-width:0}
.pd-stat__icon{display:inline-flex;flex-shrink:0;color:var(--color-faint)}
.pd-stat__value{margin-top:4px;font:600 24px/32px var(--font-brand);letter-spacing:var(--tracking-title);font-variant-numeric:tabular-nums;color:var(--color-text)}
.pd-stat__of{font:400 16px/24px var(--font-sans);letter-spacing:0;color:var(--color-muted)}
.pd-stat__hint{margin-top:4px;font-size:12px;line-height:1.5;color:var(--color-muted)}
.pd-stat--ok .pd-stat__value{color:var(--color-ok)}
.pd-stat--warn .pd-stat__value{color:var(--color-warn)}
.pd-stat--danger .pd-stat__value{color:var(--color-danger)}
.pd-stat--info .pd-stat__value{color:var(--color-info)}
.pd-stat--accent .pd-stat__value{color:var(--color-accent-text)}

.pd-table-wrap{overflow-x:auto;margin:0 -20px}
.pd-table{width:100%;min-width:640px;border-collapse:collapse;font-size:14px;line-height:20px;color:var(--color-text)}
.pd-th{padding:10px 12px;border-bottom:1px solid var(--color-border);font:500 12px/1.5 var(--font-sans);letter-spacing:var(--tracking-wide);text-transform:uppercase;text-align:left;color:var(--color-muted)}
.pd-th--right{text-align:right}
.pd-td{padding:12px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);vertical-align:middle}
.pd-th:first-child,.pd-td:first-child{padding-left:20px}
.pd-th:last-child,.pd-td:last-child{padding-right:20px}
.pd-td--right{text-align:right;font-variant-numeric:tabular-nums}
.pd-td--mono{font-family:var(--font-mono);font-weight:500;font-size:13px}
.pd-tr--link{cursor:pointer}
.pd-tr--link:hover{background:color-mix(in srgb,var(--color-surface-2) 60%,transparent)}
@media (min-width:1024px){.pd-table{min-width:0}}

.pd-nomevar{display:inline-flex;min-width:0;max-width:100%;align-items:baseline;gap:6px}
.pd-nomevar__base{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pd-nomevar__var{flex-shrink:0;font-size:.8em;font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-accent-text)}

.pd-kbd{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);padding:2px 6px;font:500 11px/1.5 var(--font-mono);color:var(--color-muted)}

.pd-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:0}
.pd-modal__veil{position:absolute;inset:0;background:var(--color-overlay)}
.pd-modal__panel{position:relative;display:flex;flex-direction:column;width:100%;max-height:92vh;box-sizing:border-box;border:1px solid var(--color-border);border-radius:16px 16px 0 0;background:var(--color-surface);box-shadow:var(--shadow-xl);color:var(--color-text)}
.pd-modal__panel--sm{max-width:448px}
.pd-modal__panel--md{max-width:576px}
.pd-modal__panel--lg{max-width:768px}
.pd-modal__panel--xl{max-width:1024px}
.pd-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border)}
.pd-modal__title{margin:0;font:600 18px/26px var(--font-brand);letter-spacing:var(--tracking-heading)}
.pd-modal__close{display:inline-flex;border:0;border-radius:var(--radius-md);background:none;padding:4px;color:var(--color-muted);cursor:pointer}
.pd-modal__close:hover{color:var(--color-text)}
.pd-modal__body{padding:16px 20px;overflow-y:auto;font-size:14px;line-height:20px}
.pd-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--color-border)}
@media (min-width:640px){.pd-modal{align-items:center;padding:16px}.pd-modal__panel{border-radius:16px}}

/* Chão de fábrica: sempre na paleta escura (.dark), alvos de 56 px ou mais. */
.pd-sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end}
.pd-sheet__veil{position:absolute;inset:0;background:var(--color-overlay-strong)}
.pd-sheet__panel{position:relative;display:flex;flex-direction:column;width:100%;max-height:92vh;box-sizing:border-box;border-top:1px solid var(--color-border);border-radius:24px 24px 0 0;background:var(--color-bg);color:var(--color-text);padding-bottom:env(safe-area-inset-bottom)}
.pd-sheet__grab{margin:8px auto 0;height:6px;width:48px;border-radius:var(--radius-full);background:color-mix(in srgb,var(--color-faint) 55%,var(--color-bg))}
.pd-sheet__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px}
.pd-sheet__title{margin:0;font:600 18px/26px var(--font-brand);letter-spacing:var(--tracking-heading)}
.pd-sheet__close{display:grid;place-items:center;height:48px;width:48px;border:0;border-radius:var(--radius-full);background:none;color:var(--color-muted);cursor:pointer}
.pd-sheet__close:active{background:var(--color-surface-2)}
.pd-sheet__body{overflow-y:auto;padding:0 16px 24px}

.pd-scanner{display:flex;flex-direction:column;gap:12px;color:var(--color-text)}
.pd-scanner__view{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-2xl);background:#000}
.pd-scanner__aim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.pd-scanner__frame{position:relative;height:46%;width:78%;box-sizing:border-box;border:2px solid var(--color-border);border-radius:10px}
.pd-scanner__line{position:absolute;left:-6%;right:-6%;top:60%;height:4px;border-radius:2px;background:var(--prodio-menta)}
.pd-scanner__status{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center}
.pd-scanner__pill{border-radius:var(--radius-full);background:rgba(0,0,0,.6);padding:4px 12px;font-size:12px;line-height:1.5;color:#e2e8f0}
.pd-scanner__off{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--color-surface) 80%,transparent);color:var(--color-faint)}
.pd-scanner__nocam{display:flex;align-items:flex-start;gap:12px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--color-warn) 40%,transparent);border-radius:var(--radius-2xl);background:color-mix(in srgb,var(--color-warn) 10%,transparent);padding:16px;color:#fde68a}
.pd-scanner__nocam-t{font-size:15px;line-height:1.375;font-weight:600}
.pd-scanner__nocam-d{font-size:13px;line-height:1.375;opacity:.8}
.pd-scanner__row{display:flex;align-items:stretch;gap:8px}
.pd-scanner__field{position:relative;flex:1;min-width:0}
.pd-scanner__kb{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-faint);pointer-events:none}
.pd-scanner__input{height:56px;width:100%;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);padding:0 12px 0 40px;font:500 16px/24px var(--font-mono);color:var(--color-text)}
.pd-scanner__input::placeholder{color:var(--color-faint)}
.pd-scanner__input:focus{outline:none;border-color:var(--color-accent)}
.pd-scanner__ok{height:56px;min-width:72px;border:0;border-radius:var(--radius-xl);background:var(--color-accent);padding:0 16px;font:600 15px/1 var(--font-sans);color:var(--color-on-accent);cursor:pointer}
.pd-scanner__ok:active{background:var(--color-accent-strong)}
.pd-scanner__ok:disabled{opacity:.4;cursor:default}
.pd-scanner__hint{font-size:12px;line-height:1.5;color:var(--color-faint)}

.pd-chart{display:block;width:100%;height:auto;font-family:var(--font-sans);font-variant-numeric:tabular-nums}
.pd-chart__legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12px;line-height:1.5;color:var(--color-muted)}
.pd-chart__key{display:inline-flex;align-items:center;gap:6px}
.pd-chart__dot{height:10px;width:10px;border-radius:2px}

