@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}

/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.flex{display:flex}.hidden{display:none}.h-full{height:100%}.min-h-full{min-height:100%}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--bg:#eef2f3;--panel:#fff;--line:#d7dee5;--text:#172033;--muted:#657386;--teal:#0f766e;--blue:#2563eb;--amber:#d97706;--red:#dc2626;--green:#16a34a;--shadow:0 14px 36px #10182814;--radius:8px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);letter-spacing:0;margin:0;font-family:Segoe UI,Malgun Gothic,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}.app-shell{grid-template-rows:auto minmax(0,1fr);min-height:100vh;display:grid}.side-panel{z-index:20;color:#f8fafc;background:#111827;grid-template-columns:auto minmax(360px,1fr) auto;align-items:center;gap:14px;padding:7px 16px;display:grid;position:sticky;top:0}.side-panel.environment-development{background:#7f1d1d;border-bottom:3px solid #fb923c}.side-panel.environment-development .brand-mark,.side-panel.environment-development .tab-btn.active{background:linear-gradient(135deg,#f97316,#dc2626)}.brand-block{align-items:center;gap:12px;display:flex}.brand-mark{border-radius:var(--radius);background:linear-gradient(135deg,#0f766e,#2563eb);place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand-block span,.brand-block strong{display:block}.brand-block span,.login-state{color:#aeb9c8}.login-panel{grid-template-columns:minmax(190px,240px) minmax(210px,260px) auto auto;justify-content:start;align-items:center;gap:10px;display:grid}label{color:var(--muted);gap:6px;font-size:12px;font-weight:700;display:grid}.login-panel label{color:#dbe4ef;white-space:nowrap;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}input,select{border:1px solid var(--line);width:100%;min-height:36px;color:var(--text);background:#fff;border-radius:6px;padding:7px 10px}.login-panel input{color:#fff;background:#ffffff1a;border-color:#ffffff2e;min-height:32px;padding:5px 9px}.auth-gate{background:#111827;place-items:center;min-height:100vh;padding:24px;display:grid;position:relative}.auth-gate.environment-development{background:#7f1d1d}.auth-dialog{border-radius:var(--radius);color:#f8fafc;width:min(420px,100vw - 32px);box-shadow:var(--shadow);background:#172033;border:1px solid #94a3b86b;gap:16px;padding:20px;display:grid;position:relative}.auth-brand span{color:#aeb9c8}.auth-form{gap:10px;display:grid}.auth-form label{color:#dbe4ef}.auth-form input{color:#fff;background:#ffffff1a;border-color:#ffffff2e}.auth-session-alert{color:#7f1d1d;background:#fff7ed;border:2px solid #facc15;border-left:8px solid #ef4444;border-radius:8px;gap:7px;padding:14px 16px;display:grid;box-shadow:0 16px 34px #7f1d1d59}.auth-session-alert strong{color:#991b1b;font-size:18px;line-height:1.2}.auth-session-alert span{color:#7c2d12;font-size:14px;font-weight:800;line-height:1.45}.auth-login-state{color:#dbe4ef;background:#0f172a94;border:1px solid #94a3b84d;border-radius:6px;min-height:42px;margin:0;padding:10px 12px;font-size:13px;font-weight:800}.auth-login-state.pending{color:#bfdbfe;background:#1e40af47;border-color:#60a5fa8a}.auth-login-state.error{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.auth-login-state.success{color:#166534;background:#dcfce7;border-color:#86efac}.auth-form .primary-btn:disabled{cursor:progress;opacity:.72}.auth-checking{color:#dbe4ef;min-height:44px}.auth-checking,.session-panel{align-items:center;gap:10px;display:flex}.session-panel{min-width:0}.session-panel>div{gap:2px;min-width:0;display:grid}.session-panel span{color:#aeb9c8;font-size:12px;font-weight:800}.session-panel strong{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.session-role{background:#14b8a62e;border-radius:999px;padding:4px 8px;color:#99f6e4!important}.version-badge{color:#dbe4ef;white-space:nowrap;background:#0f172ab8;border:1px solid #94a3b857;border-radius:6px;grid-template-columns:auto auto;align-items:center;gap:5px;min-height:28px;padding:4px 8px;display:grid}.version-badge span{color:#93a4ba;font-size:11px}.version-badge strong{color:#f8fafc;max-width:none;font-size:12px}.environment-badge{color:#dbe4ef;white-space:nowrap;background:#0f172ab8;border:1px solid #94a3b857;border-radius:6px;grid-template-columns:auto auto;align-items:center;gap:5px;min-height:28px;padding:4px 8px;display:grid}.environment-badge span{color:#93a4ba;font-size:11px}.environment-badge strong{color:#f8fafc;font-size:12px}.environment-badge.development{color:#9a3412;background:#ffedd5;border-color:#fed7aa}.environment-badge.development span,.environment-badge.development strong{color:#9a3412}.auth-version-badge{z-index:1;position:absolute;top:14px;right:14px}.auth-environment-badge{z-index:1;position:absolute;top:50px;right:14px}.view-tabs{justify-content:flex-end;gap:10px;min-width:300px;display:flex}.danger-btn,.ghost-btn,.icon-btn,.primary-btn,.scope-btn,.secondary-btn,.tab-btn{white-space:nowrap;border:1px solid #0000;border-radius:6px;min-height:36px;padding:7px 11px;font-weight:700}.tab-btn{color:#f8fafc;background:#1e293bf5;border-color:#94a3b86b;min-width:140px;min-height:40px;padding-left:18px;padding-right:18px;box-shadow:inset 0 1px #ffffff14}.tab-btn.active{color:#fff;background:linear-gradient(135deg,#0f766e,#2563eb);border-color:#bfdbfe8f;box-shadow:0 8px 18px #0f766e3d,inset 0 1px #ffffff2e}.primary-btn{background:var(--teal);color:#fff}.secondary-btn{color:#0f615b;background:#e7f3f1;border-color:#bfd9d5}.ghost-btn{border-color:var(--line);color:var(--text);background:#fff}.ghost-btn.dark{color:#f8fafc;background:#ffffff14;border-color:#cbd5e152}.danger-btn{background:var(--red);color:#fff}.icon-btn{border-color:var(--line);width:36px;min-width:36px;color:var(--text);background:#fff;place-items:center;padding:0;display:inline-grid}.icon-btn.compact{width:30px;min-width:30px;min-height:30px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;padding:8px 16px}.context-selectors{grid-template-columns:minmax(240px,1fr) minmax(260px,1.1fr) minmax(0,2fr);align-items:end;gap:10px;display:grid}.context-selectors label,.gw-select-field{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.gw-inline-actions{grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:10px;display:grid}.top-actions{align-items:center;gap:8px;display:flex}.summary-badge,.sync-state{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;min-height:30px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.sync-state.processing{color:#92400e;background:#fffbeb;border-color:#fde68a}main{gap:14px;padding:14px 16px 24px;display:grid}.view{display:none}.view.active{gap:14px;display:grid}.metrics-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.layout-band,.metric-tile{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.metric-tile{padding:14px}.metric-tile small,.metric-tile span{color:var(--muted);font-weight:800}.metric-tile strong{margin:4px 0;font-size:30px;display:block}.layout-band{padding:14px}.section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.section-title h1,.section-title h2{margin:0;font-size:18px}.plant-map{object-fit:contain;border:1px solid var(--line);border-radius:var(--radius);background:#f8fafc;width:100%;max-height:180px;margin:6px 0 12px;display:block}.string-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,310px),1fr));gap:12px;display:grid}.string-card{border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;overflow:hidden}.string-card header{border-bottom:1px solid var(--line);background:#f4f7fb;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.string-card h2{margin:0;font-size:14px;line-height:1.35}.string-actions{align-items:center;gap:8px;display:flex}.string-meta{color:var(--muted);font-size:12px;font-weight:700}.device-list{gap:6px;padding:8px;display:grid}.device-card{border:1px solid var(--master-line,#e3e9f0);background:var(--master-bg,#fff);border-radius:6px;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:6px;min-width:0;min-height:36px;padding:7px;display:grid}.channel-device-card.selected,.command-card.active,.device-card.selected,.master-card.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.device-card-check{grid-template-columns:auto minmax(0,1fr);gap:7px}.device-card-check,.device-line{align-items:center;min-width:0;display:grid}.device-line{color:var(--text);grid-template-columns:minmax(118px,1fr) 88px 54px;gap:5px;font-size:13px;font-weight:700;overflow:hidden}.device-line>span:not(.spm-address){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.device-line .spm-address{text-overflow:clip;width:88px;overflow:visible}.quick-command-layer{z-index:100;background:#0f172a61;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.quick-command-menu{border-radius:var(--radius);width:min(1120px,100vw - 32px);max-height:min(780px,100vh - 48px);box-shadow:var(--shadow);background:#f8fbff;border:1px solid #b9c8dc;grid-template-rows:auto auto minmax(0,1fr);gap:14px;margin:0;padding:14px;display:grid;overflow:hidden}.quick-command-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.quick-command-head span,.quick-command-head strong{display:block}.quick-command-head span{color:var(--muted);margin-top:3px;font-size:12px;font-weight:700}.quick-command-grid{grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:8px;display:grid}.quick-command-btn{text-align:left;background:#fff;border:1px solid #d4deea;border-radius:6px;min-height:58px;padding:9px}.quick-command-btn.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.quick-command-btn span,.quick-command-btn strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.quick-command-btn span{color:var(--muted);margin-top:4px;font-size:11px}.quick-command-status{color:#31506f;background:#eef6ff;border-radius:6px;padding:8px;font-size:12px;font-weight:800}.processing-panel{border-radius:var(--radius);background:#eff6ff;border:1px solid #bfdbfe;align-items:center;gap:12px;padding:12px;display:flex}.processing-panel p,.processing-panel strong{margin:0;display:block}.processing-panel p{color:#475569;margin-top:4px;font-size:12px;font-weight:800}.processing-spinner{border:3px solid #bfdbfe;border-top-color:#2563eb;border-radius:999px;width:22px;height:22px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.quick-confirm-panel{border-radius:var(--radius);background:#fffbeb;border:1px solid #f6c453;gap:10px;padding:12px;display:grid}.quick-confirm-panel span,.quick-confirm-panel strong{display:block}.quick-confirm-panel p{color:#7c4a03;margin:4px 0 0;font-size:12px;font-weight:800}.quick-confirm-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.quick-confirm-grid div{background:#fff;border:1px solid #fde68a;border-radius:6px;min-height:56px;padding:9px}.quick-confirm-grid span{color:var(--muted);font-size:12px;font-weight:800}.quick-confirm-grid strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:14px;overflow:hidden}.quick-confirm-actions{justify-content:flex-end;gap:8px;display:flex}.quick-result-panel{border-radius:var(--radius);background:#eff6ff;border:1px solid #bfdbfe;grid-template-rows:auto auto auto auto minmax(0,1fr);gap:12px;min-height:0;padding:14px;display:grid;overflow:hidden}.quick-result-panel.error{background:#fef2f2;border-color:#fecaca}.quick-result-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.quick-result-head span{color:#166534;background:#dcfce7;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:900}.quick-result-panel.error .quick-result-head span{color:#991b1b;background:#fee2e2}.quick-result-panel p{color:#475569;margin:0;font-weight:700}.quick-result-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;display:grid}.quick-result-item{background:#fff;border:1px solid #dbe7f5;border-radius:6px;min-width:0;min-height:58px;padding:9px;overflow:hidden}.quick-result-item span,.quick-result-item strong{display:block}.quick-result-item span{color:var(--muted);font-size:12px;font-weight:800}.quick-result-item strong{color:var(--text);overflow-wrap:anywhere;word-break:break-word;margin-top:5px;font-size:15px;line-height:1.35}.quick-result-line,.quick-result-table-head{grid-template-columns:minmax(220px,1fr) 128px minmax(150px,auto) 88px;align-items:center;gap:12px;display:grid}.quick-result-table-head{color:#64748b;padding:0 9px;font-size:11px;font-weight:900}.quick-result-list{gap:8px;min-height:0;padding-right:6px;display:grid;overflow:auto}.quick-result-row{background:#fff;border:1px solid #dbe7f5;border-radius:6px}.quick-result-row.error{border-color:#fecaca}.quick-result-values{flex-wrap:wrap;gap:6px;padding:0 9px 9px;display:flex}.quick-result-value{color:#0f172a;background:#f8fbff;border:1px solid #dbe7f5;border-radius:6px;align-items:center;gap:5px;min-width:0;padding:5px 7px;font-size:12px;font-weight:800;display:inline-flex}.quick-result-frame-row{flex:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.quick-result-value.wide{align-items:flex-start}.quick-result-frame-row .quick-result-value:only-child{grid-column:1/-1}.quick-result-value b{color:#64748b;flex:none;font-weight:900}.quick-result-value strong{overflow-wrap:anywhere;word-break:break-word;min-width:0}.quick-result-line{min-height:46px;padding:10px}.quick-result-line em,.quick-result-line strong,.result-address,.result-spm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quick-result-line em{color:#166534;justify-self:start;font-style:normal;font-weight:900}.quick-result-row.error .quick-result-line em{color:#991b1b}@media (max-width:760px){.quick-command-layer{padding:12px}.quick-command-menu{width:min(100%,100vw - 24px);max-height:calc(100vh - 24px);padding:12px}.quick-result-table-head{display:none}.quick-result-line{grid-template-columns:minmax(0,1fr);gap:4px}.quick-result-line em,.quick-result-line strong,.result-address,.result-spm{white-space:normal}.quick-result-frame-row{grid-template-columns:minmax(0,1fr)}}.channel-layout,.two-column{grid-template-columns:minmax(0,1fr) minmax(340px,.42fr);align-items:start;gap:14px;display:grid}.command-help{border-radius:var(--radius);background:#f8fafc;border:1px solid #cbd5e1;gap:4px;margin-bottom:14px;padding:12px;display:grid}.command-help span{color:#475569;line-height:1.5}.bulk-row,.filter-row,.scope-control,.set-tab-row{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.scope-btn{border-color:var(--line);background:#fff}.scope-btn.active{background:var(--blue);color:#fff}.scope-btn.danger.active{background:var(--red)}.command-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.command-card{border:1px solid var(--line);border-radius:var(--radius);text-align:left;background:#fff;min-height:104px;padding:13px}.command-card small,.command-card span,.command-card strong{display:block}.command-card span{color:var(--muted);margin:6px 0}.command-card small{color:#475569;font-weight:800}.command-panel,.config-panel{align-content:start;gap:12px;display:grid}.preview-box,.result-log,.target-list{border:1px solid var(--line);border-radius:var(--radius);background:#f8fafc;gap:8px;padding:10px;display:grid}.preview-row{grid-template-columns:92px 1fr;gap:8px;display:grid}.preview-row span:first-child{color:var(--muted);font-weight:800}.target-list{background:#fff;max-height:260px;overflow:auto}.log-entry,.target-item{background:#fff;border:1px solid #e5ebf1;border-radius:6px;gap:3px;padding:9px;display:grid}.log-entry strong,.target-item strong{font-size:13px}.log-entry span,.target-item span{color:var(--muted);font-size:12px;font-weight:700}.master-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.master-read-status{border-radius:var(--radius);color:#1d4ed8;background:#eff6ff;border:1px solid #93c5fd;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;display:flex}.master-read-status span,.master-read-status strong{display:block}.master-read-status strong{font-size:13px;font-weight:950}.master-read-status span{color:#31506f;margin-top:2px;font-size:12px;font-weight:800}.channel-card-grid{grid-template-columns:repeat(auto-fill,minmax(218px,1fr));gap:8px;display:grid}.master-card{border:1px solid var(--master-line,#d7e1ec);background:var(--master-bg,#fbfdff);color:inherit;cursor:pointer;text-align:left;border-radius:6px;gap:10px;padding:10px;display:grid}.master-card.master-disconnected{opacity:.74}.master-card.master-disconnected .icon-lite-btn:disabled{cursor:pointer}.master-card header,.master-title-line{justify-content:space-between;align-items:center;gap:8px;display:flex}.icon-lite-btn{min-height:28px;padding:4px 8px;font-size:12px}.master-status{background:var(--master-chip-bg,#e7f8ef);color:var(--master-accent,#15803d);border-radius:999px;font-size:11px}.master-source,.master-status{padding:3px 7px;font-weight:900}.master-source{color:#475569;background:#f8fafc;border:1px solid #dbe7f5;border-radius:999px;font-size:10px}.master-source.source-spm{color:#15803d;background:#ecfdf5;border-color:#bbf7d0}.master-source.source-db_cache{color:#b45309;background:#fffbeb;border-color:#fde68a}.master-source.source-error{color:#dc2626;background:#fef2f2;border-color:#fecaca}.master-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.master-kv{background:#ffffffad;border-radius:5px;gap:2px;min-height:34px;padding:6px;display:grid}.master-kv span{color:var(--muted);font-size:10px;font-weight:800}.master-kv strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.master-tone-0{--master-bg:#fff1f2;--master-line:#fecdd3;--master-accent:#be123c;--master-chip-bg:#ffe4e6}.master-tone-1{--master-bg:#eff6ff;--master-line:#bfdbfe;--master-accent:#1d4ed8;--master-chip-bg:#dbeafe}.master-tone-2{--master-bg:#ecfdf5;--master-line:#bbf7d0;--master-accent:#15803d;--master-chip-bg:#dcfce7}.master-tone-3{--master-bg:#fffbeb;--master-line:#fde68a;--master-accent:#b45309;--master-chip-bg:#fef3c7}@media (max-width:1480px){.master-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.master-card-grid{grid-template-columns:1fr}.master-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.channel-toolbar{white-space:nowrap;align-items:flex-end;gap:10px;min-width:0;margin-bottom:10px;display:flex;overflow-x:auto}.channel-toolbar h1{flex:none;align-items:center;min-height:36px;margin:0;line-height:1.2;display:flex}.channel-toolbar .bulk-row,.channel-toolbar .filter-row{align-items:flex-end;margin-bottom:0}.channel-toolbar .summary-badge{align-self:flex-end;margin-left:auto}.master-edit-layer{z-index:110;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.master-edit-dialog{border-radius:var(--radius);width:min(720px,100vw - 32px);max-height:min(720px,100vh - 40px);box-shadow:var(--shadow);background:#fff;border:1px solid #cbd5e1;gap:12px;padding:14px;display:grid;overflow:auto}.master-edit-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.master-edit-head>div{align-items:center;gap:7px;min-width:0;display:flex}.master-edit-head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.master-edit-tabs{margin-bottom:0}.master-edit-warning{color:#78350f;background:#fffbeb;border:1px solid #f59e0b;border-left-width:5px;border-radius:6px;gap:4px;padding:10px 12px;font-size:13px;line-height:1.45;display:grid}.master-edit-warning strong{color:#92400e;font-size:14px}.master-edit-warning.rf-cascade{color:#7f1d1d;background:#fef2f2;border-color:#dc2626 #dc2626 #dc2626 #b91c1c}.master-edit-warning.rf-cascade strong{color:#b91c1c}.master-child-apply-option{align-items:center;gap:7px;width:fit-content;margin-top:4px;font-size:13px;font-weight:900;display:inline-flex}.master-child-apply-option input{width:16px;height:16px;margin:0}.master-edit-error{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:9px 11px;font-size:13px;font-weight:900}.master-edit-grid{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;margin:0;padding:0;display:grid}.master-edit-grid label{gap:4px}.master-edit-grid input,.master-edit-grid select{min-height:30px;padding:5px 7px}.master-edit-grid-wide{grid-template-columns:1fr}.master-edit-grid-wide>.rf-config-form{grid-column:1/-1}.master-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.channel-device-card{border:1px solid var(--master-line,#dce4ee);background:var(--master-bg,#fff);border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"check string type"".address channel";align-items:center;gap:8px 7px;min-height:60px;padding:8px;display:grid}.channel-device-card input{grid-area:check;margin:0}.channel-string-no{color:#334e73;text-overflow:ellipsis;white-space:nowrap;grid-area:string;font-size:12px;line-height:1.25;overflow:hidden}.channel-address{grid-area:address}.channel-device-model{color:#475569;grid-area:type;justify-self:end;font-size:12px;font-weight:900}.spm-address{min-width:0;color:var(--text);letter-spacing:0;white-space:nowrap;flex:none;align-items:baseline;font-size:12px;font-weight:900;display:inline-flex;overflow:visible}.spm-address-prefix{color:#94a3b8;flex:none;font-weight:800;overflow:visible}.spm-address-suffix{color:#174ea6;flex:none;font-weight:950;overflow:visible}.channel-badge{color:var(--master-accent,#1d4ed8);grid-area:channel;justify-self:end;font-size:12px;font-weight:900}.rf-config-form,.set-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.config-field-head{justify-content:flex-start;align-items:center;gap:10px;min-width:0;display:flex}.config-field-head>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.config-field-unit{color:#2563eb;flex:none;font-size:11px;font-weight:900}.assign-note{color:#475569;grid-column:1/-1;margin:-2px 0 2px;font-size:12px;font-weight:800;line-height:1.45}.config-busy-region{gap:10px;min-width:0;display:grid;position:relative}.config-busy-fieldset{border:0;gap:10px;min-width:0;margin:0;padding:0;display:grid}.config-busy-fieldset:disabled{pointer-events:none}.config-busy-region.busy .config-busy-fieldset{opacity:.42}.config-busy-overlay{z-index:5;border-radius:var(--radius);color:#174ea6;text-align:center;background:#eff6ffd1;border:1px solid #93c5fd;align-content:center;justify-items:center;gap:8px;padding:18px;display:grid;position:absolute;inset:0}.config-busy-overlay span,.config-busy-overlay strong{max-width:360px}.config-busy-overlay strong{font-size:15px;font-weight:950}.config-busy-overlay span:not(.config-spinner){color:#1e3a8a;font-size:12px;font-weight:800;line-height:1.45}.config-spinner{border:4px solid #bfdbfe;border-top-color:#2563eb;border-radius:999px;width:34px;height:34px;animation:spin .8s linear infinite}.assign-channel-row,.config-actions,.rf-master-row{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.rf-master-row{grid-template-columns:minmax(0,1fr) minmax(120px,.7fr)}.readonly-config-field{gap:4px;display:grid}.readonly-config-field>span:last-child{color:#334155;background:#f8fafc;border:1px solid #d5dde8;border-radius:6px;align-items:center;min-height:38px;padding:7px 9px;font-size:13px;font-weight:850;display:flex}.config-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.config-actions.compact{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:820px){.config-actions,.config-debug-frame-grid,.config-debug-grid,.config-debug-grid.target{grid-template-columns:1fr}}.config-source-notice{border-radius:var(--radius);color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;gap:4px;padding:9px 10px;display:grid}.config-source-notice em,.config-source-notice span,.config-source-notice strong{display:block}.config-source-notice strong{font-size:12px;font-weight:900}.config-source-notice span{color:#31506f;font-size:12px;font-weight:800;line-height:1.45}.config-source-notice em{color:#64748b;font-size:11px;font-style:normal;font-weight:800}.config-source-notice.source-spm{color:#15803d;background:#ecfdf5;border-color:#bbf7d0}.config-source-notice.source-db_cache,.config-source-notice.source-none{color:#b45309;background:#fffbeb;border-color:#fde68a}.config-source-notice.source-error{color:#dc2626;background:#fef2f2;border-color:#fecaca}.config-db-fallback-prompt{border-radius:var(--radius);color:#92400e;background:#fffbeb;border:2px solid #f59e0b;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.config-db-fallback-prompt div{gap:3px;display:grid}.config-db-fallback-prompt em,.config-db-fallback-prompt span,.config-db-fallback-prompt strong{display:block}.config-db-fallback-prompt strong{font-size:13px;font-weight:950}.config-db-fallback-prompt span{font-size:13px;font-weight:900}.config-db-fallback-prompt em{color:#78350f;font-size:11px;font-style:normal;font-weight:800}.config-debug-panel{border-radius:var(--radius);background:#eff6ff;border:1px solid #bfdbfe;gap:10px;min-width:0;padding:11px;display:grid}.config-debug-panel.error{background:#fff1f2;border-color:#fecaca}.config-debug-panel.empty{background:#f8fafc;border-color:#dbe7f5}.config-debug-panel p{color:#475569;margin:0;font-size:12px;font-weight:800}.config-debug-head,.config-debug-target-head{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.config-debug-head h2{margin:0;font-size:15px}.config-debug-head span,.config-debug-target-head span{color:#166534;background:#dcfce7;border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:900}.config-debug-panel.error .config-debug-head span,.config-debug-target.error .config-debug-target-head span{color:#991b1b;background:#fee2e2}.config-debug-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.config-debug-grid.target{grid-template-columns:repeat(3,minmax(0,1fr))}.debug-kv{background:#fff;border:1px solid #dbe7f5;border-radius:6px;min-width:0;padding:7px}.debug-kv.wide{grid-column:1/-1}.debug-kv span,.debug-kv strong{display:block}.debug-kv span{color:#64748b;font-size:11px;font-weight:900}.debug-kv strong{color:#0f172a;overflow-wrap:anywhere;word-break:break-word;margin-top:4px;font-size:12px;line-height:1.35}.debug-code-block{background:#fff;border:1px solid #dbe7f5;border-radius:6px;min-width:0}.debug-code-block b{color:#475569;padding:7px 8px 0;font-size:11px;font-weight:900;display:block}.debug-code-block pre{color:#0f172a;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;max-height:160px;margin:0;padding:7px 8px 9px;font-family:Consolas,SFMono-Regular,monospace;font-size:11px;line-height:1.45;overflow:auto}.config-debug-target-list{gap:9px;display:grid}.config-debug-target{background:#fff;border:1px solid #dbe7f5;border-radius:6px;gap:8px;min-width:0;padding:9px;display:grid}.config-debug-target.error{border-color:#fecaca}.config-debug-target-head strong{overflow-wrap:anywhere;color:#0f172a;min-width:0;font-size:13px}.config-debug-frame-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.user-management-band{gap:14px;display:grid}.user-management-grid{grid-template-columns:minmax(280px,.34fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.table-shell,.user-form{border:1px solid var(--line);border-radius:var(--radius);background:#f8fafc;gap:10px;min-width:0;padding:12px;display:grid}.table-shell h2,.user-form h2{margin:0;font-size:16px}.check-label{min-height:36px;color:var(--text);align-items:center;gap:8px;display:flex}.check-label input{width:auto;min-height:auto}.row-actions,.user-form-actions{flex-wrap:wrap;gap:8px;display:flex}.data-table{border-collapse:collapse;border-radius:var(--radius);background:#fff;border:1px solid #dde6ef;width:100%;min-width:760px;overflow:hidden}.data-table td,.data-table th{text-align:left;vertical-align:middle;border-bottom:1px solid #edf2f7;padding:9px}.data-table th{color:#42526a;background:#eef4f8;font-size:12px;font-weight:900}.data-table td{color:var(--text);font-size:13px;font-weight:700}.data-table td>span,.data-table td>strong{display:block}.data-table td>span{color:var(--muted);margin-top:3px;font-size:12px}.table-shell{overflow-x:auto}.access-log-shell{background:#fff}.compact-title{margin-bottom:0}@media (max-width:1100px){.channel-layout,.context-selectors,.gw-inline-actions,.master-edit-grid,.side-panel,.two-column,.user-management-grid{grid-template-columns:1fr}.login-panel,.session-panel,.view-tabs{grid-template-columns:1fr;justify-content:stretch;min-width:0}.metrics-row{grid-template-columns:1fr}}