/* Full-width portal shell. Long records stay accessible within their pane. */
html:has(#app :is(.o-layout,.layout)){height:100%;overflow:hidden;scrollbar-gutter:auto}
html[data-triq-layout="desktop-fit"]:has(#app :is(.o-layout,.layout)) body{height:var(--triq-stage-height);min-height:0;overflow:hidden}
body #app :is(.o-topbar,.triq-portal-header){width:100%;max-width:none;margin:0}
body #app :is(.o-layout,.layout){height:calc(var(--triq-stage-height) - 72px);min-height:0;overflow:hidden}
body #app :is(.o-layout,.layout)>:is(.o-main,.main){height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:auto}
body #app :is(.o-sidebar,.sidebar){height:100%;min-height:0;top:0;overflow:auto;overscroll-behavior:contain}
body #app .o-sidebar{padding:10px 11px}
body #app .o-sidebar .o-nav{min-height:clamp(28px,calc((var(--triq-stage-height) - 174px) / 16),36px);padding:3px 8px;margin:0 0 2px}
body #app .o-sidebar .o-nav-divider{margin:8px 0}
body #app .o-sidebar .o-nav-caption{margin:3px 3px 7px}
body #app .o-sidebar .o-logout{margin-top:4px}
body #app .o-sidebar .o-nav:disabled{opacity:.65;cursor:default;pointer-events:none}
body #app .o-sidebar .o-nav:disabled small{margin-left:auto;font-size:9px;white-space:nowrap}

/* Native provider checkout uses the physical viewport, independently of TRIQ's
   desktop canvas zoom. Its own responsive payment steps remain provider-owned. */
html.triq-payment-open,html.triq-payment-open body{overflow:hidden!important}
body>.razorpay-container{zoom:calc(1 / var(--triq-fit-scale,1));position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:100vw;max-height:100dvh;overflow:hidden!important;z-index:2147483647!important}
body>.razorpay-container iframe{max-width:100%;max-height:100%}
body #app dialog.p-payment-dialog{box-sizing:border-box;overflow:auto;max-height:calc(var(--triq-stage-height) - 32px)}
body #app .p-payment-dialog .p-provider-list{gap:8px}
body #app .p-payment-dialog .p-provider-note{line-height:1.4}
body #app .p-payment-dialog .p-quote-expiry{display:none}

@media(max-width:650px){
 html[data-triq-layout="desktop-fit"]:has(.registration-wrap) body{zoom:1.05;width:calc(100% / 1.05);max-width:none;--triq-fit-scale:1.05;--triq-stage-width:calc(100vw / 1.05);--triq-stage-height:calc(100dvh / 1.05)}
}
@media print{
 html:has(#app :is(.o-layout,.layout)),html[data-triq-layout="desktop-fit"]:has(#app :is(.o-layout,.layout)) body{height:auto;overflow:visible}
 body #app :is(.o-layout,.layout),body #app :is(.o-layout,.layout)>:is(.o-main,.main){height:auto;overflow:visible}
}

/* Keep the full Coming soon label visible without widening navigation. */
body #app .o-sidebar .o-nav:disabled{display:grid;grid-template-columns:23px minmax(0,1fr);column-gap:9px;row-gap:0;align-content:center}
body #app .o-sidebar .o-nav:disabled .o-nav-icon{grid-column:1;grid-row:1 / span 2}
body #app .o-sidebar .o-nav:disabled .o-nav-label{grid-column:2;line-height:1.2;white-space:normal}
body #app .o-sidebar .o-nav:disabled small{grid-column:2;justify-self:start;margin:2px 0 0;line-height:1.2;font-size:9px}
body #app :is(.o-main,.triq-admin-main) table[data-ticket-columns] th{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;overflow-wrap:normal}
body #app table[data-ticket-columns] :is(th,td):nth-child(7){width:6%}
body #app table[data-ticket-columns] :is(th,td):nth-child(8){width:11%}
body #app table[data-ticket-columns] :is(th,td):nth-child(9){width:13%}
