:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f3f4f6;--color-card:#fff;--color-text:#0f172a;--color-border:#cbd5e1;--color-muted:#64748b;--color-surface-muted:#f8fafc;--color-primary:#2563eb;--color-primary-dark:#1d4ed8;--color-danger:#dc2626;--color-selected-bg:#e5edff;--color-success-text:#16a34a;--color-warning-text:#ca8a04;--status-success-bg:#dcfce7;--status-success-text:#166534;--status-warning-bg:#fef3c7;--status-warning-text:#92400e;--status-danger-bg:#fee2e2;--status-danger-text:#991b1b;--status-muted-bg:#e5e7eb;--status-muted-text:#374151;--floating-button-bg:#fff;--floating-button-text:#0f172a;--shadow-menu:0 8px 24px #0000001f;--radius:12px;--spacing:16px;color:var(--color-text);background:var(--color-bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0f172a;--color-card:#1e293b;--color-text:#f8fafc;--color-border:#334155;--color-muted:#94a3b8;--color-surface-muted:#172033;--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-danger:#ef4444;--color-selected-bg:#1e3a8a;--color-success-text:#86efac;--color-warning-text:#facc15;--status-success-bg:#14532d;--status-success-text:#bbf7d0;--status-warning-bg:#713f12;--status-warning-text:#fde68a;--status-danger-bg:#7f1d1d;--status-danger-text:#fecaca;--status-muted-bg:#334155;--status-muted-text:#cbd5e1;--floating-button-bg:#334155;--floating-button-text:#f8fafc;--shadow-menu:0 8px 24px #00000059}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-bg);margin:0}button{font:inherit}html{scroll-behavior:smooth}.page{max-width:1280px;margin:0 auto;padding:24px}.page-title{margin:0 0 24px;font-size:28px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex;overflow:hidden}.page-header .page-title{margin:0}.page-header-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.page-header-actions .button{white-space:nowrap;flex:none;width:auto;min-width:168px}.app-brand{flex:none;align-items:center;gap:10px;min-width:0;display:flex}.app-brand-logo{width:auto;height:34px;display:block}.app-brand-title{white-space:nowrap;font-weight:700}.app-navigation{scrollbar-width:thin;flex:auto;align-items:center;gap:8px;min-width:0;display:flex;overflow-x:auto}.app-navigation .button{white-space:nowrap;flex:none;justify-content:center;align-items:center;width:auto;min-width:max-content;text-decoration:none;display:inline-flex}.app-layout{gap:16px;display:grid}.app-section{scroll-margin-top:24px}.app-message-page{place-items:center;min-height:100vh;display:grid}.app-message-card{width:min(100%,420px)}.error{color:var(--color-danger)}.app-message-card h1{margin:0 0 8px;font-size:28px}.app-message-card p{margin:0}.current-user{color:var(--color-muted);white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.current-user-role{font-weight:700}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing)}.card-actions{justify-content:flex-start;margin-bottom:12px;display:flex}.card-actions .button{width:auto}.configuration-section,.programming-section{gap:16px;display:grid}.tag-profile-card{padding:14px 16px}.tag-profile-summary{cursor:pointer;font-weight:700}.tag-profile-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.tag-profile-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.tag-profile-assignment-card{flex-direction:column;gap:12px;display:flex}.tag-profile-assignment-card h2{margin-bottom:4px}.tag-profile-assignment-card .control-meta{margin:0}.tag-profile-assignment-card .field-label,.tag-profile-assignment-card .input{width:min(100%,320px)}.tag-profile-assignment-card .button{align-self:flex-start;width:auto;min-width:180px;padding-inline:18px}.tag-profile-assignment-card .control-meta .button{margin-top:10px}.tag-profile-permission-list{gap:10px;display:grid}.tag-profile-permission-row{border:1px solid var(--color-border);background:#ffffff08;border-radius:12px;grid-template-columns:1fr;align-items:start;gap:16px;padding:12px;display:grid}.tag-profile-permission-row strong{margin-bottom:4px;display:block}.tag-profile-permission-row .control-meta{margin:0}.tag-profile-permission-row>div:last-child{gap:4px;min-width:180px;display:grid}.tag-profile-permission-row.is-editing{display:block}.tag-profile-create-form label{gap:6px;display:grid}.tag-profile-create-form input,.tag-profile-create-form select{width:100%}.tag-profile-create-tag-summary-addresses{color:var(--color-muted);flex-wrap:wrap;gap:8px 12px;font-size:.78rem;display:flex}.tag-profile-create-tag-summary-addresses span{white-space:nowrap}.tag-profile-header-action.button{place-self:flex-start start;width:auto;min-width:140px}.tag-profile-tag-details{gap:16px;max-width:none;display:grid}.tag-profile-permission-row.is-editing .tag-profile-tag-details,.tag-profile-permission-row.is-editing .tag-profile-edit-form{width:100%;max-width:none}.tag-profile-permission-row.is-editing .tag-profile-tag-details{grid-column:1/-1}.tag-profile-tag-actions{flex-wrap:wrap;gap:8px;display:flex}.tag-profile-tag-actions .button{width:auto}.tag-profile-label-edit-form,.tag-profile-edit-form{border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:14px;gap:16px;padding:16px;display:grid}.tag-profile-label-edit-form h3,.tag-profile-edit-form h3{margin:0}.tag-profile-label-edit-form label,.tag-profile-edit-form label,.device-create-form label,.device-edit-form label{gap:6px;font-size:14px;font-weight:600;display:grid}.tag-profile-label-edit-form{max-width:680px}.tag-profile-edit-form{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0 16px}.tag-profile-edit-form>.tag-profile-create-tag-fields{grid-column:1/-1}.tag-profile-edit-fieldset{border:1px solid var(--color-border);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:14px;display:grid}.tag-profile-edit-fieldset legend{padding:0 6px;font-size:13px;font-weight:700}.tag-profile-edit-fieldset .button--secondary{justify-self:start}.tag-profile-edit-form .form-actions,.tag-profile-label-edit-form .form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tag-profile-assignment-card select,.tag-profile-assignment-card button,.tag-profile-create-form select,.tag-profile-create-form button,.tag-profile-label-edit-form select,.tag-profile-label-edit-form button,.tag-profile-edit-form select,.tag-profile-edit-form button,.device-create-form button,.device-edit-form button,.device-list-actions .button{cursor:pointer}.tag-profile-assignment-card select:disabled,.tag-profile-assignment-card button:disabled,.tag-profile-create-form select:disabled,.tag-profile-create-form button:disabled,.tag-profile-label-edit-form select:disabled,.tag-profile-label-edit-form button:disabled,.tag-profile-edit-form select:disabled,.tag-profile-edit-form button:disabled,.device-create-form button:disabled,.device-edit-form button:disabled,.device-list-actions .button:disabled{cursor:not-allowed}.tag-profile-edit-form .form-actions .button,.tag-profile-label-edit-form .form-actions .button{width:auto;min-width:140px}.tag-profile-edit-fieldset,.tag-profile-edit-form .form-actions,.tag-profile-edit-form .form-error{grid-column:1/-1}.tag-profile-assignment-card input,.tag-profile-assignment-card select,.tag-profile-create-form input,.tag-profile-create-form select,.tag-profile-create-form button,.tag-profile-label-edit-form .input,.tag-profile-label-edit-form .button,.tag-profile-edit-form input,.tag-profile-edit-form select,.tag-profile-edit-form .button,.tag-profile-edit-fieldset .button--secondary,.device-create-form input,.device-create-form .button,.device-edit-form input,.device-edit-form .button,.device-list-actions .button{min-height:44px}.tag-profile-edit-form input,.tag-profile-edit-form select,.tag-profile-label-edit-form input,.tag-profile-label-edit-form select,.tag-profile-add-tag-name .input,.device-create-form input,.device-edit-form input{width:100%}.tag-profile-assignment-card .input,.tag-profile-create-form input,.tag-profile-create-form select,.tag-profile-label-edit-form .input,.tag-profile-edit-form input,.tag-profile-edit-form select,.tag-profile-add-tag-name .input,.device-create-form input,.device-edit-form input{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text);font:inherit;border-radius:10px;padding:10px 12px}.tag-profile-add-tag-panel{gap:24px;display:grid}.tag-profile-add-tag-header h3,.tag-profile-add-tag-header p{margin:0}.tag-profile-add-tag-header{gap:6px;display:grid}.tag-profile-add-tag-name{max-width:520px}.tag-profile-add-tag-name label{gap:8px;font-weight:600;display:grid}.tag-profile-add-tag-fields{gap:24px;display:grid}.tag-profile-add-tag-fields>.tag-profile-create-tag-fields{width:100%}.tag-profile-add-tag-fields .form-actions{margin-top:0}.tag-profile-create-form button,.tag-profile-label-edit-form .button,.tag-profile-edit-form .button,.tag-profile-edit-fieldset .button--secondary{font:inherit;border-radius:10px;padding:12px 16px;font-weight:600}.tag-profile-create-page{max-width:100%}.tag-profile-create-form{gap:16px;width:100%;display:grid}.tag-profile-create-form .form-actions{z-index:5;border-top:1px solid var(--color-border);background:var(--color-card);flex-wrap:wrap;justify-self:stretch;gap:8px;padding:12px 0;display:flex;position:sticky;bottom:0}.tag-profile-create-form .form-actions .button{width:auto;min-width:160px}.tag-profile-create-link{width:auto;text-decoration:none}.tag-profile-field-group{gap:8px;display:grid}.tag-profile-field-group h3{margin:0;font-size:15px}.tag-profile-field-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;display:grid}.tag-profile-field{gap:2px;margin:0;display:grid}.tag-profile-field span{opacity:.75;font-size:12px}.tag-profile-field strong{overflow-wrap:anywhere;font-size:14px;font-weight:500}.tag-profile-deletion-panel{gap:16px;display:grid}.tag-profile-deletion-panel h3,.tag-profile-deletion-panel p,.tag-profile-deletion-panel ul{margin:0}.tag-profile-deletion-panel label{gap:6px;display:grid}.tag-profile-deletion-panel select{border:1px solid var(--color-border);background:var(--color-card);width:min(100%,320px);min-height:44px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:10px;padding:10px 12px}.tag-profile-deletion-panel .form-actions{flex-wrap:wrap;gap:8px;display:flex}.tag-profile-deletion-panel .form-actions .button{width:auto;min-width:180px}.tag-profile-deletion-device{justify-content:space-between;align-items:center;gap:12px;display:flex}.tag-profile-deletion-device .button{width:auto;min-width:220px}.tag-profile-header-actions{flex-wrap:wrap;gap:8px;display:flex}.tag-profile-create-tags{gap:12px;display:grid}.tag-profile-create-tags>h3,.tag-profile-create-tags>p{margin:0}.tag-profile-create-tags>ul{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.tag-profile-create-tags-header{grid-template-columns:minmax(150px,.7fr) minmax(220px,1fr) minmax(360px,1.4fr);align-items:end;gap:16px;display:grid}.tag-profile-create-tags-header>div:first-child{gap:4px;display:grid}.tag-profile-create-tags-header h3,.tag-profile-create-tags-header .control-meta{margin:0}.tag-profile-create-tag{border:1px solid var(--color-border);border-radius:12px;grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;padding:16px;display:grid}.tag-profile-create-tag-filter{width:min(100%,320px)}.tag-profile-create-tag-filter-meta{justify-content:space-between;align-items:center;gap:12px;min-height:20px;display:flex}.tag-profile-create-tag-filter-clear{width:auto;min-width:0;min-height:0;color:var(--color-primary);cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;font-size:.85rem;font-weight:600}.tag-profile-create-tag-filter-clear:hover{text-decoration:underline}.tag-profile-create-tag-error,.tag-profile-edit-error{grid-column:1/-1;margin:0 16px}.tag-profile-create-tag-fields{gap:12px;min-width:0;display:grid}.tag-profile-create-tag-fields input,.tag-profile-create-tag-fields select{width:100%;min-width:0}.tag-profile-create-toggle{grid-template-columns:auto 1fr;justify-content:start;align-items:center}.tag-profile-create-toggle span{grid-area:1/2}.tag-profile-create-toggle input{cursor:pointer;grid-area:1/1}.tag-profile-create-toggle input[type=checkbox]{width:24px;min-width:24px;min-height:24px;accent-color:var(--color-primary);margin:0}.tag-profile-create-tag.is-removed{opacity:.65}.tag-profile-create-tag-actions{border-top:1px solid var(--color-border);grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);justify-content:stretch;align-items:start;gap:16px;padding-top:16px;display:grid}.tag-profile-create-tag-action{width:auto;min-width:160px}.tag-profile-create-tag-action.button--secondary{white-space:nowrap;justify-self:start;width:auto;min-width:140px}.tag-profile-create-tag-conflicts{overflow-wrap:anywhere;min-width:0}.tag-profile-create-tag-conflicts p{margin:0 0 6px}.tag-profile-create-tag-conflicts ul{margin:0;padding-left:20px}.tag-profile-create-plc-address{background:var(--color-surface-muted);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:14px;display:grid}.tag-profile-create-header-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;display:grid}.tag-profile-create-display-map{gap:12px;display:grid}.tag-profile-create-display-map>strong,.tag-profile-create-display-map>.control-meta{margin:0}.tag-profile-create-display-map-row{border-top:1px solid var(--color-border);grid-template-columns:minmax(100px,.5fr) minmax(180px,1.5fr) minmax(160px,1fr) auto;align-items:end;gap:12px;padding-top:12px;display:grid}.tag-profile-create-display-map-row:first-of-type{border-top:0;padding-top:0}.tag-profile-create-display-map-row .button{width:auto;min-width:140px}.tag-profile-create-display-map-add{border-top:1px solid var(--color-border);grid-template-columns:140px auto;justify-content:start;align-items:end;gap:12px;padding-top:12px;display:grid}.tag-profile-create-display-map-add .button{width:auto;min-width:140px}.tag-profile-create-add-tag{gap:12px;display:grid}.tag-profile-create-add-tag h2{margin:0}.tag-profile-create-add-tag-controls{grid-template-columns:minmax(220px,1fr) auto;justify-content:start;align-items:end;gap:12px;width:100%;display:grid}.tag-profile-create-add-tag-controls .button{width:auto;min-width:160px}.tag-profile-create-tag-summary{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.tag-profile-create-tag-summary.has-error{outline:2px solid var(--status-danger-text);outline-offset:-2px}.tag-profile-create-tag-summary.has-error .tag-profile-create-tag-summary-toggle{color:var(--status-danger-text)}.tag-profile-create-tag-summary:hover{background:var(--color-surface-muted)}.tag-profile-create-tag-summary-main{gap:2px;min-width:0;display:grid}.tag-profile-create-tag-summary-main strong,.tag-profile-create-tag-summary-main .control-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-profile-create-tag-summary-badge{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.8rem;font-weight:600}.tag-profile-create-tag-summary-badge.is-added{color:var(--status-success-text);background:var(--status-success-bg)}.tag-profile-create-tag-summary-badge.is-inherited{color:var(--status-muted-text);background:var(--status-muted-bg)}.tag-profile-create-tag-summary-badge.is-removed{color:var(--status-danger-text);background:var(--status-danger-bg)}.tag-profile-create-tag-summary-toggle{border-radius:50%;place-items:center;width:28px;height:28px;font-size:1.2rem;line-height:1;display:grid}.tag-profile-create-tag-summary-meta{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.tag-profile-create-tag-section{border:1px solid var(--color-border);border-radius:var(--radius);min-width:0;margin:0;padding:14px}.tag-profile-create-tag-section legend{padding:0 8px;font-weight:600}.tag-profile-create-tag-section legend+*{margin-top:4px}.tag-profile-create-tag-section-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;display:grid}.tag-profile-create-plc-section{gap:16px;display:grid}.tag-profile-create-plc-role{width:min(100%,360px)}.tag-profile-create-plc-channel{gap:12px;display:grid}.tag-profile-create-plc-channel+.tag-profile-create-plc-channel{border-top:1px solid var(--color-border);padding-top:16px}.tag-profile-create-plc-channel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.tag-profile-create-plc-channel-header strong{font-size:.95rem}.tag-profile-create-plc-channel-header .tag-profile-create-toggle{grid-template-columns:auto auto}.tag-profile-create-plc-channel-header .tag-profile-create-toggle span{grid-column:1}.tag-profile-create-plc-channel-header .tag-profile-create-toggle input{grid-column:2}.tag-profile-control-groups{gap:16px;display:grid}.tag-profile-control-groups>.tag-profile-edit-form{margin:0}.control-input{border:1px solid var(--color-border);background:var(--color-card);width:100%;min-width:0;min-height:48px;color:var(--color-text);font:inherit;border-radius:10px;flex:1;padding:10px 12px;font-size:18px}.control-label{color:var(--color-muted);margin:14px 0 6px;font-size:13px;font-weight:600}.setpoint-grid{gap:16px;display:grid}.setpoint-group{margin-bottom:20px}.setpoint-group-title{color:var(--color-text);text-transform:capitalize;margin:0 0 12px;font-size:18px;font-weight:700}.button{border:1px solid var(--color-border);width:100%;font:inherit;cursor:pointer;border-radius:10px;min-height:48px;padding:12px 16px;font-weight:600}.button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(15%)}.button--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-primary-dark)}.button--secondary{background:var(--status-muted-bg);border-color:var(--status-muted-text);color:var(--status-muted-text)}.button--secondary:hover:not(:disabled){background:var(--color-selected-bg);border-color:var(--color-primary);color:var(--color-text)}.button--square{width:48px;min-width:48px;padding:0}.button--danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.button--danger:hover:not(:disabled){filter:brightness(.92)}.button--danger:active:not(:disabled){filter:brightness(.84)}.button--danger:focus-visible{outline:3px solid var(--color-danger);outline-offset:2px}.button-grid{gap:12px;display:grid}.control-row{align-items:center;gap:14px;margin-top:14px;display:flex}.control-row:first-of-type{margin-top:0}.control-value{text-align:center;white-space:nowrap;flex:1;min-width:120px;font-size:24px;font-weight:700}.control-meta{color:var(--color-muted);font-size:14px}.control-meta--limits{margin:14px 0 0}.control-row--input{grid-template-columns:minmax(0,1fr) auto;display:grid}.control-row--input .button{width:auto;min-width:110px}.control-disabled-message{color:var(--color-warning-text);font-size:14px;font-weight:600}.control-refresh{margin-top:14px}.control-context{color:var(--color-text);margin:0 0 14px;font-size:18px;font-weight:700}.control-status-summary{gap:10px;margin-bottom:16px;display:grid}.control-status-label{color:var(--color-muted);font-size:13px;font-weight:600;display:block}.control-status-value{margin-top:2px;font-size:18px;font-weight:700;display:block}.tap-control-group{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-card);gap:12px;padding:16px;display:grid}.tap-control-group+.tap-control-group{margin-top:16px}.tap-control-group-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.tap-control-group-title{color:var(--color-text);margin:0;font-size:18px;font-weight:700}.tap-control-status{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.tap-control-status-label{color:var(--color-muted);font-size:14px;font-weight:600}.tap-control-feedback{margin:0;font-size:14px;font-weight:600}.tap-control-feedback--success{color:var(--color-success-text)}.tap-control-feedback--error{color:var(--color-danger)}.control-input:autofill{box-shadow:0 0 0 1000px var(--color-card) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}.control-input:-webkit-autofill{box-shadow:0 0 0 1000px var(--color-card) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}.control-input:-webkit-autofill:hover{box-shadow:0 0 0 1000px var(--color-card) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}.control-input.control-input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--color-card) inset;-webkit-text-fill-color:var(--color-text);caret-color:var(--color-text)}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{gap:24px;width:min(100%,420px);display:grid}.auth-header h1{margin:0 0 8px;font-size:28px}.auth-header p{color:var(--color-muted);margin:0}.auth-form{gap:10px;display:grid}.auth-field{color:var(--color-muted);margin-top:4px;font-size:13px;font-weight:600}.auth-form .control-input{font-size:16px}.auth-form .control-input:focus{outline:2px solid var(--color-primary);outline-offset:2px}.auth-error{margin:4px 0 0}.auth-help{margin:0}.auth-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;display:grid}.auth-actions--stacked{grid-template-columns:1fr}.auth-notice{color:var(--color-success-text);margin:4px 0 0;font-weight:600}.password-change-panel{gap:20px;margin-bottom:16px;display:grid}.password-change-header h2{margin:0 0 6px}.password-change-header p{margin:0}.password-change-panel .auth-form{width:min(100%,520px)}@media (width<=420px){.auth-actions{grid-template-columns:1fr}}.device-list{gap:8px;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.device-button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:center;gap:4px;width:100%;padding:10px 12px;display:flex}.device-button:disabled{background:var(--color-selected-bg);cursor:default;border-color:#0000}.device-profile-label{opacity:.72;font-size:.8rem}.device-panel{gap:16px;display:grid}.device-list-panel{flex-direction:column;align-items:stretch;gap:12px;min-height:0;display:flex}.tag-profile-card{flex:none}.device-list-card{flex-direction:column;flex:auto;min-height:0;max-height:none;display:flex;overflow:hidden}.device-search{border:1px solid #0000;border-bottom:1px solid var(--color-border);width:100%;min-height:40px;font:inherit;color:var(--color-text);background:0 0;border-radius:0;margin-bottom:12px;padding:8px 4px}.device-search:focus{border-bottom-color:var(--color-primary);outline:none}.device-search::placeholder{color:var(--color-muted)}.device-selector-button{border:1px solid var(--color-primary);background:var(--color-selected-bg);text-align:left;width:100%;min-height:48px;font:inherit;cursor:pointer;border-radius:10px;padding:12px 14px;display:block}.device-list-content{flex:auto;min-height:0;margin-top:12px;display:none;overflow-y:auto}.device-list-content--open{display:block}.device-create-form,.device-edit-form{gap:16px;display:grid}.device-create-fields,.device-edit-fields{gap:12px;display:grid}.device-create-actions,.device-edit-actions{gap:8px;display:grid}.device-button-main{justify-content:space-between;align-items:flex-start;gap:.75rem;width:100%;display:flex}.device-identity{flex-direction:column;flex:1;align-items:flex-start;gap:.2rem;min-width:0;display:flex}.device-name{text-align:left;overflow-wrap:anywhere}.device-internal-id{opacity:.72;overflow-wrap:anywhere;max-width:100%;font-size:.78rem;font-weight:400;line-height:1.25}.device-role-label{white-space:nowrap;opacity:.8;flex:none;font-size:12px;font-weight:700}.device-list-item{border:1px solid var(--color-border);background:var(--color-card);border-radius:12px;gap:8px;padding:8px;display:grid}.device-list-item:hover{border-color:var(--color-primary)}.device-delete-form{gap:16px;display:grid}.device-delete-form h2,.device-delete-form p{margin:0}.device-delete-actions{gap:8px;display:grid}.device-list-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.device-list-actions .button{width:100%;min-width:0}.device-edit-button,.device-delete-button{min-width:0;padding-inline:10px}.state-grid{gap:10px;display:grid}.state-row{border-bottom:1px solid var(--color-border);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.state-row:last-child{border-bottom:none}.state-label{color:var(--color-muted)}.state-value{font-weight:600}.state-value--muted{color:var(--color-muted)}.state-value--success{color:var(--color-success-text)}.state-value--warning{color:var(--color-warning-text)}.state-value--danger{color:var(--color-danger)}.status-text{margin:0 0 16px;font-size:14px;font-weight:600}.status-text--success{color:var(--color-success-text)}.status-text--warning{color:var(--color-warning-text)}.status-badge{border-radius:999px;align-items:center;padding:4px 10px;font-size:14px;font-weight:700;display:inline-flex}.status-badge--success{background:var(--status-success-bg);color:var(--status-success-text)}.status-badge--warning{background:var(--status-warning-bg);color:var(--status-warning-text)}.status-badge--danger{background:var(--status-danger-bg);color:var(--status-danger-text)}.status-badge--muted{background:var(--status-muted-bg);color:var(--status-muted-text)}.status-row{flex-wrap:wrap;gap:8px;margin:0 0 16px;display:flex}.status-group{margin-top:20px}.status-group:first-of-type{margin-top:16px}.status-group-title{color:var(--color-text);text-transform:capitalize;margin:0 0 8px;font-size:16px;font-weight:700}.success-message{color:var(--color-success-text);margin:14px 0 0;font-size:14px;font-weight:600}.section-title{margin:8px 0 16px}.section-nav{z-index:2;background:var(--color-bg);flex-wrap:wrap;gap:8px;margin-bottom:8px;padding:8px 0;display:flex;position:sticky;top:0}.section-nav a{background:var(--color-card);border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;padding:8px 12px;font-size:14px;font-weight:600;text-decoration:none}.section-nav a:hover{border-color:var(--color-primary)}.theme-switcher{z-index:20;position:fixed;bottom:12px;right:12px}.theme-toggle{border:1px solid var(--color-border);background:var(--floating-button-bg);width:36px;height:36px;color:var(--floating-button-text);cursor:pointer;border-radius:999px}.theme-menu{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);width:180px;box-shadow:var(--shadow-menu);padding:12px;position:absolute;bottom:44px;right:0}.theme-menu label{color:var(--color-muted);margin-bottom:8px;font-size:14px;display:block}.theme-menu select{border:1px solid var(--color-border);background:var(--color-card);width:100%;min-height:40px;color:var(--color-text);font:inherit;border-radius:8px;padding:8px}.password-input{width:100%;min-width:0;position:relative}.password-input>input{width:100%;padding-right:56px}.password-input__toggle{width:40px;height:40px;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-input__toggle:hover{color:var(--color-primary)}.password-input__toggle svg{width:20px;height:20px}.password-input__toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.password-input__toggle:disabled{cursor:default;opacity:.6}.user-management-card{flex-direction:column;gap:16px;display:flex}.user-management-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.user-management-header h2,.user-management-user-header h3{margin:0}.user-management-refresh{width:auto;min-width:128px}.user-management-create-form,.user-management-confirmation-form{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-selected-bg);gap:10px;padding:14px;display:grid}.user-management-create-fields,.user-management-confirmation-fields{align-items:end;gap:8px;display:grid}.user-management-create-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}.user-management-confirmation-fields{grid-template-columns:minmax(0,1fr) auto auto}.user-management-confirmation-fields>.password-input{grid-column:1}.user-management-confirmation-summary{gap:4px;display:grid}.user-management-confirmation-summary h3,.user-management-confirmation-summary p{margin:0}.user-management-create-fields .field-label{grid-row:1;margin:0}.user-management-user-input{grid-column:1;min-height:40px;font-size:14px}.user-management-create-fields #new-user-display-name{grid-column:2}.user-management-create-fields #new-user-global-role,.user-management-create-button{grid-column:3}.user-management-continue-button{grid-column:4}.user-management-continue-button,.user-management-create-button,.user-management-cancel-button{width:auto;min-width:132px;min-height:40px;padding:8px 12px}.user-management-user-title{gap:2px;min-width:0;display:grid}.user-management-user-title span{color:var(--color-muted);overflow-wrap:anywhere;font-size:13px}.user-management-display-name-controls{grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:8px;display:grid}.user-management-display-name-input{min-height:40px;font-size:14px}.user-management-grid{gap:12px;display:grid}.user-management-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-card);gap:12px;padding:14px;display:grid}.user-management-user-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.user-management-global-role-editor{flex:520px;justify-items:end;gap:6px;min-width:0;display:grid}.user-management-global-role-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.user-management-select{cursor:pointer;width:auto;min-width:150px;min-height:40px;font-size:14px}.user-management-select:disabled{cursor:not-allowed}.user-management-select option{cursor:pointer}.user-management-save,.user-management-delete,.user-management-password{width:auto;min-width:96px;height:40px;min-height:40px;padding:8px 12px}.user-management-device-access{gap:10px;display:grid}.user-management-device-access summary{cursor:pointer;color:var(--color-muted);font-size:14px;font-weight:700}.user-management-device-role-editor-list{gap:8px;margin-top:10px;display:grid}.user-management-device-role-editor{border:1px solid var(--color-border);background:var(--color-selected-bg);border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:10px;display:grid}.user-management-device-label{gap:2px;min-width:0;display:grid}.user-management-device-label strong{color:var(--color-text)}.user-management-device-label span{color:var(--color-muted);font-size:13px}.user-management-self-note{text-align:right;margin:0}.password-setup-admin-panel{border:1px solid var(--color-border);background:var(--color-selected-bg);border-radius:10px;gap:12px;padding:14px;display:grid}.password-setup-admin-panel h4,.password-setup-admin-panel p{margin:0}.password-setup-admin-form{gap:8px;display:grid}.password-setup-token-value{resize:vertical;min-height:72px;font-family:monospace;font-size:14px}.password-setup-admin-actions{justify-content:flex-end;gap:8px;display:flex}.password-setup-admin-actions .button{width:auto;min-width:128px}.password-setup-copy-success{color:var(--color-success-text);font-weight:600}.user-management-sensitive-section{border-top:1px solid var(--border-muted);gap:12px;width:100%;margin-top:4px;padding-top:14px;display:grid}.user-management-sensitive-section h4,.user-management-sensitive-section .control-meta{margin:0}.user-management-system-admin-controls{gap:8px;max-width:448px;display:grid}.user-management-system-admin-controls .password-input{width:100%}.user-management-system-admin-controls .button{width:auto;min-width:260px}@media (width<=720px){.user-management-header,.user-management-user-header,.user-management-global-role-controls{flex-direction:column;align-items:stretch}.user-management-refresh,.user-management-select,.user-management-save,.user-management-delete,.user-management-password{width:100%}.user-management-device-role-editor{grid-template-columns:1fr;justify-items:stretch}.user-management-self-note{text-align:left}.user-management-create-fields,.user-management-confirmation-fields{grid-template-columns:1fr}.user-management-create-fields .field-label,.user-management-user-input,.user-management-create-fields #new-user-display-name,.user-management-create-fields #new-user-global-role{grid-column:1}.user-management-display-name-controls{grid-template-columns:1fr}.user-management-continue-button,.user-management-cancel-button,.user-management-create-button{grid-column:1;width:100%}.password-setup-admin-actions{grid-template-columns:1fr;display:grid}.password-setup-admin-actions .button{width:100%}.user-management-global-role-editor{flex:auto;justify-items:stretch;width:100%}.user-management-create-fields .field-label{grid-row:auto}.user-management-sensitive-section{padding-top:16px}.user-management-system-admin-controls{max-width:none}.user-management-system-admin-controls .button{width:100%;min-width:0}}@media (width>=900px) and (width<=1100px){.tag-profile-edit-form .tag-profile-create-display-map-row{grid-template-columns:repeat(2,minmax(0,1fr))}.tag-profile-edit-form .tag-profile-create-display-map-row .button{justify-self:start;width:auto}}@media (width<=1000px){.tag-profile-create-tags-header{grid-template-columns:1fr;align-items:stretch}.tag-profile-create-add-tag-controls{width:min(100%,600px)}}@media (width<=800px){.tag-profile-create-display-map-row{grid-template-columns:repeat(2,minmax(0,1fr))}.tag-profile-create-display-map-row .button{justify-self:start;width:auto}}@media (width<=720px){.tag-profile-edit-fieldset,.tag-profile-edit-form{grid-template-columns:1fr}.tag-profile-create-form input,.tag-profile-create-form select,.tag-profile-create-form button,.tag-profile-edit-form input,.tag-profile-edit-form select,.tag-profile-edit-form .button,.tag-profile-label-edit-form .input,.tag-profile-label-edit-form .button,.tag-profile-edit-fieldset .button--secondary,.device-create-form input,.device-create-form .button,.device-edit-form input,.device-edit-form .button,.device-list-actions .button{width:100%;min-height:56px;padding:16px 18px;font-size:18px}.tag-profile-edit-form .form-actions,.tag-profile-label-edit-form .form-actions{justify-content:stretch}.tag-profile-edit-form .form-actions .button,.tag-profile-label-edit-form .form-actions .button{width:100%}.tag-profile-edit-form>.tag-profile-create-tag-fields{grid-column:1}.tag-profile-create-form .form-actions{grid-template-columns:1fr;display:grid}.tag-profile-create-form .form-actions .button,.tag-profile-deletion-panel select,.tag-profile-deletion-panel .form-actions .button{width:100%}.tag-profile-deletion-panel .form-actions{grid-template-columns:1fr;display:grid}.tag-profile-deletion-device{flex-direction:column;align-items:stretch}.tag-profile-deletion-device .button{width:100%;min-width:0}.tag-profile-create-header-fields,.tag-profile-create-plc-address{grid-template-columns:1fr}.tag-profile-create-tag-filter,.tag-profile-create-add-tag-controls{width:100%}.tag-profile-create-tag-filter-clear{width:auto;min-height:0;padding:8px 10px;font-size:.9rem}.tag-profile-create-tag-actions{grid-template-columns:1fr}.tag-profile-create-tag-action,.tag-profile-create-tag-action.button--secondary{width:100%;min-width:0}.tag-profile-create-add-tag-controls{grid-template-columns:1fr}.tag-profile-create-add-tag-controls .button{width:100%}.tag-profile-create-tags-header{grid-template-columns:1fr;align-items:stretch}.tag-profile-create-tag-section-fields{grid-template-columns:1fr}.tag-profile-create-plc-role{width:100%}.tag-profile-create-form .tag-profile-create-tag-filter-clear{width:auto;min-height:0;padding:0;font-size:.9rem}}@media (width<=700px){.tag-profile-permission-row{grid-template-columns:1fr}.tag-profile-permission-row>div:last-child{min-width:0}}@media (width<=640px){.page-header{flex-direction:column;align-items:stretch}.page-header-actions{grid-template-columns:1fr;width:100%;display:grid}.page-header-actions .button{width:100%;min-width:0}.app-brand,.app-navigation,.tag-profile-assignment-card .field-label,.tag-profile-assignment-card .input,.tag-profile-assignment-card .button,.tag-profile-header-action.button{width:100%}.tag-profile-assignment-card .input,.tag-profile-assignment-card .button{min-height:56px;padding:16px 18px;font-size:18px}}@media (width<=599px){.app-section{scroll-margin-top:72px}.page{padding:16px;font-size:18px;line-height:1.5}.page-title{font-size:32px;line-height:1.12}.section-title{font-size:24px;line-height:1.2}.card{padding:18px}.card-actions .button{width:100%}.button,.device-button,.device-selector-button,.device-search,.control-input{font-size:18px}.button,.device-button,.device-selector-button,.control-input{min-height:56px;padding:16px 18px}.device-search{min-height:46px}.section-nav{border-bottom:1px solid var(--color-border);scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px 12px;padding:12px 16px;overflow-x:auto}.section-nav::-webkit-scrollbar{display:none}.section-nav a{white-space:nowrap;flex:none;padding:12px 16px;font-size:17px}.setpoint-group-title,.status-group-title{font-size:22px}.control-label,.control-status-label,.theme-menu label{font-size:16px}.theme-menu select{font-size:17px}.state-row,.state-value{font-size:18px}.control-context,.control-status-value{font-size:20px}.state-row{align-items:flex-start;gap:12px;padding:12px 0}.state-label,.state-value{line-height:1.35}.state-value{text-align:right}.control-meta,.status-text,.success-message,.control-disabled-message{font-size:17px;line-height:1.45}.status-badge{padding:6px 12px;font-size:17px}.control-value{font-size:34px}.button--square{width:56px;min-width:56px;min-height:56px;padding:0}.tap-control-group{padding:16px}.tap-control-group-header{gap:8px;display:grid}.tap-control-group-title{font-size:22px}.tap-control-status{text-align:left;justify-content:flex-start}.tap-control-status-label,.tap-control-feedback{font-size:16px}.tag-profile-create-display-map-row{grid-template-columns:1fr}.tag-profile-create-display-map-row .button{width:100%}.tag-profile-create-display-map-add{grid-template-columns:1fr}.tag-profile-create-display-map-add .button{width:100%}.tag-profile-create-tag-summary{grid-template-columns:minmax(0,1fr) auto}.tag-profile-create-tag-summary-badge{grid-column:1;justify-self:start}.tag-profile-create-tag-summary-toggle{grid-area:1/2/span 2}.tag-profile-add-tag-panel{gap:18px}.tag-profile-add-tag-name{max-width:none}.tag-profile-add-tag-fields .form-actions{grid-template-columns:1fr;display:grid}.tag-profile-add-tag-fields .form-actions .button{width:100%}.device-delete-form .button{width:100%;min-height:56px;padding:16px 18px;font-size:18px}}@media (width<=360px){.control-row--input{grid-template-columns:1fr}.control-row--input .button{width:100%}.control-context{font-size:16px}}@media (width>=600px){.button-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.control-row .button{width:auto}}@media (width>=700px){.setpoint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.app-layout{grid-template-columns:280px 1fr;align-items:start}.app-section{scroll-margin-top:80px}.device-list-panel{max-height:calc(100dvh - 32px);position:sticky;top:16px}.device-list-card{max-height:none;overflow-y:hidden}.device-selector-button{display:none}.device-list-content{margin-top:0;display:block}}@media (width>=900px) and (width<=1199px){.device-list-item{padding:6px}.device-button{padding:8px 10px}.device-list-actions{gap:6px}.device-list-actions .button{padding-inline:8px;font-size:.9rem}}@media (width>=1200px){.app-layout{grid-template-columns:320px 1fr}}
