:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light dark;--bg:#f5f6f8;--panel:#fff;--text:#17191c;--muted:#5c6470;--border:#d9dde3;--accent:#1f5f99;--danger:#9a2e2e;--focus:#0b78d0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,input,select,textarea{font:inherit}.skip-link{position:absolute;left:-10000px;top:auto}.skip-link:focus{left:12px;top:12px;background:var(--panel);padding:8px 12px;z-index:99;outline:3px solid var(--focus)}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.app-sidebar{background:#161a20;color:#fff;padding:16px;overflow:auto}.app-brand{font-size:1.1rem;font-weight:700;margin-bottom:16px}.app-nav{display:grid;gap:4px}.app-nav button{display:block;width:100%;text-align:left;border:0;background:transparent;color:inherit;padding:10px 12px;border-radius:6px;cursor:pointer}.app-nav button[aria-current="page"],.app-nav button:hover{background:rgba(255,255,255,.12)}.app-workspace{min-width:0}.app-header{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--panel);border-bottom:1px solid var(--border)}.app-main{padding:18px;max-width:1600px;margin:0 auto}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px}.muted{color:var(--muted)}.status-banner{padding:8px 12px;text-align:center}.status-banner.offline{background:#fff2c7;color:#5e4700}.status-banner.error{background:#fde1e1;color:var(--danger)}.loading{display:grid;place-items:center;min-height:40vh}.error-card{max-width:720px;margin:40px auto;background:var(--panel);border:1px solid var(--border);padding:22px;border-radius:10px}.error-card button{margin-top:12px}.route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.route-card{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.app-sidebar{position:static}.app-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.app-header{align-items:flex-start;flex-direction:column}}@media(prefers-color-scheme:dark){:root{--bg:#0d1117;--panel:#151b23;--text:#eef2f7;--muted:#a3acb8;--border:#2b3440;--accent:#66a9e8}}@media print{.app-sidebar,.app-header,.status-banner,.skip-link{display:none!important}.app-shell{display:block}.app-main{padding:0}.panel{border:0}}
.health-badge{display:inline-block;padding:.18rem .5rem;border-radius:999px;font-size:.78rem;font-weight:700;text-transform:capitalize}.health-healthy{background:#d9f7e5}.health-degraded{background:#fff0c7}.health-unavailable,.health-misconfigured{background:#ffdcdc}.health-unknown{background:#eceff3}.table-scroll{overflow:auto}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.p105-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.p105-badge{font-size:.72rem;border:1px solid currentColor;border-radius:999px;padding:.35rem .6rem;white-space:nowrap}.p105-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.p105-tabs button,.p105-actions button,.p105-scan button,.p105-new button{padding:.65rem .85rem;border:1px solid #c7ccd4;border-radius:.5rem;background:#fff;cursor:pointer}.p105-tabs button.active,.p105-actions button.primary,.p105-scan button,.p105-new button{background:#18212f;color:#fff}.p105-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.p105-card{border:1px solid #dfe3e8;border-radius:.75rem;padding:1rem;background:#fff}.p105-scan{display:flex;gap:.5rem}.p105-scan input,.p105-manual>input,.p105-new input{width:100%;padding:.7rem;border:1px solid #c7ccd4;border-radius:.5rem;box-sizing:border-box}.p105-manual{margin-top:1rem}.p105-results{display:grid;gap:.4rem;margin-top:.5rem}.p105-results button{display:flex;justify-content:space-between;text-align:left;padding:.65rem;border:1px solid #e1e5ea;border-radius:.5rem;background:#fafafa;cursor:pointer}.p105-results span,.p105-line small{display:block;color:#667085;font-size:.78rem}.p105-new{display:grid;gap:.6rem;margin-top:1rem;padding:.8rem;border:1px dashed #b8bec8;border-radius:.6rem}.p105-new label{display:grid;gap:.25rem;font-size:.85rem}.p105-list-head{display:flex;justify-content:space-between;gap:1rem}.p105-empty{padding:2rem;text-align:center;border:1px dashed #ccd2da;border-radius:.6rem;color:#667085}.p105-lines{display:grid;gap:.45rem}.p105-line{display:flex;justify-content:space-between;gap:1rem;padding:.75rem;border:1px solid #e1e5ea;border-radius:.55rem}.p105-message{margin-top:1rem;padding:.75rem;border-radius:.5rem;background:#f3f5f7}.p105-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}@media(max-width:800px){.p105-grid{grid-template-columns:1fr}.p105-head{display:block}.p105-badge{display:inline-block;margin-top:.5rem}}

.platform-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.platform-heading h1{font-size:2rem;margin:.2rem 0}.platform-page button{background:var(--accent);color:var(--panel);border:0;border-radius:.45rem;padding:.65rem .9rem;cursor:pointer}.platform-page button:disabled{opacity:.5;cursor:not-allowed}.platform-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.platform-form{margin-bottom:1.5rem}.platform-fields{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.platform-page label{display:grid;gap:.35rem;margin:.5rem 0}.platform-page input,.platform-page select{padding:.65rem;border:1px solid var(--border);border-radius:.4rem;background:var(--panel);color:var(--text);width:100%;box-sizing:border-box}.platform-checks{display:flex;flex-wrap:wrap;gap:1rem}.platform-checks label{display:flex;align-items:center}.platform-checks input{width:auto}.platform-search{display:flex;align-items:end;gap:.5rem;margin:1rem 0}.platform-search label{flex:1;margin:0}.platform-page small{display:block;color:var(--muted);margin:.2rem 0}.platform-page table{width:100%;border-collapse:collapse}.platform-page td,.platform-page th{text-align:left;padding:.7rem;border-bottom:1px solid var(--border)}.platform-tags{display:flex;gap:.4rem;flex-wrap:wrap}.platform-tags span{border:1px solid var(--border);border-radius:1rem;padding:.3rem .6rem;font-size:.8rem}.platform-page .panel{padding:1.2rem}.platform-page h3{margin-top:1.2rem}@media(max-width:1000px){.platform-grid{grid-template-columns:1fr}}@media(max-width:600px){.platform-fields{grid-template-columns:1fr}.platform-heading{align-items:start}}
.platform-grid>section{min-width:0}.platform-page .table-scroll{max-width:100%}.platform-page small,.platform-page li{overflow-wrap:anywhere}@media(max-width:1000px){.platform-grid{grid-template-columns:minmax(0,1fr)}}

/* Tenant workspace controls */
.tenant-session{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.tenant-session label{display:grid;gap:4px;font-size:.85rem}.tenant-session select,.tenant-page input{border:1px solid var(--border);border-radius:8px;background:var(--panel);padding:9px 12px;color:var(--text)}.tenant-page>label{display:grid;gap:8px;margin-bottom:16px;max-width:500px}.tenant-page button,.tenant-session button{border:1px solid var(--border);border-radius:8px;padding:10px 14px;background:var(--panel);color:var(--text);cursor:pointer}.tenant-page button:disabled{opacity:.5;cursor:not-allowed}.tenant-page>.route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.tenant-page table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.95rem}.tenant-page th,.tenant-page td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.tenant-page>button{margin-right:8px;margin-bottom:8px}.tenant-page [role=status]{padding:14px;border-radius:10px;background:var(--panel);border:1px solid var(--border)}.tenant-page [role=alert]{color:#b42318}.tenant-page th{color:var(--muted);font-size:.85rem}.tenant-page h2{margin-top:24px}@media(max-width:600px){.tenant-session{gap:10px}.tenant-page th,.tenant-page td{padding:9px 4px;font-size:.85rem}.tenant-page>.route-grid{grid-template-columns:1fr}.tenant-session>span{font-weight:600}}

@media(max-width:800px){.app-shell{grid-template-rows:auto 1fr}}
.tenant-page .platform-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:24px;padding:16px;border:1px solid var(--border);border-radius:10px}.tenant-page .platform-form h2,.tenant-page .platform-form p{grid-column:1/-1;margin:0}.tenant-page .platform-form label{display:grid;gap:6px;min-width:0}.tenant-page .platform-form input,.tenant-page .platform-form select{width:100%;min-width:0;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text)}.tenant-page .platform-form button{justify-self:start;align-self:end}.tenant-page table th,.tenant-page table td{vertical-align:top}@media(max-width:600px){.tenant-page .platform-form{grid-template-columns:1fr;padding:12px}}
.receipt-print{margin:1.5rem 0;padding:1rem;border:1px solid var(--border);}
@media print{body *{visibility:hidden!important}.receipt-print,.receipt-print *{visibility:visible!important}.receipt-print{position:absolute;left:0;top:0;width:100%;margin:0;padding:0;border:0;color:#000!important;background:#fff!important}.receipt-print table{width:100%;border-collapse:collapse}.receipt-print td,.receipt-print th{border-bottom:1px solid #bbb;padding:6px}body{background:#fff!important}}
.purchase-order-line{display:grid;gap:10px;border:1px solid var(--border);border-radius:6px;min-width:0;padding:12px}.supplier-ledger,.purchase-detail{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}

.purchasing-table-scroll{max-width:100%;overflow-x:auto;margin:12px 0}.purchasing-table-scroll table{min-width:560px}.purchasing-table-scroll th,.purchasing-table-scroll td{overflow-wrap:normal!important;word-break:normal!important}.purchasing-table-scroll td{white-space:nowrap}

.staff-page [role="region"]{max-width:100%;overflow-x:auto}.staff-page table{min-width:650px}.staff-page fieldset{min-width:0;grid-column:1/-1}.staff-page fieldset label{display:flex!important;align-items:center;gap:8px;overflow-wrap:anywhere}.staff-page input[type="checkbox"]{width:auto!important}.staff-page li{overflow-wrap:anywhere}.staff-page td{padding:8px;vertical-align:top}

.staff-page th,.staff-page td{overflow-wrap:normal;word-break:normal;white-space:nowrap}.staff-page table{min-width:900px}

.tenant-page .platform-form fieldset{min-width:0}.tenant-page .purchase-order-line{grid-column:1/-1}.tenant-page .receipt-print{overflow-wrap:anywhere}

.tenant-account .table-wrap{max-width:100%;overflow-x:auto}.tenant-account button{white-space:normal}.tenant-account td{overflow-wrap:anywhere}.tenant-account output{display:block;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}

@media(max-width:600px){.tenant-account table,.tenant-account tbody{display:block}.tenant-account thead{display:none}.tenant-account tr{display:block;margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:8px}.tenant-account td{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px;padding:6px 0;border:0}.tenant-account td:before{content:attr(data-label);font-weight:600;grid-column:1;grid-row:1}.tenant-account td>*{grid-column:2}.tenant-account td:empty{display:none}}

.tenant-page .fiscal-items th:not(:first-child),.tenant-page .fiscal-items td:not(:first-child){white-space:nowrap;overflow-wrap:normal;min-width:44px}.tenant-page .fiscal-payouts{min-width:480px}.tenant-page .fiscal-payouts td:nth-child(2){white-space:nowrap;overflow-wrap:normal}

.tenant-page .report-tenders{min-width:640px}.tenant-page .report-tenders td:not(:first-child){white-space:nowrap;overflow-wrap:normal}
#native-print-root{position:fixed;inset:0;z-index:1000;overflow:auto;background:#e8e8e8;color:#111;padding:16px}.native-print-controls{position:sticky;top:0;background:white;padding:12px;border:1px solid #bbb;z-index:1}.native-print-pages{margin:16px auto;width:max-content;max-width:100%}.native-receipt,.native-label{background:#fff;color:#000;margin:0 auto 12px;font-family:Arial,sans-serif;overflow-wrap:anywhere;box-sizing:border-box}.native-receipt h1,.native-receipt h2{font-size:1.2em}.native-receipt table{width:100%;border-collapse:collapse}.native-receipt th,.native-receipt td{padding:3px 0;text-align:left;vertical-align:top;border-bottom:1px dashed #555}.native-receipt td:last-child{white-space:nowrap;text-align:right}.native-label{display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;break-after:page}.native-label svg{flex-shrink:0}.native-label-name,.native-label-code,.native-label-company{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1}.native-label-code{font-size:.85em}.native-label-company{font-size:.75em}.native-print-open{overflow:hidden}@media print{body.native-print-open>*:not(#native-print-root){display:none!important}body.native-print-open #native-print-root,body.native-print-open #native-print-root *{visibility:visible!important}#native-print-root{position:static;overflow:visible;padding:0;background:white}.native-print-controls{display:none!important}.native-print-pages{margin:0;width:auto;max-width:none}.native-receipt,.native-label{margin:0;box-shadow:none}.native-receipt{break-inside:auto}.native-receipt tr{break-inside:avoid}.native-label{break-inside:avoid;page-break-after:always}.native-label:last-child{break-after:auto;page-break-after:auto}@page{margin:0}}
.customer-portal {max-width:1100px;margin:1rem auto;padding:1rem;overflow-wrap:anywhere;}
.customer-portal nav {display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;}
.customer-portal nav [aria-current=page] {outline:2px solid currentColor;}
.customer-portal .table-scroll {max-width:100%;overflow-x:auto;}
.customer-portal table {width:100%;border-collapse:collapse;}
.customer-portal th,.customer-portal td {text-align:left;padding:.6rem;border-bottom:1px solid #cbd5e1;}
.customer-portal dt {font-weight:600;margin-top:.5rem;}
.customer-portal dd {margin-left:1rem;}
.portal-prose {white-space:pre-wrap;}
.customer-portal input {max-width:100%;box-sizing:border-box;}

/* TawiFlow identity. White logo surfaces preserve navy contrast in both system themes. */
:root{--tf-navy:#10243a;--tf-teal:#18b78a;--tf-teal-accessible:#087654;--tf-mist:#f6f9fc;--accent:var(--tf-teal-accessible)}
.tf-brand{max-width:380px;padding:12px 16px;background:#fff;color:var(--tf-navy);border-radius:12px;margin:0 0 1.25rem;box-sizing:border-box}.tf-brand img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}.tf-brand p{font-size:.82rem;margin:.25rem 0 0;text-align:center;color:#405569;line-height:1.5}.tf-brand-compact{padding:6px;margin:0;max-width:232px}.app-brand{padding:12px!important}.app-header{border-bottom:2px solid var(--tf-teal)}.app-nav button[aria-current="page"]{border-inline-start:3px solid var(--tf-teal)}.tf-print-credit{font-size:.8em;text-align:center;color:#000}.platform-page{max-width:100%}@media(max-width:600px){.tf-brand{width:100%;max-width:340px}.tf-brand-compact{max-width:200px}}

/* Keep the operational workspace within reach on phones and tablets. The menu
   scrolls independently; every module remains available by touch and keyboard. */
@media(max-width:800px){
 .app-sidebar{display:flex;flex-direction:column;max-height:260px;overflow:hidden}
 .app-sidebar .app-brand{flex-shrink:0;padding:4px!important;margin-bottom:8px}
 .app-sidebar .tf-brand-compact{max-width:160px}
 .app-sidebar .app-nav{min-height:0;overflow-y:auto;overscroll-behavior:contain}
}
