/* Laundry-only palette and controls. Print documents never load this theme. */
body.laundry-ui{--laundry-ink:#172a3a;--laundry-muted:#526878;--laundry-blue:#075d78;--laundry-accent:#0a8db3;--laundry-border:#dbe8ef;--laundry-surface:#fff;--laundry-bg:#f5f8fb;--laundry-radius:14px;--laundry-button-width:144px;--laundry-button-height:44px;--laundry-button-font:13px;background:var(--laundry-bg)!important}
body.laundry-ui main.container{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--laundry-ink);font-size:14px;line-height:1.45}
body.laundry-ui main.container :is(input,select,textarea,button,.btn){font-family:inherit!important}
body.laundry-ui main.container :is(h1,h2,h3,h4){color:var(--laundry-blue);line-height:1.25}
body.laundry-ui main.container h2{font-size:19px}
body.laundry-ui main.container h3{font-size:16px}
body.laundry-ui main.container :is(.helper,.ticket-helper,.business-muted,.invoice-help,.pos-section-note,.muted){color:var(--laundry-muted)!important}
body.laundry-ui main.container :is(.panel,.ticket-section,.business-panel-card,.inventory-card,.customer-editor,.customer-toolbar,.pos-work-card,.pos-card,.pos-panel,.pickup-card,.invoice-summary-part,.price-grid>section,.setup-grid>section,.users-grid>section,.laundry-settings>section,.dc-shell>.categories,.customer-metrics>article,.role-modules>a,.customer-panel,.customer-dashboard>section:not(.customer-welcome)){background:var(--laundry-surface)!important;border-color:var(--laundry-border)!important;border-radius:var(--laundry-radius)!important;color:var(--laundry-ink);box-shadow:0 3px 12px rgba(7,93,120,.035)}
body.laundry-ui main.container :is(input,select,textarea):not([type=hidden],[type=checkbox],[type=radio],[type=color],[type=file]){color:var(--laundry-ink)!important;background:var(--laundry-surface)!important;border:1px solid #cad9e2!important;border-radius:10px!important;font-size:14px;box-sizing:border-box;min-height:42px;max-width:100%}
body.laundry-ui main.container :is(input,select,textarea):disabled,body.laundry-ui main.container :is(input,textarea)[readonly]{background:#edf4f7!important;color:#526878!important}
body.laundry-ui main.container :is(input,select,textarea):focus-visible{outline:2px solid #0a8db3;outline-offset:2px}
body.laundry-ui :is(main.container,.ticket-tags-dialog,.pos-modal) :is(button,.btn):not(.customer-card,.option-card,.pos-recent-customer,.social-choice,.template-card){display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px;box-sizing:border-box!important;flex:0 0 auto;width:var(--laundry-button-width)!important;max-width:100%!important;min-width:0!important;height:var(--laundry-button-height)!important;min-height:var(--laundry-button-height)!important;max-height:var(--laundry-button-height)!important;padding:5px 10px!important;border:1px solid var(--laundry-blue)!important;border-radius:10px!important;background:var(--laundry-blue)!important;color:#fff!important;font-size:var(--laundry-button-font)!important;font-weight:750!important;line-height:1.15!important;letter-spacing:normal!important;text-align:center!important;text-decoration:none!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal;box-shadow:none!important;cursor:pointer}
body.laundry-ui :is(main.container,.ticket-tags-dialog,.pos-modal) :is(.btn.light,.pos-secondary,.pos-muted,.dry-catalog-toggle,.dc-filter-bar button:not(.active),.customer-note-actions button){background:#fff!important;color:var(--laundry-blue)!important;border-color:#b6cdd8!important}
body.laundry-ui :is(main.container,.ticket-tags-dialog,.pos-modal) :is(.btn.danger,.pickup-danger,.pos-danger,.ticket-danger button,.remove){background:#fff1f2!important;border-color:#e5a4ad!important;color:#a12738!important}
body.laundry-ui main.container :is(button,.btn):not(.customer-card,.option-card,.pos-recent-customer):hover{filter:brightness(.96)}
body.laundry-ui :is(main.container,.ticket-tags-dialog,.pos-modal) :is(button,.btn):focus-visible{outline:3px solid #75d4ed;outline-offset:2px}
body.laundry-ui :is(main.container,.ticket-tags-dialog,.pos-modal) :is(button,.btn):disabled{opacity:.55;cursor:not-allowed;filter:none}
/* Explicit control slots make English/Spanish text independent of layout width. */
body.laundry-ui .laundry-unified-header .laundry-unified-actions>a,body.laundry-ui .laundry-unified-header .laundry-unified-actions>form{width:140px!important;flex:0 0 140px!important;min-width:0!important}
body.laundry-ui .laundry-unified-header .laundry-unified-actions button{width:140px!important;flex:0 0 140px!important}
body.laundry-ui .laundry-unified-header .laundry-unified-heading :is(h1,h2,h3){color:#fff!important}
body.laundry-ui .ticket-local-actions .btn{width:132px!important;flex:0 0 132px!important}
body.laundry-ui main.container :is(.invoice-save #saveTicket,.ticket-section form>button,.laundry-auth form>button,.pos-summary-column #completeSaleButton){width:100%!important}
body.laundry-ui main.container :is(.add-dry,.dc-card-controls .btn){width:100%!important}
body.laundry-ui main.container :is(.dc-filter-bar button,.dry-title-actions .dry-catalog-toggle,.pos-catalog-close){width:112px!important;--laundry-button-font:12px}
body.laundry-ui :is(main.container,.ticket-tags-dialog,.pos-modal) :is(.remove,.pos-payment-row button,#close-dry-tags){width:36px!important;min-width:36px!important;flex:0 0 36px!important;padding:3px!important;--laundry-button-font:18px}
body.laundry-ui main.container :is(.customer-card,.option-card,.pos-recent-customer){font-family:inherit!important;color:var(--laundry-ink);border-color:var(--laundry-border);border-radius:10px}
body.laundry-ui main.container :is(th,.pos-catalog-head){color:var(--laundry-blue)}
body.laundry-ui main.container table{font-family:inherit}
@media(max-width:600px){body.laundry-ui{--laundry-button-width:136px}body.laundry-ui .ticket-local-actions{width:100%}}
@media(max-width:480px){body.laundry-ui .laundry-unified-header .laundry-unified-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important}body.laundry-ui .laundry-unified-header .laundry-unified-actions>a,body.laundry-ui .laundry-unified-header .laundry-unified-actions>form,body.laundry-ui .laundry-unified-header .laundry-unified-actions button{width:100%!important;min-width:0!important;flex:0 0 auto!important}body.laundry-ui .ticket-local-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}body.laundry-ui .ticket-local-actions .btn{width:100%!important;min-width:0!important}}

body.laundry-ui .laundry-unified-header .laundry-unified-actions>a,body.laundry-ui .laundry-unified-header .laundry-unified-actions>form{margin:0!important}
body.laundry-ui main.container :is(.existing-service-card,.locked-group,.existing-control-row){background:#edf4f7!important;border-color:#b6cdd8!important}
body.laundry-ui :is(.ticket-tags-dialog,.pos-modal){font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--laundry-ink)}
body.laundry-ui :is(.ticket-tags-dialog,.pos-modal) :is(input,select,textarea,button){font-family:inherit!important}

/* Consistent feedback for existing linked Laundry cards; printing is unaffected. */
@media screen{body.laundry-ui main.container :is(a.portal-card,a.quick-card,a.insight-card,a.customer-card,a.option-card,.portal-links>a,.laundry-quick-links>a,.role-modules>a,.insights-panel:has(a),.portal-list>a){transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}body.laundry-ui main.container :is(a.portal-card,a.quick-card,a.insight-card,a.customer-card,a.option-card,.portal-links>a,.laundry-quick-links>a,.role-modules>a,.insights-panel:has(a),.portal-list>a):is(:hover,:focus-visible){transform:translateY(-3px);box-shadow:0 10px 24px #075d781a;border-color:#3998b1}body.laundry-ui main.container a:focus-visible{outline:2px solid #16849e;outline-offset:3px}}@media(prefers-reduced-motion:reduce){body.laundry-ui main.container :is(a.portal-card,a.quick-card,a.insight-card,a.customer-card,a.option-card,.portal-links>a,.laundry-quick-links>a,.role-modules>a,.insights-panel:has(a),.portal-list>a){transition:none!important;transform:none!important}}
