/* Cross-page layout fixes verified against desktop and mobile routes. */
.dx-panel-head,.gx-toolbar,.viewer-toolbar,.page-heading-actions {flex-wrap:wrap}
.dx-panel-head>*,.page-heading>div,.gx-content,.hx-content {min-width:0}
.dx-panel-head .dx-badge {white-space:normal;overflow-wrap:anywhere;max-width:100%;line-height:1.6}
.dx-status-lanes {grid-template-columns:repeat(4,minmax(0,1fr))}
.tx-controls {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.tx-controls label {min-width:0}
.tx-controls .tx-period {grid-column:1/-1}
.tx-controls label:has(input[type=datetime-local]) {grid-column:span 2}
.hx-paper .tx-proof {grid-template-columns:100px minmax(0,1fr)}
@media(max-width:1100px) {
 .tx-controls {grid-template-columns:repeat(2,minmax(0,1fr))}
 .tx-controls label:has(input[type=datetime-local]) {grid-column:1/-1}
 .hx-paper-brand {flex-wrap:wrap;gap:10px}
 .hx-paper .dx-panel-head {padding:14px}
}
@media(max-width:680px) {
 .page-heading {display:block}
 .page-heading-actions {margin-top:12px;justify-content:flex-start}
 .page-heading-actions>.btn,.btn,.tile-expand,.viewer-tools .btn,.legend-toggles .btn {font-size:12px;min-height:40px;padding:8px 10px;line-height:1.5}
 .dx-tabs,.dx-roi-tabs {flex-wrap:wrap}
 .dx-tabs button,.dx-roi-tabs button {min-height:42px;font-size:12px;padding:9px 12px}
 input:not([type=checkbox]):not([type=range]),select,textarea {font-size:14px!important;min-height:42px;max-width:100%;min-width:0}
 .page-caption,.detail-caption,.metric-note,.metric-label,.tile-footer,.tile-heading small,.tile-temperature-label,.viewer-caption,.source-note,.inspector-note,.detail-alert,.app-footer {font-size:12px;line-height:1.6}
 .camera-grid {grid-template-columns:minmax(0,1fr)}
 .tile-heading strong {font-size:14px;max-width:none}
 .tile-temperature {font-size:23px}
 .tile-head {align-items:center;padding:12px}
 .tile-footer {padding:10px 12px}
 .image-chip {font-size:10px}
 .image-overlay strong {font-size:15px}
 .image-overlay small {font-size:12px}
 .filters {flex-wrap:wrap;gap:8px}
 .filters .search-field {min-width:160px}
 .tile-image {min-height:210px}
 .inspector .roi-scroll,.detail-side .roi-scroll {max-height:none!important;overflow:visible;display:block!important}
 .roi-row {padding:14px}
 .roi-heading strong,.roi-values span,.roi-heading small {font-size:12px}
 .viewer-tools {display:flex;flex-wrap:wrap;gap:10px}
 .viewer-tools label {font-size:12px;display:flex;align-items:center;gap:6px}
 .viewer-tools .select {max-width:none;font-size:14px}
 .viewer-legend,.viewer-caption {flex-wrap:wrap;gap:10px}
 .point-temperature {font-size:12px}
 .legend-toggles {display:flex;flex-wrap:wrap;gap:6px}
 .dx-status-lanes {grid-template-columns:repeat(2,minmax(0,1fr))}
 .dx-event-row>div {flex-wrap:wrap;font-size:12px;gap:6px}
 .dx-event-row>div:last-child {font-size:12px}
 .dx-event-row p,.dx-event-row>div b,.dx-event-body>p,.dx-panel-head p {font-size:12px}
 .dx-panel-head {padding:14px;gap:10px;align-items:flex-start}
 .dx-rule-evidence {flex-wrap:wrap;gap:10px;padding:14px}
 .dx-rule-evidence span {font-size:12px}
 .dx-alarm-tools {padding:14px;gap:12px}
 .dx-alarm-tools label {display:flex;flex-direction:column;gap:6px}
 .dx-alarm-tools input {width:100%}
 .hx-list {max-height:none;overflow:visible}
 .hx-filters label {flex-basis:100%}
 .tx-controls {grid-template-columns:minmax(0,1fr);padding:14px;gap:14px}
 .tx-controls label {font-size:12px;min-width:0}
 .tx-controls label:has(input[type=datetime-local]) {grid-column:auto}
 .tx-condition-list {margin:12px 0;padding:12px}
 .tx-condition {gap:10px}
 .tx-remeasure .tx-controls {padding:12px 0}
 .hx-paper-brand span {font-size:10px;letter-spacing:0}
 .hx-paper .tx-proof {grid-template-columns:80px minmax(0,1fr);gap:12px;font-size:12px}
 .hx-paper .dx-panel-head .dx-badge {display:block;white-space:normal;font-size:12px}
 .hx-chart text {font-size:22px;fill:#596575}
 .hx-paper .hx-chart text {font-size:22px}
 .hx-chart {max-height:none}
 .hx-paper .hx-chart {max-height:none}
 .hx-legend {font-size:12px;flex-wrap:wrap}
 .gx-toolbar {align-items:flex-start}
 .gx-form label,.gx-rule-body form label,.hx-control-body label {font-size:12px}
 .gx-savebar {gap:10px}
 .gx-savebar .btn {flex:1;white-space:normal}
 .gx-link-flow {flex-wrap:wrap;font-size:12px}
 .gx-test .btn {white-space:normal}
 .gx-layout .dx-table-wrap {overflow-x:auto}
 .gx-layout .dx-table-wrap:before {content:'표를 좌우로 밀어 전체 항목 확인';display:block;padding:10px 14px;font-size:12px;color:#596575}
 .gx-layout .dx-table {min-width:560px}
 .gx-layout .dx-table th,.gx-layout .dx-table td {font-size:12px;padding:12px}
 .gx-step,.gx-note,.gx-test,.gx-apply-state {font-size:12px;line-height:1.7}
 .eq-summary {flex-wrap:wrap;gap:10px}
}
@media(max-width:680px) {
 .app-header {height:auto;min-height:50px;flex-wrap:wrap;gap:8px;padding:10px 14px}
 .header-title {min-width:0;flex:1;flex-wrap:wrap;line-height:1.7}
 .header-title #header-context {white-space:normal;overflow-wrap:anywhere}
 .header-right {flex:none}
}
@media(max-width:850px) {
 .gx-tree {max-height:none;overflow:visible}
 .gx-tree summary {padding:12px 16px;font-size:12px;cursor:pointer}
}
@media(max-width:680px) {
 .hx-report-facts {flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
 .hx-report-facts strong {white-space:nowrap}
 .hx-report-facts span {font-size:12px}
}
