/*
   BA DMO visual shell
   Shared by the visual-authority pages. Page files own content and module
   layout; this file owns the common frame, navigation, surfaces and controls.
*/
:root{
  --shell-page:var(--dmo-page,#f6f9fc);
  --shell-surface:var(--dmo-card,#fff);
  --shell-subtle:var(--dmo-subtle,#f1f6fa);
  --shell-line:var(--dmo-border,#d9e6f2);
  --shell-text:var(--dmo-text,#172d42);
  --shell-muted:var(--dmo-muted,#64778a);
  --shell-blue:var(--dmo-brand-600,#3c73a8);
  --shell-blue-dark:var(--dmo-deep-950,#0f1d2a);
  --shell-rail:var(--dmo-sidebar-width,276px);
  --shell-radius:var(--dmo-radius-card,12px);
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--shell-page);color:var(--shell-text);font:16px/1.45 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit;color:inherit}

/* Application frame */
.view{display:none}.view.active{display:block}

.status,.dmo-pill{display:inline-flex;min-height:24px;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;background:var(--dmo-brand-100,#d9e6f2);color:var(--dmo-brand-700,#315d88);font-size:12px;font-weight:850;line-height:1;white-space:nowrap}.status.success{background:var(--dmo-success-soft,#e5f0eb);color:var(--dmo-success,#527c72)}.status.warning{background:var(--dmo-warning-soft,#f7f0e7);color:var(--dmo-warning,#a97943)}

[data-dmo-list] [data-dmo-row]:focus-visible{outline:2px solid var(--dmo-brand-600,#3c73a8);outline-offset:-2px}
/* Tabelas com seleção por linha: a regra única vive em css/dmo-normalize.css. */
.dmo-list-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.dmo-list-actions [data-dmo-action][aria-disabled="true"]{pointer-events:none}
[data-dmo-list] .lot[data-dmo-row]{cursor:pointer}
[data-dmo-list] .lot[data-dmo-row].selected{background:var(--dmo-brand-100);outline:2px solid var(--dmo-brand-600);outline-offset:-2px}

/* Elementos nativos de seleção continuam na árvore acessível. */
.dmo-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;left:0;white-space:nowrap!important;border:0!important}
.dmo-search-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* Detalhes próprios do Job On: só aparência; factos servidos por Razor. */
body[data-beta-page="jobon"] .job-tool-facts{display:grid;gap:8px;margin-top:10px}
body[data-beta-page="jobon"] .job-tool-fact{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;padding:10px 12px;font-size:12px;color:var(--dmo-muted,#64778a)}
body[data-beta-page="jobon"] .job-tool-fact strong{color:var(--dmo-text,#172d42)}
body[data-beta-page="jobon"] .job-tool-warnings{display:grid;gap:8px;margin-top:14px}
body[data-beta-page="jobon"] .job-tool-warnings>.jobon-aviso{margin:0}
/* Os detalhes opcionais da folha: afastados dos cartões CM/MF/BQ e com o
   campo do tamanho do valor (o Diogo, 17/10/2026: «bem mais pequeno»). */
body[data-beta-page="jobon"] .jobon-mais-detalhes{margin-top:22px}
/* Espaço no fim da página para o menu «Associar ou criar» dos cartões CM/MF/BQ
   abrir à vista com scroll (Diogo, 17/10/2026). */
body[data-beta-page="jobon"] .beta-light-main{padding-bottom:240px}
/* A procura da referência por baixo das linhas das máquinas, com a largura
   do cartão para os resultados (Diogo, 17/10/2026). */
body[data-beta-page="jobon"] .jobon-procura-bloco{margin-top:16px;padding-top:14px;border-top:1px solid var(--dmo-border)}
body[data-beta-page="jobon"] .jobon-mais-detalhes>summary{width:max-content;font-size:13px;cursor:pointer;color:var(--dmo-muted)}
/* A folha da fábrica por famílias, aos pares (CM+TP, MF+CS, BQ+AN, PU+ARR,
   PI e CAL): uma coluna por par, que passa para baixo nos ecrãs estreitos. */
body[data-beta-page="jobon"] .jobon-folha-cabecalho{margin-top:0}
body[data-beta-page="jobon"] .jobon-folha-pares{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px;align-items:start}
body[data-beta-page="jobon"] .jobon-folha-par{display:grid;gap:12px;min-width:0}
body[data-beta-page="jobon"] .jobon-familia{min-width:0;margin:0;padding:10px 12px 12px;border:1px solid var(--dmo-border);border-radius:var(--dmo-r-control)}
body[data-beta-page="jobon"] .jobon-folha-pares+.jobon-familia{margin-top:12px}
body[data-beta-page="jobon"] .jobon-familia-titulo{padding:0 6px;font-weight:800;font-size:13px}
body[data-beta-page="jobon"] .jobon-campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
body[data-beta-page="jobon"] .jobon-campos>.dmo-field{margin:0;min-width:0}
body[data-beta-page="jobon"] .jobon-campos label{font-size:12px}
body[data-beta-page="jobon"] .jobon-campos>.jobon-folha-nota,body[data-beta-page="jobon"] .jobon-campos>.jobon-folha-grupo{grid-column:1/-1}
body[data-beta-page="jobon"] .jobon-folha-grupo{margin:0;padding:0;border:0}
body[data-beta-page="jobon"] .jobon-folha-grupo>legend{font-size:12px;padding:0;margin-bottom:4px}
body[data-beta-page="jobon"] .jobon-folha-grupo>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
body[data-beta-page="jobon"] .jobon-familia .jobon-mais-detalhes{margin-top:10px}
body[data-beta-page="jobon"] .jobon-familia .jobon-mais-detalhes>.jobon-campos{margin-top:8px}
body[data-beta-page="jobon"] .jobon-cal{display:grid;gap:6px}
body[data-beta-page="jobon"] .jobon-cal-cabeca,body[data-beta-page="jobon"] .jobon-cal-linha{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.6fr);gap:6px}
body[data-beta-page="jobon"] .jobon-cal-cabeca{font-size:11px;font-weight:700;color:var(--dmo-muted)}
body[data-beta-page="jobon"] .jobon-cal-linha input{box-sizing:border-box;width:100%;min-width:0;min-height:var(--dmo-control-height);padding:6px 8px;border:1px solid var(--dmo-border);border-radius:var(--dmo-r-control);background:var(--dmo-field);color:var(--dmo-text);font:inherit;font-size:13px}
body[data-beta-page="jobon"] .jobon-folha-dica{margin:4px 0 0;font-size:12px;color:var(--dmo-muted)}
/* O Duplicar (Diogo): a marca «Confirmar» nos campos copiados que quase
   sempre mudam (máquina, ferramentas, utilizações). Só informa, nada bloqueia. */
body[data-beta-page="jobon"] .jobon-confirmar{margin-left:6px;font-size:11px;font-weight:600;color:var(--dmo-muted);white-space:nowrap}
body[data-beta-page="jobon"] .jobon-confirmar::before{content:"· "}
/* A marca pode partir o rótulo em duas linhas: os campos da linha alinham pela caixa. */
body[data-beta-page="jobon"] .jobon-campos:has(.jobon-confirmar){align-items:end}
/* A folha da fábrica na ficha, em leitura: as mesmas famílias e os mesmos
   pares, só com o que está escrito (Diogo, 21/10/2026). Os pares guardam a
   largura de uma coluna mesmo quando só há um escrito (auto-fill). O título
   pelo id: a regra geral dos títulos nos cartões tira-lhe a margem. */
body[data-beta-page="jobon"] #fichaFolha>h3{font-size:15px;margin:18px 0 10px}
body[data-beta-page="jobon"] .jobon-folha-pares-leitura{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:12px}
body[data-beta-page="jobon"] .jobon-ficha-folha>.jobon-familia+.jobon-folha-pares,body[data-beta-page="jobon"] .jobon-ficha-folha>.jobon-familia+.jobon-familia{margin-top:12px}
body[data-beta-page="jobon"] .jobon-familia-leitura>.jobon-familia-titulo{margin:0 0 8px;padding:0}
body[data-beta-page="jobon"] .jobon-leitura{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px 12px;margin:0}
body[data-beta-page="jobon"] .jobon-leitura>div{min-width:0}
body[data-beta-page="jobon"] .jobon-leitura>.jobon-leitura-nota{grid-column:1/-1}
body[data-beta-page="jobon"] .jobon-leitura dt{font-size:12px;color:var(--dmo-muted);line-height:1.4}
body[data-beta-page="jobon"] .jobon-leitura dd{margin:2px 0 0;font-size:14px;font-weight:650;color:var(--dmo-text);overflow-wrap:anywhere}
body[data-beta-page="jobon"] .jobon-leitura-nota dd{font-weight:400;white-space:pre-line}
body[data-beta-page="jobon"] .jobon-folha-vazia{margin:0;font-size:13px;color:var(--dmo-muted)}
body[data-beta-page="jobon"] .jobon-folha-vazia a{color:var(--dmo-text);font-weight:700}

/* Common calendars inherit the same rhythm. */
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.day{position:relative;min-width:0;aspect-ratio:1;border:1px solid transparent;border-radius:8px;background:transparent;font-size:14px}.day.selected{border-color:var(--shell-blue);background:var(--shell-blue);color:var(--dmo-text-on-color);font-weight:850}

@media(max-width:600px){.button,.dmo-button,.btn{width:100%}}

/* Ferramentas do Job On: campos e ações usam os componentes canónicos. */
body[data-beta-page="jobon"] #lightTools{margin-top:12px}
body[data-beta-page="jobon"] .job-tool-card{min-width:0;display:flex;flex-direction:column;border:1px solid var(--dmo-border);border-radius:var(--dmo-r-control)}
body[data-beta-page="jobon"] .job-tool-card [hidden]{display:none!important}
body[data-beta-page="jobon"] .job-tool-menu{display:block}
body[data-beta-page="jobon"] .job-tool-card-head{display:flex!important;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--dmo-r-control);background:var(--dmo-subtle,#f1f6fa)}
body[data-beta-page="jobon"] .job-tool-card-head:hover{background:var(--dmo-brand-050)}
body[data-beta-page="jobon"] .job-tool-card-head strong{font-size:14px}
body[data-beta-page="jobon"] .job-tool-badge{display:inline-block;min-width:32px;text-align:center;padding:6px 7px;border-radius:8px;background:var(--dmo-brand-600,#3c73a8);color:var(--dmo-text-on-color);font-weight:800;font-size:11px}
body[data-beta-page="jobon"] .job-tool-card-hint{margin-left:auto;color:var(--dmo-muted);font-size:12px}
body[data-beta-page="jobon"] .job-tool-menu .dmo-options-list{left:auto;right:8px}
body[data-beta-page="jobon"] .job-tool-chosen{padding:10px 12px 2px}
body[data-beta-page="jobon"] .job-tool-card-title{display:block;margin-bottom:6px;font-size:15px;font-weight:650}
body[data-beta-page="jobon"] a.job-tool-card-link{color:inherit;text-decoration:none}body[data-beta-page="jobon"] a.job-tool-card-link[href]:hover .job-tool-card-title,body[data-beta-page="jobon"] a.job-tool-card-link[href]:focus-visible .job-tool-card-title{text-decoration:underline}
body[data-beta-page="jobon"] .job-tool-input{padding:10px 12px}
body[data-beta-page="jobon"] .job-tool-card-facts{display:flex;flex-wrap:wrap;gap:4px 12px;padding:0 0 10px;font-size:11.5px;color:var(--dmo-muted,#64778a)}body[data-beta-page="jobon"] .job-tool-card-facts:empty{display:none}body[data-beta-page="jobon"] .job-tool-card-facts b{color:var(--dmo-text,#172d42)}
body[data-beta-page="jobon"] .job-tool-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding:10px 12px;border-top:1px solid var(--dmo-border)}
body[data-beta-page="jobon"] .job-tool-actions .dmo-button{flex:1 1 140px;white-space:normal}

body[data-beta-page="jobon"] .job-tool-filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;color:var(--dmo-muted);font-size:12px}
body[data-beta-page="jobon"] .job-tool-filter-bar label{display:flex;align-items:center;gap:7px;color:var(--dmo-text);cursor:pointer}
