/* A Halo Ring follows semantic component colour, never information-only rows. */
:root{--action-ring:#177357}
button,a[href],summary,[role=button],[role=tab]{--ring:var(--action-ring)}
.danger,.destructive{--ring:#a54137}.warning{--ring:#9b711b}.search-button{--ring:#315f7c}
@media(hover:hover){:is(button,a[href],summary,[role=button],[role=tab]):not(:disabled):not([aria-disabled=true]):hover{outline:2px solid var(--ring);outline-offset:1px;box-shadow:0 0 0 4px color-mix(in srgb,var(--ring) 20%,transparent);cursor:pointer}}
:is(button,a[href],summary,[role=button],[role=tab],input,select,textarea):not(:disabled):not([aria-disabled=true]):focus-visible{outline:2px solid var(--ring,var(--action-ring));outline-offset:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--ring,var(--action-ring)) 20%,transparent)}
:is(button,a[href],summary,[role=button],[role=tab]):not(:disabled):not([aria-disabled=true]):active{filter:brightness(.92)}
:is(button,[role=button],[role=tab]):is(:disabled,[aria-disabled=true]){box-shadow:none!important;outline:none!important;transform:none!important;cursor:default!important;filter:none!important}
.contained-list{max-height:min(62vh,680px);overflow:auto;overscroll-behavior:contain;padding:0;scrollbar-width:thin;position:relative}
/* One opaque header at the scroll edge; no padding gap or collapsed-border bleed. */
:is(.contained-list,.stock-scroll,.profit-tablewrap)>table{margin-block:0;border-collapse:separate;border-spacing:0}
:is(.contained-list,.stock-scroll,.profit-tablewrap)>table>thead{position:sticky;top:0;z-index:2;background:var(--panel,#fff)}
:is(.contained-list,.stock-scroll,.profit-tablewrap)>table>thead th{position:static;background:var(--panel,#fff)}
.list-state{font-size:13px;padding:8px}.list-more{margin:8px}.pos-subtotal{font-weight:700;background:#e9f4ef}
#notice:not(:empty){position:fixed;z-index:1100;bottom:14px;left:max(16px,calc((100vw - 760px)/2));right:max(16px,calc((100vw - 760px)/2));padding:12px 16px;background:#edf7f1;border:1px solid #9cbba9;border-radius:8px;box-shadow:0 3px 16px #0002;max-height:26vh;overflow:auto}
#notice.error{background:#fff4ef;border-color:#b97765}
.settings-work .columns{display:block}.settings-work [data-settings-list]{display:none}.settings-work [data-settings-editor]{max-width:760px;margin:auto}.settings-save{position:static}
.field-error{color:#9b352b;display:block;font-size:13px;margin:6px 0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

.employee-report .sales-table{display:table;min-width:760px}.employee-report .sales-table thead{display:table-header-group}.employee-report .sales-table tbody{display:table-row-group}.employee-report .sales-table tr{display:table-row}.employee-report .sales-table :is(th,td){display:table-cell;padding:12px;white-space:normal}.employee-report .sales-table td::before{display:none}.employee-report .sales-table td:last-child{min-width:230px}.employee-footer{overflow:auto;margin-top:16px}.employee-total{font-weight:700}
.contained-list .activity-row{flex-shrink:0;width:100%}

.contained-list .sales-table{display:table;min-width:640px}.contained-list .sales-table thead{display:table-header-group}.contained-list .sales-table tbody{display:table-row-group}.contained-list .sales-table tr{display:table-row}.contained-list .sales-table :is(th,td){display:table-cell;padding:12px}.contained-list .sales-table td::before{display:none}
:is(a[href],summary,input,select,textarea):is(:disabled,[aria-disabled=true]){box-shadow:none!important;outline:none!important;transform:none!important;cursor:default!important;animation:none!important;transition:none!important}
button:disabled:hover{background:#edf1ee}button.primary:disabled:hover{background:var(--green,#245b4b)}

.employee-report .sales-table th{white-space:nowrap;overflow-wrap:normal}
.catalog-table tbody tr:not([data-action-row]):hover{cursor:default}
@media(hover:hover){[data-action-row]:hover:not(:has(button:hover,input:hover,summary:hover)){outline:2px solid var(--action-ring);outline-offset:-2px;box-shadow:inset 0 0 0 4px color-mix(in srgb,var(--action-ring) 20%,transparent);cursor:pointer}}
[data-action-row]:active:not(:has(button:active,input:active,summary:active)){background:#e4eee9}

/* Global maturity: bounded work areas and field proportions, opt-in at module builders. */
:root{--work-top:80px;--work-gap:12px}
.work-fields{display:flex;flex-direction:row;flex-wrap:wrap;align-items:end;gap:var(--work-gap)}
.work-fields>label{flex:1 1 200px;min-width:0;max-width:360px;margin:0}
.work-fields>label:has(input[type=number]:not(.money-input)){flex:0 1 96px;max-width:120px}
.work-fields>label:has(.money-input){flex:0 1 190px;max-width:240px}
.work-fields>label:has(input[type=date]){flex:0 1 160px}
.work-fields>label:has(input[type=search],.product-picker){flex:2 1 320px;max-width:560px}
.work-fields>label:has(textarea){flex:1 1 360px;max-width:none}
.work-fields>label:has(input[type=checkbox]){flex:0 1 auto;align-self:center}
.work-fields>label>input,.work-fields>label>select{width:100%}
.work-fields>button{flex:0 0 auto;max-width:100%}
.optional-fields{margin:6px 0;font-size:13px;min-width:0}
.optional-fields>summary{min-height:40px;padding:9px 0;color:var(--green);font-weight:600}
.optional-fields[open]{padding-bottom:6px}
.optional-fields>label{margin:0}.optional-fields>summary:focus-visible{outline-offset:-2px}
.work-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;background:white;border:1px solid var(--line);border-radius:8px}
.work-actions>button{flex:0 1 auto}.work-feedback:empty{display:none}.work-feedback{color:var(--danger);margin:8px 0;font-size:13px;scroll-margin:var(--work-top) 0 120px}
.work-feedback:focus{outline:0}
.tab :is(input,select,textarea,button,summary,.work-section){scroll-margin-top:var(--work-top);scroll-margin-bottom:120px}
.tab input[readonly],.tab textarea[readonly]{background:#f0f4f1;color:#52665d;border-style:dashed}
.tab :is(input,select,textarea):disabled{background:#f1f3f2;color:#68786f}
.tab input[type=number],.tab .money-input{font-variant-numeric:tabular-nums}
#notice:not(:empty){position:sticky;top:var(--work-top);left:auto;right:auto;bottom:auto;max-height:24vh;margin-bottom:12px}
#user-list,#client-list,#pos-list{max-height:min(62vh,650px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:6px}
.settings-work #client-form{max-width:760px;width:100%;margin:0 auto}
.admin-search{max-width:480px;margin:0 0 14px}.settings-work>.admin-search{display:none}
.settings-save{position:static}
#roles .settings-save{position:static;box-shadow:none}
/* Actions stay after the content they submit, instead of covering unread fields. */
.checkout-footer.work-actions,.receiving-review-actions,.cash-history-summary,#update-banner{position:static}
.service-intake{max-width:900px;background:white;border:1px solid var(--line);border-radius:9px;padding:20px}
.service-basic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.service-basic>label{max-width:none;margin:0}.service-basic>label:has(textarea){grid-column:1/-1}
.service-basic>.optional-fields{grid-column:1/-1}
.service-intake .service-intake-head{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px}.service-intake label{margin-top:0}
.service-intake>.work-actions{margin-top:16px}.service-intake .optional-fields .work-fields{align-items:start}
.service-work #service-content>*:not(.page-heading):not(.service-focus){display:none!important}
.service-focus{max-width:900px;margin:16px 0!important;scroll-margin-top:var(--work-top)}
.service-focus>h2:first-child{margin-top:0}
.service-focus .primary{min-height:44px}
.service-secondary{margin:0 0 12px}
.detail-actions{padding-bottom:12px;margin:14px 0;align-items:center}
#service-content .detail-actions .primary:first-child{order:-1}
.cash-history-filters label:has(input[type=search]){flex:2 1 180px}
.cash-history-filters label:has(input[type=date]){flex:1 1 132px}
#cash-check-history{height:min(54vh,580px);min-height:240px;max-height:none}
.cash-denominations input{min-height:40px}
.cash-save-actions{position:static}
.cash-count-layout>.work-section{padding:16px}
.table-scroll,.profit-tablewrap,.contained-list{max-width:100%}
.profit-toolbar label:has(input[type=search]){flex:2 1 280px}
.help-layout .help-topics{max-height:65vh;overflow:auto;position:sticky;top:var(--work-top);align-self:start}
.help-result-count{color:var(--muted);margin:8px 0;font-size:12px}
@media(max-width:900px){
  :root{--work-top:72px}
  .work-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px}
  .work-fields>label,.work-fields>label:has(input){width:100%;max-width:none;min-width:0}
  .work-fields>label:has(input[type=search],.product-picker,textarea),.work-fields>button,.work-fields>.hint{grid-column:1/-1}
  .work-fields>button{width:100%}.work-fields>strong{grid-column:1/-1}
  .work-fields :is(input,select,textarea){font-size:16px;min-height:44px}
  .work-fields input[type=checkbox]{min-height:18px}
  .optional-fields>summary{min-height:44px}.optional-fields button{min-height:44px}
  .work-actions{position:static;padding:10px;gap:8px}
  .work-actions>button{flex:1;min-height:44px}
  .service-basic{grid-template-columns:minmax(0,1fr)}
  .service-intake{padding:14px}.service-intake .service-intake-head{grid-template-columns:1fr 1.25fr}
  .service-intake .work-fields>label{grid-column:1/-1}
  #cash-check-history{height:min(54vh,440px);min-height:220px}
  .cash-save-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .cash-save-actions .primary{grid-column:1/-1}.cash-save-actions button{min-height:44px}
  .cash-denominations input{font-size:16px;min-height:44px;width:82px}
  .contained-list{max-height:58vh}
  #user-list,#client-list,#pos-list{max-height:58vh}
  .help-layout{display:block}.help-layout .help-topics{display:flex;flex-direction:row;flex-wrap:nowrap;max-height:none;overflow:auto;position:static;gap:4px;margin-bottom:12px;padding:4px}
  .help-topics button{flex:0 0 auto;min-height:44px;white-space:nowrap}
  #notice:not(:empty){max-height:22vh}
}
@media(max-height:580px){.work-actions{position:static}#roles .settings-save{position:static}#notice:not(:empty){position:static;max-height:none}.contained-list{max-height:60vh}}
@media print{.work-actions,.work-feedback,.help-result-count{display:none!important}}
.cash-result,.work-feedback{scroll-margin-top:calc(var(--work-top,80px) + 24vh)}
/* Keep the checkout summary above its action on narrow screens after shared action styles. */
@media(max-width:600px){.checkout-footer.work-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.checkout-footer.work-actions #sale-total{min-width:0;width:100%;overflow-wrap:anywhere}.checkout-footer.work-actions button{width:100%}}
