
/* DEV NRDATA2022 unified hardware card: compact contract/product-style dialog */
/* Retire the earlier separate prototype dialog (it could intercept clicks after closing). */
#gns-hardware-dev-modal{display:none!important}
/* Replace (do not visually stack) the legacy read-only service card while unified card is open. */
body.gns-hw-v2-open .service-registry-panel > .modal-backdrop{display:none!important}
#gns-hw-unified{position:fixed;inset:0;z-index:3500;display:flex;align-items:center;justify-content:center;padding:18px 10px;font-family:inherit}
#gns-hw-unified .gns-hwv-shade{position:absolute;inset:0;background:rgba(17,32,49,.65);backdrop-filter:blur(2px)}
#gns-hw-unified .gns-hwv-modal{position:relative;display:flex;flex-direction:column;overflow:hidden;width:min(1050px,96vw);max-height:min(840px,94dvh);background:#fff;color:#284153;border:1px solid #d7e5ed;border-radius:11px;box-shadow:0 24px 95px #0b22386b}
.gns-hwv-title{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 16px;background:#ecf5fa;border-bottom:1px solid #d4e5ed}
.gns-hwv-title>div{display:flex;flex-direction:column;gap:2px}
.gns-hwv-title strong{font-size:17px;color:#205b79}.gns-hwv-title small{font-size:11px;color:#667f8f}
.gns-hwv-x{border:0;background:#dceaf2;border-radius:6px;width:31px;height:31px;cursor:pointer;color:#326079}
.gns-hwv-content{display:flex;flex-direction:column;overflow:auto;min-height:0;padding:0 14px 12px}
.gns-hwv-alert[hidden]{display:none}.gns-hwv-alert{font-size:12px;color:#216b45;background:#e5f7ed;padding:9px 14px;border-bottom:1px solid #c5e6d1}.gns-hwv-alert:not([hidden]){display:block}
.gns-hwv-summary{display:grid;grid-template-columns:1fr 1.2fr 1.5fr 1.6fr;gap:9px;background:#f8fbfd;border:1px solid #deebf1;border-radius:8px;padding:9px 12px;margin:10px 0 8px}
.gns-hwv-kv{display:flex;min-width:0;flex-direction:column;gap:3px}.gns-hwv-kv span{color:#74899a;font-size:10px;font-weight:600}.gns-hwv-kv strong{font-size:12px;color:#29485d;font-weight:650;overflow-wrap:anywhere}
.gns-hwv-summary .gns-hwv-kv strong{font-size:13px}
.gns-hwv-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid #cadde7;margin:0 0 10px;padding:0 0 0 2px;overflow-x:auto;flex-shrink:0}
.gns-hwv-tabs button{background:transparent;border:0;border-bottom:3px solid transparent;min-height:34px;padding:6px 12px;color:#486679;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap}
.gns-hwv-tabs button.is-current,.gns-hwv-tabs button[aria-selected=true]{color:#0878ac;border-bottom-color:#1288bd;background:#edf8fe}
.gns-hwv-pane{overflow-y:auto;min-height:150px;padding:0 1px 3px}
.gns-hwv-block{margin-bottom:11px;border:1px solid #dce9ef;border-radius:7px;overflow:hidden}
.gns-hwv-block h4{display:flex;align-items:center;gap:7px;margin:0;background:#eff6fa;padding:8px 11px;font-size:12px;color:#236589;font-weight:750}
.gns-hwv-block h4 small{font-size:11px;color:#6b8c9d}
.gns-hwv-block-head{display:flex;justify-content:space-between;align-items:center;background:#eff6fa;padding-right:8px}
.gns-hwv-block-head h4{flex:1}.gns-hwv-block-head button{min-height:28px;padding:4px 9px}
.gns-hwv-kvs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px;padding:10px 12px 12px}
.gns-hwv-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 11px;padding:10px 12px}
.gns-hwv-input{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:11px;font-weight:650;color:#5e7789}
.gns-hwv-input input,.gns-hwv-input select,.gns-hwv-seal-select input,.gns-hwv-seal-row input{width:100%;height:34px;min-width:0;border:1px solid #b8d0db;background:white;border-radius:5px;color:#25495a;padding:5px 8px;font-size:12px}
.gns-hwv-input input:focus,.gns-hwv-input select:focus,.gns-hwv-seal-row input:focus{outline:2px solid #8ac3dd}
.gns-hwv-empty{padding:14px;color:#778b99;font-size:12px}
.gns-hwv-scroll{max-height:235px;overflow:auto}
.gns-hwv-table{border-collapse:collapse;width:100%;font-size:12px}.gns-hwv-table th{position:sticky;top:0;background:#f2f7fa;text-align:left;padding:8px 11px;font-weight:700;color:#456c7c}
.gns-hwv-table td{padding:7px 11px;border-top:1px solid #e3edf1}
.gns-hwv-table tbody tr:nth-child(even){background:#fafcfd}
.gns-hwv-table td strong{color:#175c81}
.gns-hwv-footer{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:7px;padding:10px 0 0;border-top:1px solid #d9e6ed}
.gns-hwv-footer span{margin-right:auto;color:#7c8995;font-size:11px}
.gns-hwv-footer button,.gns-hwv-block-head button,.gns-hwv-print{padding:6px 11px;border:1px solid #bdd1dc;border-radius:6px;background:#f7fafc;min-height:32px;color:#275d7a;font-size:12px;font-weight:650;cursor:pointer}
.gns-hwv-footer button.primary,.gns-hwv-block-head button.primary{color:white;border-color:#1678ac;background:#177faf}
.gns-hwv-footer button:hover,.gns-hwv-block-head button:hover{filter:brightness(.95)}
.gns-hwv-protocol-ref{margin:0 12px 10px;color:#506b7c;font-size:12px}
.gns-hwv-seal-layout{display:grid;grid-template-columns:.9fr 1.3fr;gap:12px;padding:10px}
.gns-hwv-seal-select,.gns-hwv-assigned{min-width:0;display:flex;flex-direction:column;gap:7px}
.gns-hwv-seal-layout h5{color:#386b86;margin:2px 0 0;font-size:12px}
.gns-hwv-seal-list,.gns-hwv-assigned-list{height:240px;overflow-y:auto;border:1px solid #d1e1e9;border-radius:6px}
.gns-hwv-seal-list button{display:flex;justify-content:space-between;align-items:center;gap:5px;min-height:33px;width:100%;padding:6px 9px;border:0;border-bottom:1px solid #e7eff3;background:#fff;cursor:pointer;color:#35657b;text-align:left;font-size:12px}
.gns-hwv-seal-list button:nth-child(even){background:#f8fbfd}
.gns-hwv-seal-list button:disabled{opacity:.4;cursor:default}.gns-hwv-seal-list button span{font-weight:900;color:#1187ae}
.gns-hwv-seal-list button small{font-size:10px;color:#7a909d}
.gns-hwv-seal-row{display:grid;grid-template-columns:.8fr 1fr 30px;align-items:center;gap:7px;padding:7px 9px;border-bottom:1px solid #e3eef2}
.gns-hwv-seal-row>div,.gns-hwv-seal-row>label{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:10px;color:#67859a}
.gns-hwv-seal-row strong{font-size:12px;overflow-wrap:anywhere;color:#235c7d}
.gns-hwv-seal-row button{width:28px;height:29px;border:1px solid #e7c9c9;border-radius:5px;color:#b54747;background:#fff6f6;cursor:pointer}
@media(max-width:800px){.gns-hwv-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gns-hwv-kvs,.gns-hwv-form{grid-template-columns:repeat(2,minmax(0,1fr))}.gns-hwv-seal-layout{grid-template-columns:1fr}.gns-hwv-seal-list,.gns-hwv-assigned-list{height:180px}}
@media(max-width:480px){#gns-hw-unified{padding:5px}#gns-hw-unified .gns-hwv-modal{width:100%;max-height:98dvh}.gns-hwv-content{padding:0 8px 8px}.gns-hwv-kvs{gap:9px}.gns-hwv-form{gap:6px}.gns-hwv-title{padding:10px}.gns-hwv-footer span{width:100%}.gns-hwv-footer button{flex:1}.gns-hwv-seal-row{grid-template-columns:1fr 1.1fr 26px}}

/* Clarion hardware parity: partner lookup, statuses, Removed / Glued panels */
.gns-hwv-partner-pick{grid-column:span 2}
.gns-hwv-partner-pick>div{display:flex;gap:6px;min-width:0}
.gns-hwv-partner-pick input{flex:1;min-width:0;background:#f6fafc}
.gns-hwv-partner-pick button{min-width:106px;background:#ecf6fa;border:1px solid #b9d0df;border-radius:5px;color:#205a7d;font-size:12px;font-weight:700;cursor:pointer}
.gns-hwv-status{display:flex;gap:12px;flex-wrap:wrap;padding:10px 12px 3px}
.gns-hwv-status label{display:flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #d7e4e9;border-radius:5px;font-size:12px;font-weight:650;cursor:pointer;color:#425d70}
.gns-hwv-status input{accent-color:#197fb2}
.gns-hwv-chooser{position:absolute;inset:0;background:#16314785;display:flex;align-items:center;justify-content:center;padding:20px;z-index:6}
.gns-hwv-chooser section{display:flex;flex-direction:column;overflow:hidden;width:min(770px,100%);max-height:90%;border-radius:8px;background:white;border:1px solid #c4dce7;box-shadow:0 14px 36px #0b1a2b45}
.gns-hwv-chooser header{display:flex;align-items:center;justify-content:space-between;background:#eaf5fa;color:#205d7a;padding:10px 14px}
.gns-hwv-chooser header button{cursor:pointer;border:0;background:#d5e8f3;color:#205d7a;border-radius:5px;padding:6px 10px}
.gns-hwv-searchbar{display:flex;gap:8px;align-items:center;padding:10px}
.gns-hwv-searchbar input{flex:1;height:36px;min-width:0;border:1px solid #b7d0e0;border-radius:6px;padding:6px 9px}
.gns-hwv-searchbar small{font-size:11px;color:#647c8f}
.gns-hwv-chooser-results{overflow:auto;max-height:435px}
.gns-hwv-chooser-results button{border:1px solid #bfd6e2;border-radius:5px;background:#eff7fb;color:#236181;padding:5px 9px;cursor:pointer}
.gns-hwv-old,.gns-hwv-new{display:flex;flex-direction:column;gap:7px;min-width:0}
.gns-hwv-old h5,.gns-hwv-new h5{font-size:12px;color:#326986;margin:1px 0 2px}
.gns-hwv-old-list{min-height:155px;max-height:300px;overflow-y:auto;border:1px solid #d1e1e9;border-radius:6px}
.gns-hwv-old-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:8px;padding:7px 9px;border-bottom:1px solid #e3edf2}
.gns-hwv-old-row:nth-child(even){background:#f8fbfd}
.gns-hwv-old-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.gns-hwv-old-row b{font-size:12px;color:#225d7c}
.gns-hwv-old-row small{font-size:10px;color:#667f8c}
.gns-hwv-old-row button,.gns-hwv-old-row select{padding:5px;border:1px solid #b6cdd8;border-radius:5px;background:white;font-size:11px;color:#235c7a;cursor:pointer;min-width:0}
.gns-hwv-old-row:has(select){grid-template-columns:minmax(0,1fr) minmax(0,.85fr) 54px}
.gns-hwv-help{font-size:11px;color:#687f8d;margin:2px 0}
.gns-hwv-new .gns-hwv-seal-list{height:132px}
.gns-hwv-new .gns-hwv-assigned-list{min-height:94px;max-height:190px;height:auto}
.gns-hwv-seal-layout{grid-template-columns:1fr 1fr}
@media(max-width:780px){.gns-hwv-seal-layout{grid-template-columns:1fr}.gns-hwv-partner-pick{grid-column:span 2}.gns-hwv-searchbar{flex-direction:column;align-items:stretch}}
@media(max-width:480px){.gns-hwv-partner-pick{grid-column:span 2}.gns-hwv-chooser{padding:5px}.gns-hwv-chooser-results{max-height:50dvh}.gns-hwv-status{gap:5px;padding:8px}.gns-hwv-old-row{grid-template-columns:1.1fr 1fr}}

/* Hardware read-only React dialog never paints: unified card replaces it from first frame. */
body.gns-hw-v2-mode .service-registry-panel > .modal-backdrop:has(.service-device-card){display:none!important}
body.gns-hw-v2-mode .service-registry-panel > .modal-backdrop:has(.service-device-card) *{visibility:hidden!important}
#hwv-passport[readonly]{background:#e9f5fb;border-color:#91bed6;font-weight:750;color:#155f85}
#gns-hwv-settings{position:fixed;inset:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:12px}
.gns-hwv-settings-shade{position:absolute;inset:0;background:#142d3fb8}
.gns-hwv-settings-dialog{position:relative;width:min(720px,96vw);max-height:90dvh;overflow-y:auto;display:flex;flex-direction:column;border:1px solid #bad3e0;border-radius:10px;background:#fff;color:#274b62;box-shadow:0 20px 65px #0b223871}
.gns-hwv-settings-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid #d8e6ee;background:#eaf5fc}
.gns-hwv-settings-dialog>header strong{font-size:16px}
.gns-hwv-settings-dialog button{border:1px solid #b8d4e2;border-radius:5px;background:#f7fafb;padding:7px 12px;color:#245f81;cursor:pointer}
.gns-hwv-settings-body{padding:13px 17px}.gns-hwv-settings-body>p{font-size:12px;color:#607988;margin:3px 0 14px}
.gns-hwv-settings-body .gns-hwv-form{grid-template-columns:repeat(2,minmax(0,1fr));padding:2px}
.gns-hwv-settings-preview{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border:1px solid #c6e0ed;background:#eff9fe;border-radius:7px;margin:12px 0;padding:12px}
.gns-hwv-settings-preview strong{font-size:23px;color:#145c83}.gns-hwv-settings-preview span{font-size:12px;color:#4e7185}
.gns-hwv-settings-body .gns-hwv-warning{color:#81600b;background:#fff8dc;border-left:3px solid #d9ac22;padding:9px}
#np-error{color:#aa2929;font-size:12px}
.gns-hwv-settings-dialog footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #dce9ef;padding:10px 17px}
.gns-hwv-settings-dialog footer button.primary{background:#147bab;color:white}
@media(max-width:500px){.gns-hwv-settings-body .gns-hwv-form{grid-template-columns:1fr}.gns-hwv-settings-preview{flex-direction:column}}

/* Hardware dialog refinements: address chooser, Z/GT fields, and close button. */
#gns-hw-unified .gns-hwv-x{
  display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 36px;
  width:36px;height:36px;padding:0;margin:0;border:1px solid #c5d9e5;border-radius:8px;
  color:#466a82;background:#f7fbfe;cursor:pointer;box-shadow:none;line-height:1;
}
#gns-hw-unified .gns-hwv-x svg{display:block;pointer-events:none}
#gns-hw-unified .gns-hwv-x:hover{color:#135e86;background:#dbeef8;border-color:#91bbd2}
#gns-hw-unified .gns-hwv-x:focus-visible{outline:3px solid #86c9e9;outline-offset:2px}
.gns-hwv-address-picker{min-width:0;display:flex;align-items:end;gap:6px}
.gns-hwv-address-picker .gns-hwv-input{flex:1;min-width:0}
.gns-hwv-address-picker>button{height:34px;min-width:76px;white-space:nowrap;border-radius:5px;
 background:#eef8fc;color:#1e6082;border:1px solid #b9d2df;padding:5px 9px;font-size:11px;font-weight:700;cursor:pointer}
.gns-hwv-address-picker>button:disabled{opacity:.5;cursor:not-allowed}
.gns-hwv-address-tip{grid-column:span 4;margin:-2px 0 3px;color:#8c6818;font-size:11px;
 background:#fff9e9;border:1px solid #eddfbd;padding:6px 8px;border-radius:5px}
.gns-hwv-address-form{padding:12px 15px;display:grid;gap:10px}
.gns-hwv-address-form p{font-size:12px;color:#627787;margin:0}
.gns-hwv-address-form label{display:grid;gap:3px;font-size:12px;font-weight:650;color:#466a7f}
.gns-hwv-address-form input,.gns-hwv-address-form select{width:100%;height:36px;border:1px solid #b9d1df;border-radius:5px;padding:6px 9px}
.gns-hwv-address-error{color:#a5262f;font-size:12px}
.gns-hwv-address-creator footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 15px;border-top:1px solid #dce8ef}
.gns-hwv-address-creator footer button{padding:6px 12px;border-radius:5px;background:#eff6f9;border:1px solid #b7cedd;color:#245f82;cursor:pointer}
.gns-hwv-address-creator footer button.primary{background:#157dad;color:white}
.gns-hwv-z-header{margin:6px 0 0;padding:8px 12px 0;font-size:12px;color:#386f8c}
#gns-hw-unified input[type=number]{font-variant-numeric:tabular-nums}
@media(max-width:800px){.gns-hwv-address-tip{grid-column:span 2}}
@media(max-width:500px){.gns-hwv-address-picker{grid-column:span 2}.gns-hwv-address-tip{grid-column:span 2}}
.gns-hwv-foreign{margin-top:12px;border:1px solid #cce1eb;border-radius:6px;background:#f8fcfe;padding:9px}
.gns-hwv-foreign h5{font-size:12px;font-weight:750;color:#225f81;margin:0 0 4px}
.gns-hwv-foreign p{font-size:11px;color:#5e788b;margin:0 0 8px}
.gns-hwv-foreign-inputs{display:grid;grid-template-columns:.7fr 1fr 1.1fr .9fr auto;gap:5px}
.gns-hwv-foreign-inputs input,.gns-hwv-foreign-inputs select{width:100%;min-width:0;min-height:31px;border:1px solid #b8d2e0;border-radius:5px;padding:4px 7px;background:white;font-size:11px}
.gns-hwv-foreign-inputs button{min-height:31px;background:#147bab;color:white;border:1px solid #147bab;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer}
.gns-hwv-foreign-item{display:flex;align-items:center;gap:7px;font-size:11px;margin-top:6px;padding:5px 7px;border:1px solid #d5e6ee;border-radius:5px}
.gns-hwv-foreign-item button{margin-left:auto;color:#a93838;border:1px solid #edcccb;border-radius:4px;background:#fff6f6;cursor:pointer}
@media(max-width:800px){.gns-hwv-foreign-inputs{grid-template-columns:1fr 1fr}.gns-hwv-foreign-inputs button{grid-column:span 2}}
