/* Additive shared interface layer. KPI tokens remain the design source. */
.manager-shell{min-width:0}.manager-top{gap:12px}.manager-top>span:empty{display:none}
.manager-shell .field{min-width:0}.manager-shell :is(input,select,textarea){max-width:100%}
.manager-shell :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--bronze,#bc9554);outline-offset:3px}
.portal-home-tile{transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.portal-home-tile:not(:disabled):hover{box-shadow:0 8px 24px #27231d12;transform:translateY(-2px)}
.portal-attention{display:block;font-size:12px;font-weight:600;line-height:1.5;color:var(--ink,#27231d);margin-top:8px}
.invoice-workflow,.qbo-workflow{border:1px solid var(--line,#ded7c9);border-radius:14px;background:var(--panel,#fff);padding:20px;margin:16px 0}
.invoice-workflow h2,.qbo-workflow h2{font-family:var(--font-sans,Arial,sans-serif);font-size:18px;line-height:1.35;margin:0 0 7px}
.invoice-workflow p,.qbo-workflow p{margin:0 0 12px;color:var(--muted,#70685b);line-height:1.55;max-width:85ch}
.workflow-steps{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.workflow-steps li{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.4;min-width:0}
.workflow-steps li>span:first-child{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1px solid var(--line,#ded7c9);font-weight:700}
.workflow-steps li.is-complete>span:first-child{background:var(--ink,#27231d);color:var(--panel,#fff);border-color:var(--ink,#27231d)}
.workflow-steps small{display:block;color:var(--muted,#70685b);font-size:11px}.invoice-workflow .btn{min-height:40px}
.invoice-tabs{gap:8px}.invoice-tabs .btn{flex-shrink:0}.invoice-notice:empty{display:none}
@media(max-width:640px){.workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.invoice-workflow,.qbo-workflow{padding:16px}.invoice-tabs{flex-wrap:nowrap;overflow-x:auto;padding:4px 3px 10px;scroll-padding:12px;max-width:100%}.invoice-tabs .btn{white-space:nowrap}.manager-top{flex-wrap:wrap}.manager-top .btn{font-size:13px}}
@media(pointer:coarse){.manager-shell :is(.btn,button,summary),.manager-top .btn,.maintenance-shell :is(button,summary){min-height:44px}.manager-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea),.maintenance-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.portal-home-tile{transition:none}.portal-home-tile:not(:disabled):hover{transform:none}}
@media print{.invoice-workflow,.qbo-workflow{break-inside:avoid;box-shadow:none}.invoice-workflow button{display:none}}

/* Quiet surfaces and visible, consistent touch and keyboard affordances. */
.manager-shell :is(.card,.portal-home-tile){box-shadow:0 3px 16px #29241e05}
.manager-shell details>summary{cursor:pointer;padding-block:8px}
.manager-shell .field{line-height:1.5}
.manager-shell :is(.invoice-tabs,.qbo-tabs){overscroll-behavior-x:contain;scroll-padding-inline:16px}
.manager-shell :is(.invoice-tabs,.qbo-tabs) button:focus-visible{outline-offset:-3px}
.manager-shell [aria-busy=true]{cursor:progress}
#maintenance-root .opsToolbar{gap:12px}
#maintenance-root .opsCrewRow{gap:12px}
@media(max-width:640px){
 .portal-welcome{gap:16px}.portal-home-grid{gap:12px}
 .portal-home-tile{padding:20px;min-height:160px}
 .manager-shell :is(.invoice-tabs,.qbo-tabs) .btn{min-height:44px}
 #maintenance-root .opsToolbar{align-items:flex-start;flex-wrap:wrap}
}

/* Keep a priority title and its explanation distinct at every screen size. */
.portal-attention>b,.portal-attention>span{display:block}
.portal-attention>span{margin-top:4px;font-weight:400}

/* Supplied restaurant artwork. The selector remains the accessible location name. */
.restaurant-context{display:flex;align-items:center;gap:14px;min-width:0;max-width:100%}
.restaurant-context>.field{flex:1;min-width:0}
.restaurant-brand{display:none;flex:none;width:94px;height:76px;box-sizing:border-box;background-color:#fff;background-repeat:no-repeat;background-position:center;background-origin:content-box;background-size:contain;border:1px solid #e4ded4;border-radius:12px;padding:8px}
.restaurant-brand:is([data-store="ata"],[data-store="bw8"],[data-store="mb"],[data-store="crosby"]){display:inline-block;background-image:url('/brand/iguana-joes.webp')}
.restaurant-brand[data-store="cj"]{display:inline-block;background-image:url('/brand/cactus-jacks.webp')}
.restaurant-brand[data-store="cadillac"]{display:inline-block;background-image:url('/brand/cadillac-jacks.svg')}
.restaurant-brand:is([data-store="sh-baytown"],[data-store="sh-lumberton"]){display:inline-block;background-image:url('/brand/shipley.webp')}
.context-restaurant:has(>.restaurant-brand:is([data-store="cj"],[data-store="cadillac"],[data-store="ata"],[data-store="bw8"],[data-store="mb"],[data-store="sh-baytown"],[data-store="sh-lumberton"])){display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center}
.context-restaurant>.restaurant-brand{grid-column:1;grid-row:1 / span 2}
.context-restaurant:has(>.restaurant-brand)>.eyebrow,.context-restaurant:has(>.restaurant-brand)>select{grid-column:2}
.invoice-heading .restaurant-context{flex:1}
.restaurant-family{max-width:1160px;margin:32px auto 24px;padding:24px clamp(16px,4vw,40px);border-top:1px solid #e4ded4}
.restaurant-family-label{text-align:center;color:#70685b;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px}
.restaurant-family-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:24px;max-width:840px;margin:auto}
.restaurant-family-logos img{display:block;width:100%;height:112px;object-fit:contain;box-sizing:border-box;padding:8px;background:#fff;border:1px solid #e4ded4;border-radius:12px}
@media(max-width:640px){.restaurant-context{gap:10px;width:100%}.restaurant-brand{width:76px;height:64px;padding:6px}.restaurant-family{margin-top:24px;padding-top:20px}.restaurant-family-logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.restaurant-family-logos img{height:100px;padding:8px}.invoice-heading .restaurant-context{flex-basis:100%}.module-context .restaurant-brand{width:64px;height:56px}}
@media print{.restaurant-family{display:none}}

/* Quiet, read-only bonus progress and invoice purchase totals. */
.manager-bonus{margin:20px 0;padding:clamp(18px,3vw,28px)}
.bonus-heading,.invoice-weekly-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.bonus-heading h2,.invoice-weekly-heading h2{margin:5px 0 8px}.bonus-heading p,.invoice-weekly-heading p{margin:0;color:#625e56}
.bonus-status{display:inline-block;padding:10px 14px;border-radius:999px;font-size:14px;font-weight:700;background:#f0ede7;color:#57544c}
.bonus-status.green{background:#e4f3e9;color:#235c38}.bonus-status.yellow{background:#fff1ca;color:#775a13}.bonus-status.red{background:#fbe7e1;color:#963e2b}
.bonus-progress{display:flex;align-items:center;gap:14px;margin:22px 0;color:#625e56;font-size:13px;flex-wrap:wrap}
.bonus-progress progress{width:180px;max-width:100%;height:8px;accent-color:#7a6a4e}
.bonus-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.bonus-metric{display:flex;flex-direction:column;gap:6px;padding:16px;background:#faf9f6;border:1px solid #e6e1d8;border-radius:14px;min-width:0}
.bonus-metric>span{font-size:13px;line-height:1.4}.bonus-metric>strong{font-size:clamp(23px,3vw,32px);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.bonus-metric>small,.bonus-metric>b{font-size:12px}
.bonus-metric.green>b{color:#235c38}.bonus-metric.red>b{color:#963e2b}.bonus-metric.neutral>b{color:#625e56}
.bonus-basis,.bonus-footnote{font-size:13px;color:#625e56;line-height:1.55}.bonus-footnote{border-top:1px solid #e6e1d8;padding-top:14px;margin-bottom:0}
.bonus-week-details,.bonus-rules,.bonus-missing{margin:12px 0}.bonus-missing{padding:8px 12px;background:#f5f2eb;border-radius:10px}
.bonus-table-scroll{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.bonus-table-scroll table{min-width:650px;width:100%;font-size:13px;border-collapse:collapse}
.bonus-table-scroll :is(th,td){padding:12px 8px;text-align:right;white-space:nowrap;border-bottom:1px solid #e6e1d8}.bonus-table-scroll th:first-child{text-align:left}
.bonus-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.bonus-rules p,.bonus-rules li{line-height:1.6;font-size:14px}
.invoice-weekly-heading{margin:12px 0 20px}.invoice-category-report{overflow-x:auto}.invoice-category-report table{width:100%;font-size:14px}.invoice-category-report :is(th,td){padding:12px 8px;text-align:right}.invoice-category-report :is(th,td):first-child{text-align:left}.invoice-category-report tfoot{border-top:2px solid #e6e1d8}.invoice-weekly-detail{padding:18px;margin:14px 0}
.invoice-shell .invoice-category-report tbody th{white-space:normal;text-transform:none;letter-spacing:0;font-size:inherit;background:transparent}
@media(max-width:640px){.bonus-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bonus-metric{padding:14px}.bonus-rule-grid{grid-template-columns:1fr;gap:8px}.bonus-status{font-size:13px}.invoice-category-report table{font-size:12px}.invoice-category-report :is(th,td){padding:10px 4px}.invoice-category-report th:first-child{min-width:105px}.invoice-report-hero{overflow-wrap:anywhere}}

