/* Shared APP status language. Color is always paired with text and a symbol. */
.hardware-status,.hardware-state-tag{--status-ink:#26745a;--status-bg:#edf7f1;--status-line:#cde5d7}
.hardware-status.is-warning,.hardware-state-tag.is-warning{--status-ink:#98500d;--status-bg:#fff2df;--status-line:#efc996}
.hardware-status.is-danger,.hardware-state-tag.is-danger{--status-ink:#b63243;--status-bg:#fff0f1;--status-line:#f1bdc4}
.hardware-status{display:inline-flex;align-items:flex-start;gap:6px;min-width:0;padding:8px 10px;border:1px solid var(--status-line);border-radius:10px;background:var(--status-bg);color:var(--status-ink);text-align:left;line-height:1.4}
.hardware-status-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 16px;width:16px;height:16px;margin-top:2px;border-radius:50%;background:var(--status-ink);color:white;font:600 12px/1 sans-serif}
.hardware-status-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
.hardware-status-label{font-size:14px;font-weight:500;line-height:20px;color:inherit}
.hardware-status-detail{font-size:12px;line-height:18px;color:inherit;overflow-wrap:anywhere}
.hardware-status.is-ok{background:transparent;border-color:transparent;padding:4px 0}
.hardware-status.is-ok .hardware-status-icon{background:transparent;color:var(--status-ink)}
.hardware-state-tag{display:inline-block;background:var(--status-bg);color:var(--status-ink)!important;border-radius:6px;padding:3px 7px;font-size:12px;line-height:18px;font-style:normal}
.app-window .ip-device-connection,.app-window .detail-connection{gap:8px}
.app-window .ip-device-connection{margin:0 0 8px;padding:0;align-items:center}
.app-window .ip-device-connection>.hardware-status,.app-window .detail-connection>.hardware-status{flex:1;display:inline-flex;align-items:flex-start;gap:6px;font-size:14px}
.app-window .ip-device-connection:has(.is-warning)>button,.app-window .detail-connection:has(.is-warning)>button{color:#98500d;border-color:#efc996;background:#fff8ee}
.app-window .ip-device-connection:has(.is-danger)>button,.app-window .detail-connection:has(.is-danger)>button{color:#b63243;border-color:#f1bdc4;background:#fff7f8}
.app-window .ip-group-tab{position:relative}
.device-tab-alert{position:absolute;right:2px;top:1px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#ad5b0b;color:#fff;border:2px solid #f5f2fc;font:600 12px/1 sans-serif;font-style:normal}
.device-tab-alert.is-danger{background:#c13b4c}
.session-hardware-status{display:flex;flex-direction:column;align-items:flex-end}
.session-hardware-status .hardware-status{display:inline-flex;padding:0;background:transparent;border:0;max-width:180px;color:var(--status-ink)}
.session-hardware-status .hardware-status-label{font-size:14px;line-height:20px}
.session-hardware-compact:has(.is-warning){background:#fff2df;box-shadow:inset 0 0 0 1px #efc996}
.session-hardware-compact:has(.is-danger){background:#fff0f1;box-shadow:inset 0 0 0 1px #f1bdc4}
.session-hardware-status:has(.is-warning)>button{color:#98500d}
.session-hardware-status:has(.is-danger)>button{color:#b63243}
.session-hardware-status>button{font-size:14px;font-weight:500}
.device-health-row{margin:10px 0 4px}
.device-health-row>.hardware-status{width:100%}
.device-health-row>.hardware-status.is-ok{width:auto}
.form-error:not(:empty){padding:10px 12px;border:1px solid #f1bdc4;border-radius:10px;background:#fff0f1;color:#b63243;font-size:14px;line-height:1.6}
