/* Touch layouts, loaded last. Desktop layouts remain in their page styles. */
.mobile-menu-open,.mobile-page-name,.mobile-zoom-toggle{display:none}.mobile-filter-panel{border:0;padding:0;min-width:0}.mobile-filter-panel>summary{display:none}
@media(max-width:900px){
 html{scroll-padding-top:78px}.layout>.sidebar{display:none}.layout .page,.layout.sidebar-collapsed .page{width:100%;margin-left:0}.page>.header{position:sticky;top:0;z-index:100;min-height:64px;flex-wrap:nowrap;gap:8px;padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:#f8fbff;border-bottom:1px solid #dbe5f0;backdrop-filter:none}
 .header-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.header .live-status-pill,.header .system-clock,.header .user-meta,.header .dropdown-chevron{display:none}.header-right{flex:none;flex-wrap:nowrap;gap:4px}.mobile-menu-open{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid #cbd9eb;border-radius:12px;background:#edf4ff;color:#245c9d}.mobile-menu-open svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2}.mobile-page-name{display:block;font-size:14px;line-height:1.35;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header .notification-button,.header .user-button{width:44px;min-width:44px;height:44px;padding:6px;justify-content:center}
 .notification-menu,.dropdown-menu{position:fixed;top:calc(68px + env(safe-area-inset-top));right:12px;width:min(380px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(var(--mobile-vh,100dvh) - 84px);overflow:auto}.notification-list{max-height:calc(var(--mobile-vh,100dvh) - 190px)}
 .mobile-nav-dialog{position:fixed;inset:var(--mobile-vtop,0px) auto auto 0;margin:0;width:min(360px,calc(100vw - 24px));height:var(--mobile-vh,100dvh);max-height:var(--mobile-vh,100dvh);max-width:none;border:0;border-radius:0 20px 20px 0;padding:0;background:#f8fbff;color:#1c304d;overflow:auto;overscroll-behavior:contain;animation:none;box-shadow:12px 0 50px #142a4840}.mobile-nav-dialog::backdrop{background:#142a4877}.mobile-nav-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #dae4ef;position:sticky;top:0;background:#f8fbff;z-index:1}.mobile-nav-dialog h2{font-size:20px;margin:0}.mobile-nav-dialog nav{display:grid;gap:5px;padding:14px 12px}.mobile-nav-dialog .sidebar-item{width:100%;min-height:50px;white-space:normal;background:transparent;color:#425872;border-radius:12px;padding:12px}.mobile-nav-dialog .sidebar-item-text{white-space:normal;line-height:1.4}.mobile-nav-dialog .sidebar-item.active{color:#fff;background:#2563eb;box-shadow:none}.mobile-nav-dialog footer{padding:16px 24px max(20px,env(safe-area-inset-bottom));border-top:1px solid #dae4ef}.mobile-nav-dialog footer a{display:flex;align-items:center;min-height:44px;color:#245c9d;font-weight:650}
}
@media(max-width:600px){
 body{min-width:0}body,.content{font-size:14px}.content{padding:16px max(12px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.content :is(.page-header,.bd-heading) h1{font-size:24px;line-height:1.3}.page-title-group{gap:10px}.page-title-icon{width:36px;height:36px;flex:0 0 36px}.page-title-group h1{min-width:0;overflow-wrap:anywhere}.page-header,.bd-heading{gap:12px}
 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important;min-height:46px}input[type=checkbox],input[type=radio]{min-width:22px;min-height:22px;accent-color:#2563eb}button:not(.dt-time-piece):not(.dt-time-handle):not(.timeline-handle),a.primary-button,a.secondary-button,summary{min-height:44px}button:not(.dt-time-piece):not(.dt-time-handle):not(.timeline-handle){max-width:100%;white-space:normal}.context-help,.modal-close,.app-close,.permission-info,.dt-reason-remove{min-width:44px;min-height:44px;flex-shrink:0}.content summary{align-content:center;line-height:1.5}.content a:not([class]){text-underline-offset:3px}
 :is(.line-card,.product-card,.workshop-card,.history-card,.sensor-settings-card,.tests-card):hover{transform:none}.primary-button,.secondary-button,.danger-button{line-height:1.4;padding:10px 14px}.status-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.status-tab{min-width:0;padding:10px 8px}
 .mobile-filter-panel{padding:0;border:1px solid #d8e3ef;border-radius:14px;background:#fff;box-shadow:0 3px 12px #1a3a5c08;margin:12px 0}.mobile-filter-panel>summary{display:list-item;cursor:pointer;font-weight:650;color:#355c86;padding:14px 16px;list-style-position:inside}.mobile-filter-panel>summary::marker{color:#4777aa}.mobile-filter-panel> :is(.bd-filters,.dt-filters,.logs-filters,.collection-toolbar,.history-filters){margin:0;border:0;border-radius:0 0 14px 14px;padding:14px;box-shadow:none}.mobile-filter-panel[open]>summary{border-bottom:1px solid #e0e8f1}.mobile-filter-panel form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.mobile-filter-panel form label{width:100%;min-width:0}.mobile-filter-panel form input,.mobile-filter-panel form select{width:100%}
 .bd-page[data-view=operator] #bd-summary{display:none}.bd-summary,.bd-kpis{gap:9px}.bd-stat{padding:12px}.bd-stat>span{font-size:12px;line-height:1.5}.bd-stat strong{font-size:24px}.bd-stat small{font-size:12px}.bd-card{padding:14px}.bd-card h2{font-size:20px}.bd-card .bd-actions>button{width:100%}.bd-actions form{display:grid;gap:10px;width:100%}.bd-actions form label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bd-actions form input{flex:1;min-width:100px}.bd-chart-heading label{width:100%;justify-content:space-between}.bd-chart-heading select{flex:1;max-width:210px}.bd-legend{font-size:12px;gap:10px}.bd-chart svg{min-width:0}.bd-state-chart svg{min-width:0}.bd-chart-tip.mobile-pinned{position:static;width:100%;max-width:100%;max-height:none;box-shadow:none;margin-top:10px;pointer-events:auto}.bd-chart-tip.mobile-pinned a{display:inline-flex;align-items:center;min-height:44px;color:inherit;font-weight:650;text-decoration:underline}.mobile-tip-close{float:right;border:0;background:none;color:inherit;padding:4px 12px;font-size:22px}
 .chart-zoom-toolbar{gap:0;padding:0;overflow:hidden}.chart-zoom-toolbar>.mobile-zoom-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;border-radius:0;background:transparent;padding:12px 14px;color:#365779;text-align:left}.mobile-zoom-toggle::after{content:'+';font-size:22px}.mobile-zoom-toggle[aria-expanded=true]::after{content:'−'}.chart-zoom-toolbar:not(.mobile-zoom-open)>:not(.mobile-zoom-toggle){display:none!important}.chart-zoom-toolbar.mobile-zoom-open>.chart-zoom-axis{margin:0;padding:12px;display:grid;grid-template-columns:44px minmax(40px,1fr) 44px 44px;gap:6px;flex-basis:100%;border-top:1px solid #d7e3f2}.chart-zoom-axis-label{grid-column:1/4}.chart-zoom-axis output{grid-column:4;grid-row:1;text-align:right}.chart-zoom-axis input[type=range]{grid-column:2;width:100%;min-width:0;height:44px}.chart-zoom-axis [data-zoom=in]{grid-column:3}.chart-zoom-axis [data-zoom=left],.chart-zoom-axis [data-zoom=up]{grid-column:1/3}.chart-zoom-axis [data-zoom=right],.chart-zoom-axis [data-zoom=down]{grid-column:3/5}.chart-zoom-toolbar.mobile-zoom-open>[data-zoom=reset]{width:calc(100% - 24px);margin:0 12px 12px}.chart-zoom-toolbar button{min-width:44px}
 .dt-view-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dt-view-menu button{padding:10px 8px;font-size:12px}.dt-header-actions,.quality-header-actions{width:100%}.dt-header-actions>button,.quality-header-actions>*{flex:1 1 140px}.dt-card-heading h3{min-width:0}.dt-duration-inputs{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dt-duration-inputs input{width:100%;min-width:0}.dt-time-track{height:44px}.dt-time-handle{width:44px;margin-left:-22px}.dt-time-handle::after{left:17px}.dt-reason-metrics strong{white-space:normal;overflow-wrap:anywhere}.dt-order{width:100%;justify-content:space-between}.dt-picker-header .modal-close{flex-basis:44px}.dt-tree-option{min-height:72px}.dt-tree-option-text>span{font-size:13px}
 dialog:not(.mobile-nav-dialog){position:fixed;top:var(--mobile-vtop,0px);bottom:calc(100% - var(--mobile-vtop,0px) - var(--mobile-vh,100dvh));height:fit-content;margin:auto;max-height:calc(var(--mobile-vh,100dvh) - 24px);width:min(100% - 24px,680px);max-width:calc(100vw - 24px)}.modal{position:fixed;top:var(--mobile-vtop,0px);bottom:auto;height:var(--mobile-vh,100dvh);padding:12px;align-items:center}.modal-window,.modal-content{width:100%;max-height:calc(var(--mobile-vh,100dvh) - 24px);padding:16px;border-radius:16px}.modal-header{gap:8px}.modal-header h2{font-size:20px;line-height:1.4}.modal-close{position:static}.dt-picker-header,.dt-picker-path,.dt-picker-level{padding:16px}.app-dialog{padding:18px}.modal-footer,.app-dialog-footer,.dt-picker-footer{gap:10px}.modal-footer button{width:100%}.app-dialog-footer>*{flex:1 1 100%}
 .quality-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}.quality-tabs button:first-child{grid-column:1/-1}.quality-search{width:100%}.quality-search input{width:100%}.quality-card-head>div{min-width:0}.quality-card h2,.quality-meta{overflow-wrap:anywhere}.quality-period-grid{grid-template-columns:1fr}.quality-actions>button{width:100%}.batch-toolbar label{flex-basis:100%;min-width:0!important}.batch-card-actions>button{flex:1 1 140px}.batch-dialog .form-grid{grid-template-columns:minmax(0,1fr)}
 .permissions-table input[type=checkbox]{width:24px;height:24px}.permissions-table td{padding:12px}.permissions-table .permission-info{margin-left:6px}.permissions-container{overscroll-behavior-x:contain}.permission-category-toggle{white-space:normal}.chart-color-fields{grid-template-columns:1fr}.chart-color-fields input[type=color]{height:44px}.chart-colors-dialog header{align-items:flex-start}.chart-colors-dialog h2{font-size:21px}.chart-colors-dialog footer{flex-wrap:wrap}.chart-colors-dialog footer>button{flex:1 1 100px}
 .auth-wrapper{padding:20px 12px}.auth-card{padding:24px 20px;max-width:100%}.auth-form button[type=submit]{min-height:48px}
}
@media(max-width:600px) and (min-height:500px){.modal-window>.modal-footer,.app-dialog-footer{position:sticky;bottom:-16px;padding:14px 0 max(14px,env(safe-area-inset-bottom));background:var(--bg-card,#fff);z-index:3;border-top:1px solid var(--border-color)}}
@media(pointer:coarse){button,.sidebar-item{touch-action:manipulation}.chart-zoom-viewport{touch-action:pan-x pan-y pinch-zoom}.dt-time-handle,.timeline-handle{touch-action:none}}
.bd-touch-readout{position:static;width:100%;max-width:100%;max-height:none;box-shadow:none;margin-top:10px;pointer-events:auto}.mobile-tip-close{float:right;min-height:44px;min-width:44px;border:0;background:none;color:inherit;font-size:22px;cursor:pointer}
@media(max-width:900px){body:has(dialog[open],.modal:not(.hidden),.oee-dialog-backdrop:not([hidden])){overflow:hidden}}
@media(max-width:900px){.page>.header{padding-top:calc(8px + env(safe-area-inset-top))}.mobile-nav-dialog>header{padding-top:calc(16px + env(safe-area-inset-top))}html{scroll-padding-top:calc(78px + env(safe-area-inset-top))}}
@media(pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important}button:not(.dt-time-piece):not(.dt-time-handle):not(.timeline-handle){min-height:44px}}
@media(pointer:coarse){label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px}.permission-toggle,.delete-button,.btn-icon,.dt-order button{min-width:44px}}
