/* Tintas Brazilian AST — estilos do shell (extraídos de partials/head.php).
   Versionado por filemtime no <link> (cache-bust). */
/* ── Tokens "Brazilian Color Dark" (fonte única de verdade) ── */
:root {
    --brand:#ffd60a; --brand-hover:#e6c200; --on-brand:#1a1400;
    --sidebar:#000000; --sidebar-2:#161616; --bg-dark:#0d0d0d;
    --card:#161616; --card-border:#262626;
    --field:#0f0f0f; --field-border:#2e2e2e;
    --text:#e8e8e8; --title:#ffffff; --muted:#9aa0a6; --placeholder:#6a7280;
    --content:#eef1f6; --ink:#283142;
}
body { background:var(--content); font-family:'Inter',system-ui,-apple-system,sans-serif; color:var(--ink); }
h1,h2,h3,.fw-bold { letter-spacing:-.01em; }
.brand-logo { height:38px; width:auto; }
/* Rótulo de seção do padrão (uppercase, tracking largo) */
.ast-section { color:var(--muted); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
/* Botões/realces da marca */
.btn-dark { --bs-btn-bg:#0e1014; --bs-btn-border-color:#0e1014; --bs-btn-hover-bg:#1b1f28; --bs-btn-hover-border-color:#1b1f28; }
.btn-warning { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:var(--brand-hover); --bs-btn-hover-border-color:var(--brand-hover); --bs-btn-color:var(--on-brand); --bs-btn-hover-color:var(--on-brand); font-weight:600; }
.form-control:focus,.form-select:focus { border-color:var(--brand); box-shadow:0 0 0 .2rem rgba(255,214,10,.2); }
.card { border-radius:.7rem; }
/* Cards clicáveis ganham realce da marca no hover (identidade da família) */
a.card, a .card { transition:transform .1s ease, box-shadow .1s ease; }
a.card:hover, a:hover .card { transform:translateY(-2px); box-shadow:0 0 0 1px var(--brand), 0 8px 20px rgba(0,0,0,.12); }
.table > :not(caption) > * > * { padding:.7rem .75rem; }
a { text-decoration:none; }
/* ── Login (shell auth) — padrão "Brazilian Color Dark" (igual SGI/portal) ── */
body.auth-page { background:radial-gradient(900px 420px at 50% 0%, #171717, #0a0a0a 70%); color:var(--text); min-height:100vh; }
.auth-card { background:#151515; border:1px solid var(--card-border); border-radius:14px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.55); }
.auth-hero { background:#000; text-align:center; padding:2rem 1.5rem 1.5rem; border-bottom:2px solid var(--brand); }
.auth-hero .auth-wordmark { height:38px; width:auto; }
.auth-hero .auth-tagline { color:var(--brand); font-size:.72rem; letter-spacing:.3em; font-weight:700; margin-top:.55rem; }
.auth-body { padding:1.6rem 1.5rem 1.75rem; }
.auth-label { display:block; color:var(--muted); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; margin-bottom:.4rem; }
body.auth-page .form-control { background:var(--field); border:1px solid var(--field-border); color:var(--text); border-radius:.6rem; padding:.7rem .9rem; }
body.auth-page .form-control::placeholder { color:var(--placeholder); }
body.auth-page .form-control:focus { background:var(--field); border-color:var(--brand); box-shadow:0 0 0 .2rem rgba(255,214,10,.25); color:var(--text); }
body.auth-page .form-control:-webkit-autofill,body.auth-page .form-control:-webkit-autofill:hover,body.auth-page .form-control:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 40px var(--field) inset;caret-color:var(--text)}
.auth-forgot { display:block; text-align:center; margin-top:.9rem; color:var(--muted); font-size:.85rem; }
.auth-forgot:hover { color:var(--brand); }
.auth-footer { text-align:center; color:#6a7280; font-size:.75rem; line-height:1.7; margin-top:1.1rem; }
/* Mobile-first: a sidebar é um offcanvas (escondido); vira fixa só em md+. */
/* !important: o Bootstrap zera o bg do offcanvas-md acima do breakpoint. */
.ast-sidebar { background:var(--sidebar) !important; --bs-offcanvas-bg:var(--sidebar); --bs-offcanvas-width:260px; }
@media (min-width: 768px) { .ast-sidebar { width:250px; min-height:100vh; position:sticky; top:0; } }
.brand-mark { height:36px; width:36px; flex:0 0 auto; }
.ast-sidebar .brand { color:#fff; font-weight:800; letter-spacing:.04em; }
.ast-sidebar .brand small { color:var(--brand); }
.ast-sidebar .nav-link { color:#b8c1cf; border-radius:.4rem; padding:.55rem .75rem; }
.ast-sidebar .nav-link:hover { background:var(--sidebar-2); color:#fff; }
.ast-sidebar .nav-link.active { background:var(--sidebar-2); color:#fff; border-left:3px solid var(--brand); }
.ast-group { color:#6a7280; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:1rem .75rem .25rem; }
.ast-topbar { background:#fff; border-bottom:1px solid #e3e8ef; border-left:4px solid var(--brand); position:sticky; top:0; z-index:1020; }
/* ── App do técnico (estilo Android) ── */
.tec-bar { background:#000; color:#fff; display:flex; align-items:center; gap:.5rem; padding:.7rem 1rem; position:sticky; top:0; z-index:1020; }
.tec-bar a { color:var(--brand); font-size:1.4rem; line-height:1; text-decoration:none; }
.tec-bar .tec-title { color:#fff; font-weight:600; font-size:1.05rem; flex:1; text-align:center; }
.tec-main { max-width:680px; margin:0 auto; }
body.tec-home { background:#000; }
.tec-hero { text-align:center; padding:1.75rem 1rem .5rem; }
.tec-hero img { height:70px; }
.tec-hero .hi { color:#fff; font-weight:700; margin-top:.5rem; }
.tec-tiles { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; padding:1rem; max-width:560px; margin:0 auto; }
.tec-tile { background:var(--brand); color:#1a1400; border-radius:1rem; padding:1.4rem 1rem; text-align:center; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.35); transition:transform .08s; }
.tec-tile:active { transform:scale(.97); }
.tec-tile i { font-size:2rem; color:#000; display:block; margin-bottom:.5rem; }
.tec-tile span { color:#1a1400; font-weight:700; font-size:.95rem; }
.tec-tile.logout { background:transparent; border:1.5px solid var(--brand); }
.tec-tile.logout i, .tec-tile.logout span { color:var(--brand); }
/* Telas internas do técnico no mesmo padrão da home: tema escuro + amarelo. */
body.tec-app:not(.tec-home) { background:var(--bg-dark); color:var(--text); }
.tec-app h1,.tec-app h2,.tec-app h3 { color:var(--title); }
.tec-app .text-muted { color:var(--muted) !important; }
.tec-app a:not(.btn):not(.tec-tile) { color:var(--brand); }
.tec-app .card { background:var(--card); border:1px solid var(--card-border); color:var(--text); }
.tec-app .card-header { background:#101010; border-color:var(--card-border); color:var(--title); }
.tec-app .list-group-item { background:var(--card); color:var(--text); border-color:var(--card-border); }
.tec-app .form-control,.tec-app .form-select { background:var(--field); border-color:var(--field-border); color:#fff; }
.tec-app .form-control::placeholder { color:var(--placeholder); }
.tec-app .table { --bs-table-bg:transparent; --bs-table-color:#e8e8e8; --bs-table-hover-bg:#1f1f1f; --bs-table-hover-color:#fff; color:#e8e8e8; }
.tec-app .table-light { --bs-table-bg:#000; --bs-table-color:var(--brand); }
.tec-app .table > :not(caption) > * > * { border-color:#262626; }
.tec-app .btn-dark { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-color:#1a1400; --bs-btn-hover-bg:#e6c200; --bs-btn-hover-border-color:#e6c200; --bs-btn-hover-color:#1a1400; }
.tec-app .btn-success { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-color:#1a1400; --bs-btn-hover-bg:#e6c200; --bs-btn-hover-border-color:#e6c200; --bs-btn-hover-color:#1a1400; }
.tec-app .btn-outline-dark { --bs-btn-color:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:var(--brand); --bs-btn-hover-color:#1a1400; --bs-btn-hover-border-color:var(--brand); }
.tec-app .btn-outline-secondary { --bs-btn-color:#cfcfcf; --bs-btn-border-color:#444; --bs-btn-hover-bg:#333; --bs-btn-hover-color:#fff; --bs-btn-hover-border-color:#444; }
.tec-app .form-control, .tec-app .form-select { min-height:48px; }
.tec-app .form-check-input { width:1.3em; height:1.3em; }
/* Wizard de preenchimento — pills das etapas (claro e escuro) */
.wiz-steps { list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; padding:0; }
.wiz-step { font-size:.72rem; font-weight:600; padding:.28rem .65rem; border-radius:999px; background:#e9ecef; color:#6c757d; }
.wiz-step.active { background:var(--brand); color:#1a1400; }
.wiz-step.done { background:#198754; color:#fff; }
.tec-app .wiz-step { background:#1f1f1f; color:#9aa0a6; }
.tec-app .wiz-step.active { background:var(--brand); color:#1a1400; }
/* ── Cropper de foto 16:9 (imgprep.js) ── */
.crop-overlay { position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.75); display:flex; align-items:center; justify-content:center; padding:1rem; }
.crop-box { background:#fff; color:#283142; border-radius:1rem; width:100%; max-width:540px; padding:1.1rem; box-shadow:0 24px 60px rgba(0,0,0,.45); }
.crop-head { font-weight:700; font-size:1.05rem; margin-bottom:.7rem; }
.crop-count { color:#9aa0a6; font-weight:500; font-size:.9rem; }
.crop-frame { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; border-radius:.7rem; background:#111; cursor:grab; touch-action:none; border:2px solid var(--brand); box-shadow:inset 0 0 0 9999px rgba(0,0,0,0); }
.crop-frame:active { cursor:grabbing; }
.crop-img { position:absolute; top:0; left:0; max-width:none; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.crop-tools { display:flex; align-items:center; gap:.7rem; margin:.9rem 0 .3rem; }
.crop-tools span { font-size:.85rem; color:#6c757d; font-weight:600; }
.crop-zoom { flex:1; accent-color:#e6c200; height:6px; }
.crop-hint { font-size:.78rem; color:#9aa0a6; margin:.1rem 0 .9rem; text-align:center; }
.crop-actions { display:flex; gap:.6rem; }
.crop-actions .btn { flex:1; border-radius:.6rem; padding:.75rem; font-weight:700; border:1px solid transparent; cursor:pointer; }
.crop-skip { background:#f1f3f5; color:#495057; border-color:#dee2e6 !important; }
.crop-confirm { background:var(--brand); color:#1a1400; }
/* Miniaturas das fotos enviadas, com X p/ remover/substituir */
.photo-previews { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:.6rem; margin-top:.7rem; }
.pv-thumb { position:relative; }
.pv-thumb img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:.5rem; border:1px solid #d6dae0; display:block; }
.tec-app .pv-thumb img { border-color:#333; }
.pv-del { position:absolute; top:5px; right:5px; width:28px; height:28px; border:none; border-radius:50%;
          background:rgba(0,0,0,.72); color:#fff; font-size:18px; line-height:1; cursor:pointer;
          display:flex; align-items:center; justify-content:center; box-shadow:0 1px 4px rgba(0,0,0,.4); }
.pv-del:hover { background:#c0392b; }
/* Ícone circular dos cards de relatório */
.rpt-ico { flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:var(--brand);
           display:flex; align-items:center; justify-content:center; }
.rpt-ico i { font-size:1.35rem; color:#1a1400; }
