/* THRIVON · Unified Interface System v3.7
   This is the LAST application stylesheet. It standardizes every operational
   module over legacy CSS without changing fields, IDs, attributes or data flow.
   4px grid · Inter typography · 46px controls · 12px radii · semantic tokens.
*/
:root{
  --ui-type-xs:11px;--ui-type-sm:12px;--ui-type-body:13px;--ui-type-label:12.5px;
  --ui-type-section:17px;--ui-type-title:27px;--ui-control-height:46px;
  --ui-space:16px;--ui-gap:18px;--ui-radius:12px;--ui-card-radius:18px;
  --ui-border:var(--t-line);--ui-input-border:var(--t-line-strong);
  --ui-surface:var(--t-paper);--ui-subtle:var(--t-paper-alt);
  --ui-ink:var(--t-ink-strong);--ui-muted:var(--t-muted);
  --ui-surface-shadow:0 4px 22px rgba(14,38,58,.035);
}
:root[data-theme="dark"]{--ui-surface-shadow:0 4px 22px rgba(0,0,0,.1)}
/* Unified content header and section typography */
:where(.ops-page,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard){font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--t-ink)}
:where(.ops-page,.inv-page,.fin-page,.booking-shell,.os-page) :where(h1,h2,h3,h4){color:var(--ui-ink);letter-spacing:-.028em}
.ops-page .ops-header{margin-bottom:24px;align-items:center;gap:16px}
.ops-page .ops-header h1{font-size:clamp(24px,2.2vw,29px);font-weight:760;letter-spacing:-.045em;line-height:1.18;margin:5px 0 8px}
.ops-page .ops-header p{font-size:13px;color:var(--ui-muted);line-height:1.7;max-width:640px}
.ops-eyebrow,.ui-eyebrow{display:block;font-weight:800;font-size:10px;letter-spacing:.105em;line-height:1.6;text-transform:uppercase;color:var(--t-success-ink)}
.ops-page .ops-toolbar{margin:22px 0 16px;gap:16px;min-height:48px}
.ops-page .ops-toolbar h3,.ops-page .ops-fin-actions h3{color:var(--ui-ink);font-size:17px;font-weight:740;letter-spacing:-.025em;margin:0 0 4px}
.ops-page .ops-toolbar p,.ops-page .ops-fin-actions p{color:var(--ui-muted);font-size:13px;line-height:1.55;margin:0}
.ops-section-title h2{font-weight:760;font-size:20px;letter-spacing:-.035em}
.ops-section-title p,.ops-caption{color:var(--ui-muted);font-size:12px;line-height:1.6}
/* Global button styles: 46px large, 40px compact, consistent weight and focus */
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) :where(.ops-button,.btn,.wa-btn,.bi-refresh,.bi-export,.bi-link){display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid var(--t-line-strong);background:var(--t-paper);color:var(--t-ink);border-radius:10px;min-height:42px;padding:9px 15px;font:650 12.5px/1.35 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;white-space:normal;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) :where(.ops-button,.btn,.wa-btn,.bi-refresh,.bi-export,.bi-link):hover:not(:disabled){border-color:var(--t-action);background:var(--t-menu-hover)}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) :where(.ops-button.primary,.btn.primary,.wa-btn:not(.secondary)){background:var(--t-action);color:#fff;border-color:var(--t-action);font-weight:740}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) :where(.ops-button.primary,.btn.primary,.wa-btn:not(.secondary)):hover:not(:disabled){background:var(--t-action-hover);color:#fff;border-color:var(--t-action-hover);box-shadow:0 6px 16px rgba(0,137,86,.17)}
:root[data-theme="dark"] :where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) :where(.ops-button.primary,.btn.primary,.wa-btn:not(.secondary)){color:#04241b}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) button:disabled{opacity:.5;cursor:not-allowed}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.bi-dashboard) button:focus-visible{outline:2px solid var(--t-action)!important;outline-offset:3px}
/* Fields: identical type sizes, geometry, hover, disabled, placeholder, focus */
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.cloud-dialog,.modal) :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){box-sizing:border-box;width:100%;min-width:0;min-height:var(--ui-control-height);border:1px solid var(--ui-input-border);border-radius:11px;background:var(--t-input);color:var(--ui-ink);padding:11px 13px;font:500 13.5px/1.4 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 1px 2px rgba(10,34,54,.025);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.cloud-dialog,.modal) :where(textarea){resize:vertical;min-height:100px;line-height:1.55}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.cloud-dialog,.modal) :where(input,textarea)::placeholder{color:var(--t-faint);font-weight:450}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.cloud-dialog,.modal) :where(input:not([type=checkbox]),select,textarea):focus{border-color:var(--t-action);box-shadow:var(--t-focus);outline:none}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view,.cloud-dialog,.modal) :where(input:not([type=checkbox]),select,textarea):disabled{background:var(--t-paper-alt);color:var(--t-faint);cursor:not-allowed}
:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view) :where(input[type=checkbox],input[type=radio]){accent-color:var(--t-action);cursor:pointer}
:where(.ops-field,.os-field,.booking-control,.inv-field,.fin-field,.wa-field,.field,.cloud-form label,.ops-filter,.ops-os-tools label){color:var(--t-ink);font-size:var(--ui-type-label);line-height:1.45;font-weight:670;letter-spacing:-.005em;gap:8px}
:where(.ops-field,.os-field,.booking-control,.inv-field,.fin-field,.wa-field,.field,.cloud-form label,.ops-filter,.ops-os-tools label) :where(small,.note,.hint){font-size:11.5px;color:var(--ui-muted);font-weight:450;line-height:1.55}
.ops-field>span:first-child{color:var(--t-ink);font-weight:690;font-size:12.5px}
.ops-field[hidden]{display:none!important}
/* Cards and data: no module-specific pale grey blocks or hardcoded blue */
:where(.ops-page,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view) :where(.ops-stat,.inv-stat,.booking-stat,.ops-fin-metric,.ops-fin-summary-card,.inv-panel,.booking-panel,.ops-calendar-box,.ops-inventory-summary,.ops-public-service,.ops-fin-card,.wa-card,.wa-stat){background:var(--ui-surface);color:var(--t-ink);border:1px solid var(--t-line);border-radius:var(--ui-card-radius);box-shadow:var(--ui-surface-shadow)}
.ops-page .ops-stats{gap:14px;margin:20px 0 25px;grid-template-columns:repeat(3,minmax(0,1fr))}
.ops-page .ops-stat{padding:21px 22px;min-height:112px;gap:9px;position:relative;overflow:hidden}
.ops-page .ops-stat:before{content:"";position:absolute;left:0;top:22px;width:3px;height:37px;background:var(--t-green);border-radius:0 4px 4px 0;opacity:.9}
.ops-page .ops-stat span,.ops-page .ops-stat small{font-size:12px;font-weight:560;color:var(--ui-muted);line-height:1.35}
.ops-page .ops-stat strong{font-size:clamp(21px,2vw,27px);line-height:1.25;font-weight:760;letter-spacing:-.045em;color:var(--ui-ink)}
:where(.ops-page,.inv-page,.fin-page,.booking-shell) :where(.ops-table-wrap,.ops-week,.table-wrap,.inv-table-wrap,.booking-table-wrap){background:var(--t-paper);border:1px solid var(--t-line);border-radius:14px;box-shadow:var(--ui-surface-shadow);overflow-x:auto;max-width:100%}
:where(.ops-page,.inv-page,.fin-page,.booking-shell) :where(.ops-table,.inv-table,.booking-table){border-collapse:collapse;font-size:13px;color:var(--t-ink)}
:where(.ops-page,.inv-page,.fin-page,.booking-shell) :where(.ops-table,.inv-table,.booking-table) th{background:var(--t-paper-alt);color:var(--t-muted);font-size:10px;letter-spacing:.085em;text-transform:uppercase;font-weight:780;padding:15px 16px;border-bottom:1px solid var(--t-line)}
:where(.ops-page,.inv-page,.fin-page,.booking-shell) :where(.ops-table,.inv-table,.booking-table) td{color:var(--t-ink);font-size:12.5px;padding:17px 16px;border-bottom:1px solid var(--t-line);vertical-align:middle}
:where(.ops-page,.inv-page,.fin-page,.booking-shell) :where(.ops-table,.inv-table,.booking-table) tbody tr:hover{background:var(--t-paper-alt)}
.ops-table td strong,.ops-table td b{font-size:13px;font-weight:690;color:var(--ui-ink)}
.ops-table td small{font-size:11.5px;color:var(--ui-muted)}
/* Inventory overview uses the same visual rhythm as Dashboard and Finance */
.ops-inventory-summary.ui-module-section{padding:24px 25px;margin:18px 0 25px;background:var(--t-paper);border-radius:19px;border:1px solid var(--t-line);box-shadow:var(--ui-surface-shadow)}
.ui-module-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:4px}
.ui-module-section-head h3,.ui-table-caption h3{font-size:19px;font-weight:760;letter-spacing:-.035em;margin:4px 0;color:var(--ui-ink)}
.ui-module-section-head p,.ui-table-caption p{font-size:12.5px;line-height:1.5;color:var(--ui-muted);margin:5px 0 0}
.ui-section-emblem{width:45px;height:45px;display:grid;place-items:center;border-radius:13px;background:var(--t-success-bg);color:var(--t-success-ink);font-size:22px;font-weight:400;flex:none}
.ui-module-section .ops-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:20px 0 0}
.ui-module-section .ops-stat{background:var(--t-paper-alt);border-color:var(--t-line);box-shadow:none;min-height:106px}
.ui-table-caption{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:25px 0 13px}
.ui-table-caption p{max-width:360px;text-align:right}
/* Settings: deliberate card instead of fields floating on canvas */
.ops-settings-form{box-sizing:border-box;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 22px;background:var(--t-paper);padding:27px 29px 29px;margin-top:16px;border:1px solid var(--t-line);border-radius:19px;box-shadow:var(--ui-surface-shadow);max-width:1140px}
.ops-settings-form .ops-field{gap:8px}
.ops-settings-form .ui-grid-section:first-child{margin-top:0;padding-top:0;border-top:none}
.ops-settings-form .ops-checklist{gap:9px}
.ops-settings-form .ops-checklist label{background:var(--t-paper-alt);border:1px solid var(--t-line);border-radius:11px;padding:12px 14px;min-height:48px;color:var(--t-ink);font-weight:620;font-size:12px;display:inline-flex;gap:9px;transition:background .14s,border-color .14s}
.ops-settings-form .ops-checklist label:has(input:checked){background:var(--t-success-bg);border-color:var(--t-action);color:var(--t-success-ink)}
.ops-settings-form>.ops-button[type=submit]{grid-column:1/-1;min-height:46px;max-width:270px;justify-self:end;margin-top:6px}
.ui-grid-section{grid-column:1/-1;padding:21px 0 1px;border-top:1px solid var(--t-line);margin-top:2px}
.ui-grid-section h3{font-size:17px!important;font-weight:760;letter-spacing:-.025em;margin:3px 0 4px!important;color:var(--ui-ink)!important}
.ui-grid-section p{font-size:12px;color:var(--ui-muted);margin:0;line-height:1.55;font-weight:450}
/* Cloud dialogs: header, well-spaced sections, consistent footer actions */
#opsOverlay{background:rgba(5,18,32,.64);backdrop-filter:blur(5px);padding:18px}
#opsOverlay .ops-modal{background:var(--t-paper);color:var(--t-ink);width:min(770px,100%);border:1px solid var(--t-line);border-radius:20px;box-shadow:0 28px 90px rgba(0,11,24,.25)}
#opsOverlay .ops-modal>header{padding:23px 27px 20px;gap:15px;border-bottom:1px solid var(--t-line);background:var(--t-paper);align-items:flex-start}
#opsOverlay .ui-dialog-title h2{font-size:21px;color:var(--ui-ink);font-weight:770;margin:3px 0 5px;letter-spacing:-.04em}
#opsOverlay .ui-dialog-title p{margin:0;font-size:12px;color:var(--ui-muted);line-height:1.55}
#opsOverlay .ops-close{width:36px;height:36px;min-height:36px;flex:0 0 36px;border:1px solid var(--t-line);border-radius:10px;background:var(--t-paper-alt);color:var(--t-muted);font-size:24px;display:grid;place-items:center;line-height:1;transition:background .16s}
#opsOverlay .ops-close:hover{background:var(--t-menu-active);color:var(--t-ink)}
#opsOverlay .ops-modal-body{padding:25px 27px 27px;background:var(--t-paper);overscroll-behavior:contain}
#opsOverlay .ops-form{gap:18px 18px}
#opsOverlay .ops-form-actions{border-top:1px solid var(--t-line);padding-top:20px;margin-top:7px;gap:9px;align-items:center}
#opsOverlay .ops-form-actions .ops-button{min-height:43px;padding:10px 19px}
#opsOverlay .ops-form-actions .ops-button.primary{min-width:148px}
#opsOverlay .ops-service-form>label.ops-field:first-of-type{grid-column:1/-1}
#opsOverlay .ops-service-form textarea{min-height:88px}
#opsOverlay .ops-service-publish .ops-checkbox-line{min-height:46px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--t-line);background:var(--t-paper-alt);border-radius:11px;color:var(--t-ink);font-weight:600}
#opsOverlay .ops-service-publish .ops-checkbox-line input{width:17px;height:17px}
#opsOverlay .ops-product-editor{gap:0;display:flex;flex-direction:column}
#opsOverlay .ui-form-section{display:flex;flex-direction:column;gap:16px;padding:21px 0 22px;border-bottom:1px solid var(--t-line);min-width:0}
#opsOverlay .ui-form-section:first-of-type{padding-top:0}
#opsOverlay .ui-form-section:last-of-type{border-bottom:0;padding-bottom:8px}
#opsOverlay .ui-form-section-title{display:flex;flex-direction:column;gap:1px}
#opsOverlay .ui-form-section-title h3{font-size:17px;font-weight:760;line-height:1.28;margin:3px 0!important;color:var(--ui-ink);letter-spacing:-.03em}
#opsOverlay .ui-form-section-title p{margin:0 0 2px;color:var(--ui-muted);font-size:12px;line-height:1.55}
#opsOverlay .ops-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
#opsOverlay .ops-product-editor .ops-field{margin:0;gap:8px}
#opsOverlay .ops-product-editor input:not([type=checkbox]),#opsOverlay .ops-product-editor select{height:var(--ui-control-height);min-height:var(--ui-control-height);border-color:var(--ui-input-border);border-radius:11px}
#opsOverlay .ops-product-editor .ops-form-actions{width:100%;border-top:1px solid var(--t-line);margin-top:14px}
#opsOverlay .ops-product-editor .ops-caption{margin:0;border-left:3px solid var(--t-action);padding:10px 12px;background:var(--t-paper-alt);border-radius:0 10px 10px 0}
/* The OS editor and other cloud modals inherit the same control geometries */
#opsOverlay .ops-os-large{width:min(1040px,100%)}
#opsOverlay .ops-os-large .ops-modal-body{padding:0 23px 24px}
#opsOverlay .ops-os-section-head{border-color:var(--t-line)}
#opsOverlay .ops-os-section-head h3{color:var(--ui-ink);font-size:17px}
#opsOverlay .ops-os-field label,#opsOverlay .ops-os-field span{color:var(--t-ink)}
/* Legacy local/demo forms and module-specific popups follow the same tokens */
:where(.inv-dialog,.stock-dialog,.fin-modal,.os-modal,.cal-dialog,.calendar-dialog,.cloud-dialog,.wa-dialog,.modal){background:var(--t-paper);color:var(--t-ink);border:1px solid var(--t-line);border-radius:19px;box-shadow:var(--t-shadow-lg)}
:where(.inv-dialog-head,.stock-dialog-head,.fin-modal-head,.cal-dialog-head,.modal-head){border-bottom:1px solid var(--t-line);background:var(--t-paper);color:var(--ui-ink)}
:where(.inv-dialog-head,.stock-dialog-head,.fin-modal-head,.cal-dialog-head,.modal-head) h2{font-size:19px;font-weight:750;letter-spacing:-.03em;color:var(--ui-ink)}
:where(.inv-form,.fin-form,.os-form,.booking-form,.cloud-form-inline){row-gap:18px;column-gap:18px}
:where(.inv-form-grid,.booking-grid,.os-grid){gap:16px}
:where(.inv-tip,.ops-banner,.cloud-banner,.booking-demo-ribbon){background:var(--t-paper-alt);color:var(--ui-muted);border:1px solid var(--t-line);border-radius:12px;font-size:12px;line-height:1.65}
:where(.inv-panel,.fin-panel,.booking-panel,.os-panel,.cal-panel,.cloud-team-card){background:var(--t-paper);border:1px solid var(--t-line);border-radius:var(--ui-card-radius);box-shadow:var(--ui-surface-shadow)}
:where(.inv-stat,.booking-stat,.ops-fin-metric){border-color:var(--t-line);background:var(--t-paper);border-radius:16px;box-shadow:var(--ui-surface-shadow)}
:where(.inv-stat,.booking-stat,.ops-fin-metric)>:where(strong,b){color:var(--ui-ink);font-weight:750;letter-spacing:-.03em}
:where(.inv-stat,.booking-stat,.ops-fin-metric)>:where(small,span){color:var(--ui-muted);font-size:12px}
:root[data-theme="dark"] :where(.ops-page,.inv-page,.fin-page,.booking-shell,.os-page,.wa-view) :where(.ops-inventory-summary,.ops-stat,.ops-table-wrap,.ops-table,.ops-fin-metric,.ops-fin-card,.ops-kanban-lane,.ops-order-card,.ops-apcard,.ops-lane,.ops-week,.ops-month>button,.ops-calendar-box,.booking-panel,.inv-panel,.inv-stat,.booking-stat,.fin-panel,.os-panel,.ops-public-service){background:var(--t-paper);color:var(--t-ink);border-color:var(--t-line)}
:root[data-theme="dark"] :where(.ops-page,.inv-page,.fin-page,.booking-shell,.os-page) :where(th,small,.ops-caption){border-color:var(--t-line)}
:root[data-theme="dark"] #opsOverlay :where(.ops-field,.ops-caption,.ops-close){color:var(--t-ink)}
/* Responsive: true one-column forms, no clipped buttons, readable labels */
@media(max-width:900px){.ops-page .ops-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-settings-form{padding:23px}.ui-table-caption{align-items:start;flex-direction:column}.ui-table-caption p{text-align:left}}
@media(max-width:720px){
  .ops-page .ops-header h1{font-size:24px}
  .ops-page .ops-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .ops-page .ops-stat{padding:17px;min-height:100px}
  .ops-page .ops-stat strong{font-size:21px}
  .ops-settings-form{grid-template-columns:minmax(0,1fr);padding:19px 17px;gap:16px}
  .ops-settings-form>.ops-button[type=submit]{max-width:none;width:100%}
  .ops-inventory-summary.ui-module-section{padding:18px 15px}
  .ui-module-section .ops-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  #opsOverlay{padding:0;align-items:end}
  #opsOverlay .ops-modal{width:100%;max-height:95dvh;border-radius:20px 20px 0 0;border-bottom:0}
  #opsOverlay .ops-modal>header{padding:20px 18px 17px}
  #opsOverlay .ops-modal-body{padding:19px 17px 22px}
  #opsOverlay .ops-form{grid-template-columns:minmax(0,1fr);gap:15px}
  #opsOverlay .ops-product-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  #opsOverlay .ui-form-section{padding:19px 0}
  #opsOverlay .ops-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  #opsOverlay .ops-form-actions .ops-button{min-width:0;width:100%;padding:10px 7px}
  #opsOverlay .ops-os-large .ops-modal-body{padding:0 15px 20px}
  #opsOverlay .ui-dialog-title h2{font-size:19px}
  .ops-page .ops-toolbar{align-items:flex-start}
}
@media(max-width:360px){.ops-page .ops-stat{padding:14px;min-height:95px}.ops-page .ops-stat span{font-size:11px}.ops-page .ops-stat strong{font-size:19px}.ops-settings-form .ops-checklist label{padding:10px 9px}.ui-grid-section h3{font-size:16px!important}}
@media(prefers-reduced-motion:reduce){:where(.ops-page,#opsOverlay,.inv-page,.fin-page,.booking-shell) *{transition-duration:.01ms!important;animation-duration:.01ms!important}}
/* Higher specificity than pre-v3.3 module styles: eliminate 39px legacy controls. */
#content .ops-page .ops-form .ops-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
#content .ops-page .ops-filter :is(input:not([type=checkbox]),select),
#content .ops-page .ops-os-tools :is(input:not([type=checkbox]),select),
#opsOverlay .ops-form .ops-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
#opsOverlay .ops-os-field :is(input:not([type=checkbox]),select,textarea){
  box-sizing:border-box;min-height:var(--ui-control-height);height:auto;
  padding:11px 13px;border:1px solid var(--t-line-strong);border-radius:11px;
  background:var(--t-input);color:var(--t-ink-strong);font-size:13.5px;font-weight:520;
}
#content .ops-page .ops-form .ops-field textarea,
#opsOverlay .ops-form .ops-field textarea{min-height:100px;resize:vertical}
#content .ops-page .ops-form .ops-field :is(input:not([type=checkbox]),select,textarea):focus,
#opsOverlay .ops-form .ops-field :is(input:not([type=checkbox]),select,textarea):focus{
  outline:none;border-color:var(--t-action);box-shadow:var(--t-focus)
}
#content .ops-page .ops-page-head :where(input,select),
#content .ops-page .ops-calendar-toolbar :where(input,select){min-height:var(--ui-control-height)}
#opsOverlay .ops-service-form .ui-grid-section:first-of-type{padding-top:0;border-top:0}
#opsOverlay .ops-form-actions{position:sticky;bottom:-27px;z-index:2;background:var(--t-paper);padding:15px 2px 3px;box-shadow:0 -8px 16px -15px rgba(3,29,40,.25)}
/* Dark theme must win over every hardcoded white input from old operations code. */
:root[data-theme="dark"] #content .ops-page .ops-settings-form .ops-field :is(input:not([type=checkbox]),select,textarea),
:root[data-theme="dark"] #content .ops-page .ops-form .ops-field :is(input:not([type=checkbox]),select,textarea),
:root[data-theme="dark"] #opsOverlay .ops-form .ops-field :is(input:not([type=checkbox]),select,textarea),
:root[data-theme="dark"] #opsOverlay .ops-os-field :is(input:not([type=checkbox]),select,textarea){
  background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong)
}
/* Fixed dark navigation/header contrast, outside of operational modules. */
:root[data-theme="dark"] .topbar .vivi-open-btn,
:root[data-theme="dark"] .topbar .theme-toggle,
:root[data-theme="dark"] .topbar .logout-btn{background:var(--t-paper);color:var(--t-ink);border-color:var(--t-line-strong)}
:root[data-theme="dark"] .topbar :is(.vivi-open-btn,.theme-toggle,.logout-btn):hover{background:var(--t-paper-alt);color:var(--t-ink-strong)}
:root[data-theme="dark"] .ops-page .ops-settings-form :where(.ui-grid-section h3,.ui-grid-section p){color:var(--t-ink)}
/* v3.7 quality gate: apply 46px inputs to every existing (demo + cloud) form family. */
body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.cloud-form label,.ops-field) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),select,textarea),
#content :is(.inv-page,.booking-shell,.fin-page,.os-page,.wa-view,.bi-dashboard) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.ops-field) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),select,textarea){
 box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:var(--ui-control-height);
 border:1px solid var(--t-line-strong);border-radius:11px;padding:11px 13px;
 background:var(--t-input);color:var(--t-ink);font-size:13.5px;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-weight:510;line-height:1.4
}
body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.cloud-form label,.ops-field) textarea,
#content :is(.inv-page,.booking-shell,.fin-page,.os-page,.wa-view) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.ops-field) textarea{min-height:98px;resize:vertical}
body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.cloud-form label,.ops-field) :is(input:not([type=checkbox]),select,textarea):focus{outline:none;border-color:var(--t-action);box-shadow:var(--t-focus)}
body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.cloud-form label,.ops-field){color:var(--t-ink);font-weight:690;font-size:12.5px;line-height:1.45;gap:8px}
body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.modal-foot,.os-form-actions,.inv-form-actions){border-color:var(--t-line);background:var(--t-paper)}
body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.btn.primary,.ops-button.primary){min-height:43px;background:var(--t-action);border-color:var(--t-action);color:#fff}
:root[data-theme="dark"] body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.field,.inv-field,.booking-control,.fin-field,.wa-field,.cloud-form label,.ops-field) :is(input:not([type=checkbox]),select,textarea){background:var(--t-input);color:var(--t-ink);border-color:var(--t-line-strong)}
:root[data-theme="dark"] body :is(.modal,.stock-dialog,.inv-dialog,.fin-modal,.cal-modal,.cloud-dialog,.wa-dialog) :is(.btn.primary,.ops-button.primary){color:#05251b}
@media(max-width:640px){.modal .form-grid,.stock-dialog .inv-form,.booking-panel .booking-grid{gap:15px}}
