/* NOVAIS — approved visual constitution, 4 October 2026. */
:root{--nf-stroke:#191d20;--nf-blue:#0b587c;--nf-amber:#e9ad24;--nf-green:#397653;--nf-red:#a03c45;--control-stroke-width:2px;--control-stroke-color:var(--nf-stroke)}
body :is(.panel,.novais-page-header){border:2px solid var(--nf-stroke)}
/* Navigation has independent buttons; no enclosing coloured band. */
body :is(.section-navigation,.admin-navigation,.nf-module-tabs){display:flex;flex-wrap:wrap;gap:12px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;margin-bottom:12px}
body :is(.section-navigation,.admin-navigation,.nf-module-tabs)>button:not([data-ui-action]){flex:1 1 180px;min-height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:13px 16px;background:var(--nf-blue);color:#fff;border:2px solid var(--nf-stroke)!important;border-radius:8px!important;box-shadow:none;text-align:left;line-height:1.35}
body :is(.section-navigation,.admin-navigation,.nf-module-tabs)>button:not([data-ui-action]):hover{background:#084766}
body :is(.section-navigation,.admin-navigation,.nf-module-tabs)>button:is([aria-current=page],[aria-selected=true],[aria-pressed=true],.active,.primary){background:#f0b638;color:#262519}
body :is(.section-navigation,.admin-navigation,.nf-module-tabs)>button small{color:#e0eef5;font-size:12px}
body :is(.section-navigation,.admin-navigation,.nf-module-tabs)>button:is([aria-current=page],[aria-selected=true],[aria-pressed=true],.active,.primary) small{color:#594b2b}
body button[data-ui-action]{min-height:44px;padding:10px 16px;border:2px solid var(--nf-stroke)!important;border-radius:8px!important;box-shadow:none!important;line-height:1.3;background:#fffaf1!important;color:#293338!important;transition:filter .15s}
body button[data-ui-action=create]{background:var(--nf-amber)!important;color:#282519!important}
body button:is([data-ui-action=save],[data-ui-action=confirm]){background:var(--nf-green)!important;color:#fff!important}
body button[data-ui-action=edit]{background:#e5dcef!important;color:#503c6b!important}
body button:is([data-ui-action=cancel],[data-ui-action=danger]){background:var(--nf-red)!important;color:#fff!important}
body button[data-ui-action]:hover:not(:disabled){filter:brightness(.96)}
body button[data-ui-action]:disabled{background:#e1e4e3!important;color:#68716e!important;cursor:not-allowed;filter:none;opacity:1}
body td button[data-ui-action]{min-height:40px;padding:8px 12px}
body :is(button,input,select,textarea,a):focus-visible{outline:3px solid var(--nf-blue);outline-offset:3px}
/* Preserve specialized calendars, financial aggregates and permission matrices. */
body :is(.table-wrap,.nf-table-frame){border:2px solid var(--nf-stroke);border-radius:10px;background:#fff}
body table[data-ui-table]{border-collapse:separate;border-spacing:0;margin:0;width:100%}
body table[data-ui-table] :is(th,td){border-color:var(--nf-stroke)!important;border-width:0 1px 1px 0;border-style:solid;vertical-align:middle}
body table[data-ui-table] tr>:last-child{border-right:0}
body table[data-ui-table]>tbody:last-child>tr:last-child>*{border-bottom:0}
body table[data-ui-table]>thead>tr>th{background:var(--nf-blue)!important;color:#fff!important}
body table[data-ui-table]>tbody>tr:nth-child(odd)>td{background:#fff}
body table[data-ui-table]>tbody>tr:nth-child(even)>td{background:#eef2f4}
body :is(.numeric,.amount,[data-ui-amount]){font-variant-numeric:tabular-nums}
.nf-positive{color:#216c40!important}.nf-negative{color:#a22f38!important}.nf-zero{color:#566468!important}
/* Fields keep their existing semantics, column count and permissions. */
body :is(form,.filters,.form-grid) :is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=hidden]),select,textarea){border:2px solid var(--nf-stroke);border-radius:8px;min-height:44px;box-sizing:border-box}
body :is(form,.form-grid) textarea{min-height:100px}
body :is(form,.filters,.form-grid) :is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=hidden],[type=file]),select){height:44px}
body :is(input,textarea)[readonly]{background:#eef1f1;color:#53615e}
body :is(input,select,textarea)[aria-invalid=true]{border-color:var(--nf-red)!important}
body dialog{border:2px solid var(--nf-stroke);border-radius:12px;max-height:90dvh}
body dialog:has(form){width:min(1140px,calc(var(--nf-viewport-width,100vw) - 40px))}
body dialog:not(:has(form)){width:min(720px,calc(var(--nf-viewport-width,100vw) - 40px))}
body dialog .technical-dialog{min-width:0;max-width:none}
body dialog>h2:first-child,body dialog>div>h2:first-child{position:sticky;top:-28px;z-index:3;background:#fffaf3;padding:12px 0;margin-top:0}
body dialog form>.actions:last-child{position:sticky;bottom:-28px;z-index:2;justify-content:flex-end;background:#fffaf3;padding:16px 0;margin-bottom:0;border-top:1px solid var(--nf-stroke)}
@media(max-width:650px){body :is(.section-navigation,.admin-navigation,.nf-module-tabs)>button:not([data-ui-action]){flex-basis:140px}body dialog{padding:18px}body dialog form>.actions:last-child{bottom:-18px}body table.table-fit[data-ui-table] tbody>tr>:is(th,td){border:0}}

/* All module tab text is bold: active/inactive labels, descriptions and counts. */
body :is(.section-navigation,.admin-navigation,.nf-module-tabs,.recipe-tabs,.development-tabs,.fl-tabs,.margin-tabs,.work-hub-tabs,.tech-tabs,.tech-request-tabs,.fin-billing-tabs,.fin-invoice-tabs,.play-room-tabs) > :is(button,a):not([data-ui-action]),
body :is(.section-navigation,.admin-navigation,.nf-module-tabs,.recipe-tabs,.development-tabs,.fl-tabs,.margin-tabs,.work-hub-tabs,.tech-tabs,.tech-request-tabs,.fin-billing-tabs,.fin-invoice-tabs,.play-room-tabs) > :is(button,a):not([data-ui-action]) *,
body [role="tab"],body [role="tab"] *{font-weight:700!important}
/* Shared responsibility controls in I&D, products and receipt admission. */
label.client-responsibility,
.form-grid label.client-responsibility,
.recipe-table label.client-responsibility{display:flex;flex-direction:row;align-items:flex-start;gap:9px;min-width:0;margin:10px 0 0;padding:10px 12px;border:1px solid #bacad0;border-radius:8px;background:#f2f6f7;color:#263d47;font-size:12px;font-weight:500;line-height:1.45;text-align:left;white-space:normal}
.client-responsibility input[type=checkbox],.recipe-table .client-responsibility input[type=checkbox]{flex:0 0 18px;width:18px!important;height:18px!important;min-height:18px!important;min-width:18px!important;margin:1px 0 0;padding:0;accent-color:#0b587c}
.client-responsibility span{display:block;min-width:0;overflow-wrap:anywhere}
.material-responsibility-field{min-width:0;align-self:start}
.material-responsibility-field.is-client{border-left:3px solid #0b587c;padding-left:10px}
.responsibility-note{display:block;color:#45616c;font-size:11px;font-weight:500;line-height:1.5;margin-top:6px;white-space:normal}
.responsibility-note[hidden]{display:none}
[data-admission-client][hidden]{display:none!important}
.product-extra-materials{margin-top:20px}
