.sidebar{width:var(--sidebar-width);background:#141720;color:var(--color-text-body);height:100vh;position:fixed;left:0;top:0;z-index:1000;box-shadow:var(--shadow-sidebar);display:flex;flex-direction:column;border-right:1px solid #1e2535}.sidebar-brand{position:relative;padding:20px 20px 16px;border-bottom:1px solid #1e2535;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-close-btn{display:none;position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;color:var(--color-text-faint);font-size:1rem;padding:6px;line-height:1;flex-shrink:0}.sidebar-close-btn:hover{color:var(--color-text-heading)}.sidebar-brand-logo{height:108px;width:auto;flex-shrink:0}.sidebar ul{list-style:none;padding:12px 0;margin:0;flex:1;overflow-y:auto}.sidebar li{margin:2px 10px}.sidebar a{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary);text-decoration:none;font-size:.92rem;font-weight:500;padding:9px 12px;border-radius:var(--radius-md);border-left:3px solid transparent;transition:color var(--transition-base),background var(--transition-base),border-color var(--transition-base)}.sidebar a:hover{color:var(--color-text-heading);background:#ffffff0d}.sidebar a.router-link-active,.sidebar a.router-link-exact-active{color:var(--color-primary);background:#ef5d2f1a;border-left-color:var(--color-primary);font-weight:600}.sidebar-admin-li{margin:0 10px}.sidebar-divider{height:1px;background:#1e2535;margin:8px 2px 6px}.sidebar-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 12px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:color var(--transition-base),background var(--transition-base);font-family:var(--font-sans)}.sidebar-section-toggle:hover{color:var(--color-text-secondary);background:#ffffff0a}.sidebar-section-label{flex:1;text-align:left}.sidebar-chevron{font-size:1rem;font-weight:400;line-height:1;transition:transform var(--transition-base);transform:rotate(0)}.sidebar-chevron.open{transform:rotate(90deg)}.sidebar-subsection{list-style:none;padding:2px 0 4px;margin:0}.sidebar-subsection li{margin:1px 0}.sidebar-subsection a{padding-left:24px;font-size:.88rem;color:var(--color-text-secondary)}.sidebar-subsection a:hover{color:var(--color-text-heading);background:#ffffff0d}.sidebar-subsection a.router-link-active,.sidebar-subsection a.router-link-exact-active{color:var(--color-primary);background:#ef5d2f1a;border-left-color:var(--color-primary)}@media(max-width:1024px){.sidebar{transform:translate(-100%);transition:transform var(--transition-slow) ease;z-index:1200;width:260px}.sidebar.open{transform:translate(0)}.sidebar-close-btn{display:block}}.bottom-tab-bar{display:none}@media(max-width:640px){.bottom-tab-bar{display:flex;position:fixed;left:0;right:0;bottom:0;height:60px;padding-bottom:env(safe-area-inset-bottom,0px);background:#141720;border-top:1px solid #1e2535;z-index:1000}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--color-text-secondary);min-width:0}.tab-icon{font-size:1.15rem;line-height:1}.tab-label{font-size:.65rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tab-item.router-link-active{color:var(--color-primary)}}.main-layout{display:flex;min-height:100vh;background:var(--color-bg-page)}.content{margin-left:var(--sidebar-width);padding:32px;width:100%;min-width:0;background:var(--color-bg-page)}.mobile-topbar,.sidebar-backdrop{display:none}@media(max-width:1024px){.mobile-topbar{display:flex;align-items:center;gap:14px;position:fixed;top:0;left:0;right:0;height:52px;padding:0 16px;background:#141720;border-bottom:1px solid #1e2535;z-index:1100}.topbar-hamburger{display:flex;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;padding:0;background:none;border:none;cursor:pointer;flex-shrink:0}.topbar-hamburger span{display:block;width:20px;height:2px;margin:0 auto;background:var(--color-text-heading);border-radius:1px}.topbar-brand{font-size:.85rem;font-weight:700;color:var(--color-text-heading);letter-spacing:.04em;text-transform:uppercase}.sidebar-backdrop{display:block;position:fixed;inset:0;background:#0000008c;z-index:999}.content{margin-left:0;padding:72px 20px 32px}}@media(max-width:640px){.content{padding-left:14px;padding-right:14px;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}}.portal-layout[data-v-2bc08873]{min-height:100vh;background:var(--color-bg-page);display:flex;flex-direction:column;align-items:center;padding:var(--space-2xl) var(--space-lg);box-sizing:border-box}.overview-page{display:flex;flex-direction:column;gap:0;padding-bottom:48px}.overview-banner{display:flex;align-items:center;gap:10px;padding:13px 18px;border-radius:var(--radius-lg);border-left:4px solid transparent;font-size:.93rem;font-weight:500;margin-bottom:14px;line-height:1.4}.overview-banner--ok{background:#34d46e14;border-left-color:var(--color-success);color:#7fe8a8}.overview-banner--offline{background:#f5b82414;border-left-color:var(--color-warning);color:var(--color-warning)}.overview-banner--alarm,.overview-banner--alarm-offline{background:#f0404014;border-left-color:var(--color-danger);color:#f09090}.overview-fleet{display:flex;align-items:center;gap:20px;padding:9px 18px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:24px;font-size:.84rem;color:var(--color-text-secondary)}.fleet-stat{display:flex;align-items:center;gap:8px;flex:1}.fleet-stat strong{color:var(--color-text-heading);font-weight:600}.fleet-sep{color:var(--color-text-faint)}.fleet-last-data{color:var(--color-text-muted);font-size:.82rem}.fleet-last-data strong{color:var(--color-text-secondary)}.fleet-refresh-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.fleet-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.overview-section{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px 20px 20px;margin-bottom:20px}.overview-section-heading{display:flex;align-items:center;gap:9px;font-size:.78rem;font-weight:700;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px}.section-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-badge);font-size:.72rem;font-weight:700;line-height:1}.section-count--alarm{background:var(--color-danger);color:#fff}.section-count--offline{background:var(--color-warning);color:#1a1200}.alarm-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm)}.alarm-table{width:100%;border-collapse:collapse;font-size:.84rem}.alarm-table th{text-align:left;padding:6px 12px;color:var(--color-text-muted);font-weight:600;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--color-border);white-space:nowrap}.alarm-table td{padding:9px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.alarm-table tbody tr:last-child td{border-bottom:none}.alarm-table tbody tr:hover td{background:var(--color-bg-hover)}.alarm-row--alarm td:first-child{border-left:3px solid var(--color-danger);padding-left:9px}.alarm-row--warning td:first-child{border-left:3px solid var(--color-warning);padding-left:9px}.alarm-td-device{font-weight:500;color:var(--color-text-heading);white-space:nowrap}.alarm-td-site,.alarm-td-channel{color:var(--color-text-secondary);white-space:nowrap}.alarm-td-reading{white-space:nowrap;font-family:var(--font-mono);font-size:.8rem}.reading-val{color:var(--color-text-heading);font-weight:500}.reading-arrow{margin:0 2px}.alarm-row--alarm .reading-arrow{color:var(--color-danger)}.alarm-row--warning .reading-arrow{color:var(--color-warning)}.reading-limit{color:var(--color-text-muted);font-size:.74rem;margin-left:3px}.alarm-td-since{color:var(--color-text-secondary);white-space:nowrap;font-size:.8rem;cursor:default}.group-chip{display:inline-block;padding:2px 8px 2px 7px;border-radius:var(--radius-pill);border-left:3px solid var(--chip-color, #6c757d);background:var(--color-bg-hover);color:var(--color-text-secondary);font-size:.76rem;white-space:nowrap}.severity-badge{display:inline-block;padding:2px 7px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.severity-badge--alarm{background:#f0404024;color:#f09090;border:1px solid rgba(240,64,64,.28)}.severity-badge--warning{background:#f5b82424;color:var(--color-warning);border:1px solid rgba(245,184,36,.28)}.investigate-btn{background:none;border:1px solid var(--color-border);color:var(--color-primary);padding:4px 10px;border-radius:var(--radius-sm);font-size:.76rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.investigate-btn:hover{background:var(--color-bg-hover);border-color:var(--color-primary)}.offline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.offline-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-left:3px solid var(--color-warning);border-radius:var(--radius-md);transition:background .12s}.offline-item:hover{background:var(--color-bg-hover)}.offline-item-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.offline-device-name{font-weight:500;color:var(--color-text-heading);font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offline-meta{font-size:.78rem;color:var(--color-text-secondary)}.offline-sep{margin:0 5px;color:var(--color-text-faint)}.offline-meta strong{color:var(--color-warning)}.offline-more{margin:10px 0 0;font-size:.82rem;color:var(--color-text-secondary)}.view-all-link{color:var(--color-primary);text-decoration:none}.view-all-link:hover{text-decoration:underline}@media(max-width:640px){.overview-fleet{flex-wrap:wrap;gap:8px;padding:10px 14px}.fleet-stat{flex-wrap:wrap}.fleet-last-data{flex:0 0 100%;order:3}.fleet-refresh-btn{margin-left:0}.alarm-table th:nth-child(3),.alarm-table td:nth-child(3){display:none}.overview-section{padding:12px 14px 14px}.offline-item{flex-wrap:wrap;gap:10px}}.date-filter-bar{margin-bottom:24px}.tz-indicator{margin-left:auto;font-size:var(--font-size-xs, 11px);color:var(--color-text-muted, #888);background:var(--color-bg-subtle, #f4f5f7);border:1px solid var(--color-border-light, #e2e4e9);border-radius:999px;padding:2px 10px;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none}@media(max-width:640px){.date-filter-bar .form-row{flex:1 1 100%}.date-filter-bar .form-row .input-text{flex:1;min-width:0}.date-filter-bar .btn{flex:1}.date-filter-bar .tz-indicator{margin-left:0}}.device-tile{position:relative;display:flex;flex-direction:column;width:100%;aspect-ratio:1 / 2;padding:calc(var(--space-md) + 4px) var(--space-lg) var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-white);box-shadow:var(--shadow-card-sm);cursor:pointer;text-align:left;font-family:var(--font-sans);overflow:hidden;transition:box-shadow var(--transition-base),transform var(--transition-base),border-color var(--transition-base)}.device-tile:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:transparent}.device-tile:hover,.device-tile:focus-visible{box-shadow:var(--shadow-card-lg);transform:translateY(-2px)}.device-tile:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.device-tile.severity-warning{background:var(--color-warning-bg);border-color:var(--color-warning-border)}.device-tile.severity-warning:before{background:var(--color-warning)}.device-tile.severity-alarm{background:#f0404014;border-color:#f0404066}.device-tile.severity-alarm:before{background:var(--color-danger)}.device-tile-top{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.tile-status-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0;display:inline-block}.tile-status-dot.online{background:var(--color-success)}.tile-status-dot.offline{background:var(--color-muted)}.device-tile-body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--space-xs);min-height:0}.device-tile-name{font-family:var(--font-mono);font-weight:600;font-size:var(--font-size-base);color:var(--color-text-heading);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.device-tile-id{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.device-tile-footer{flex-shrink:0}.device-tile-last-seen{font-size:var(--font-size-xs);color:var(--color-text-placeholder)}@media(max-width:480px){.device-tile{padding:var(--space-md)}}.project-section{border-top:1px solid var(--color-border-light)}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-lg)}@media(max-width:480px){.device-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-md)}}.company-section{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:var(--space-xl);overflow:hidden}.company-header{border-left:4px solid var(--color-primary);padding:var(--space-lg) var(--space-2xl);display:flex;align-items:center;gap:var(--space-md);cursor:pointer;background:var(--color-bg-header);-webkit-user-select:none;user-select:none;transition:var(--transition-bg)}.company-header:hover{background:var(--color-bg-header-hover)}.company-name{font-size:var(--font-size-title);font-weight:600;color:var(--color-text-heading);flex:1}.company-meta{font-size:var(--font-size-sm);color:var(--color-text-faint)}.diagnostics-section{margin-top:8px;border-top:1px dashed var(--color-border-dashed);padding-top:8px}.diagnostics-toggle{cursor:pointer;color:var(--color-primary);font-size:var(--font-size-base);font-weight:500;padding:var(--space-sm) 0;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-color)}.diagnostics-toggle:hover{color:var(--color-primary-darker)}.diagnostics-body{margin-top:var(--space-sm)}.diag-small-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}.diag-small-grid .chart-block{margin-bottom:0}.download-dialog{max-width:480px}.dl-field-group{display:flex;flex-direction:column;gap:8px;margin-bottom:var(--space-md)}.dl-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em}.dl-period-pills{display:flex;gap:6px;flex-wrap:wrap}.dl-pill{padding:5px 14px;font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-white);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.dl-pill:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-text-body)}.dl-pill--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.dl-pill--active:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.dl-pill:disabled{opacity:.45;cursor:not-allowed}.dl-date-row{display:flex;align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-md)}.dl-date-field{display:flex;flex-direction:column;gap:6px;flex:1;min-width:130px}.dl-date-sep{font-size:1rem;color:var(--color-text-faint);padding-bottom:8px;flex-shrink:0}.dl-date-field .input-text:read-only{opacity:.5;cursor:default;background:var(--color-bg-hover)}.dl-notes{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-md)}.dl-note{display:flex;align-items:flex-start;gap:8px;font-size:var(--font-size-xs);color:var(--color-text-faint);line-height:1.55;margin:0}.dl-note-icon{flex-shrink:0;font-style:normal;color:var(--color-text-placeholder)}.dl-success{margin-bottom:0}.device-detail-dialog{max-width:min(1100px,94vw)}.device-modal-title-block{display:flex;flex-direction:column;gap:6px;min-width:0}.device-modal-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.device-modal-meta .last-seen{margin-left:0}.modal-header-actions{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.device-alarm-badge{font-size:.74rem;font-weight:600;border-radius:var(--radius-pill);padding:2px 8px;flex-shrink:0;letter-spacing:.02em}.device-alarm-badge--alarm{background:#dc354526;color:#dc3545;border:1px solid rgba(220,53,69,.35)}.device-alarm-badge--warning{background:#fd7e1426;color:#fd7e14;border:1px solid rgba(253,126,20,.35)}.sensor-page h1{font-size:var(--font-size-h1);font-weight:700;color:var(--color-text-heading);margin:0 0 var(--space-2xl) 0}.job-move-wrap{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.job-move-select{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-body);font-size:var(--font-size-sm);font-family:var(--font-sans);padding:4px var(--space-md);cursor:pointer;min-width:150px;outline:none;transition:border-color var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast);appearance:auto}.job-move-select:focus{border-color:var(--color-primary);background:var(--color-bg-hover)}.job-move-select option{background:var(--color-bg-page);color:var(--color-text-body)}.job-move-select:disabled{opacity:.6;cursor:not-allowed}.job-expand-panel{border-top:1px solid var(--color-border-light)}.template-apply-row{display:flex;flex-direction:row;align-items:center;gap:var(--space-md);flex-wrap:wrap}.template-apply-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}.template-select{flex:1;min-width:160px}.apply-success{font-size:var(--font-size-sm);font-weight:600;color:var(--color-success);flex-shrink:0}.job-no-templates{font-size:var(--font-size-base);color:var(--color-text-muted);font-style:italic}@media(max-width:680px){.job-move-select{min-width:110px;font-size:var(--font-size-xs);padding:3px var(--space-sm)}.template-apply-row{gap:var(--space-sm)}}@media(max-width:640px){.item-row .job-move-wrap{order:8}.item-row .btn-icon{order:9}}.jobs-page{padding:var(--space-2xl) var(--space-3xl);max-width:1100px}.jobs-page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-2xl);flex-wrap:wrap}.jobs-page-header .page-title{margin-bottom:0}.new-job-bar{display:flex;flex-direction:row;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);margin-bottom:var(--space-xl);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap}.new-job-input{flex:1;min-width:0;padding:7px 11px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-sans);color:var(--color-text-body);background:var(--color-bg-subtle);outline:none;transition:border-color var(--transition-base),background var(--transition-base)}.new-job-input:focus{border-color:var(--color-primary);background:var(--color-bg-hover)}.new-job-input::placeholder{color:var(--color-text-placeholder)}.create-job-error{font-size:var(--font-size-xs);color:var(--color-danger);display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.jobs-page .company-body{padding:var(--space-md);background:var(--color-bg-inner, var(--color-bg-subtle));display:flex;flex-direction:column;gap:0}.available-header{border-left-color:var(--color-muted)!important;cursor:pointer}.job-header{cursor:pointer}.job-delete-btn{flex-shrink:0}.job-empty-body{padding:var(--space-xl) var(--space-2xl);font-size:var(--font-size-base);color:var(--color-text-muted);font-style:italic;text-align:center}.jobs-search-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xl);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.jobs-search-icon{font-size:1rem;line-height:1;flex-shrink:0;color:var(--color-text-placeholder);pointer-events:none;-webkit-user-select:none;user-select:none}.jobs-search-input{flex:1;min-width:0;border:none;background:transparent;color:var(--color-text-body);font-size:var(--font-size-base);font-family:var(--font-sans);outline:none;padding:4px 0}.jobs-search-input::placeholder{color:var(--color-text-placeholder)}.jobs-search-count{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.jobs-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:.7rem;line-height:1;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.jobs-search-clear:hover{background:var(--color-border);color:var(--color-text-body)}@media(max-width:680px){.jobs-page{padding:var(--space-lg)}.new-job-bar{padding:var(--space-sm) var(--space-lg)}.jobs-search-bar{padding:var(--space-sm)}}.new-job-group-select{height:36px;padding:0 10px;border-radius:4px;border:1px solid rgba(255,255,255,.15);background:var(--color-surface, #1e1e2e);color:var(--color-text, #e0e0e0);font-size:.9rem;min-width:160px;cursor:pointer}.new-job-group-select:disabled{opacity:.5;cursor:not-allowed}.site-group-badge{display:inline-block;padding:2px 8px;border-radius:10px;color:#fff;font-size:.72rem;font-weight:500;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;margin-left:6px}.rp-section{background:var(--color-white);border:1px solid var(--color-border, #2a2e3a);border-radius:var(--radius-lg, 8px);padding:var(--space-2xl, 24px);margin-bottom:var(--space-2xl, 24px)}.rp-section-title{font-size:var(--font-size-title, 1.2rem);color:var(--color-text-heading, #e2e5ed);margin:0 0 var(--space-xl, 20px) 0}.rp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-xl, 20px)}.rp-field{display:flex;flex-direction:column;gap:var(--space-sm, 8px);margin-bottom:var(--space-lg, 16px)}.rp-field-wide{margin-top:var(--space-md, 12px)}.rp-label{font-size:.85rem;font-weight:600;color:var(--color-text-body, #b4b9c8)}.rp-muted{font-size:.82rem;color:var(--color-text-muted, #646a80);margin:0}.rp-radio-row{display:flex;gap:var(--space-xl, 20px);flex-wrap:wrap}.rp-radio,.rp-check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:var(--color-text-body, #b4b9c8);cursor:pointer}.rp-checklist{display:flex;flex-direction:column;gap:var(--space-sm, 8px);margin-top:var(--space-sm, 8px);max-height:180px;overflow-y:auto;padding:var(--space-md, 12px);background:var(--color-bg-page, #141517);border-radius:var(--radius-md, 6px)}.rp-channels{display:flex;flex-wrap:wrap;gap:var(--space-md, 12px) var(--space-2xl, 24px);padding:var(--space-md, 12px);background:var(--color-bg-page, #141517);border-radius:var(--radius-md, 6px)}.rp-recipients{display:flex;flex-wrap:wrap;gap:var(--space-sm, 8px);margin:var(--space-sm, 8px) 0}.rp-chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-secondary, #435c82);color:#fff;border-radius:999px;padding:4px 10px;font-size:.82rem}.rp-chip-x{background:none;border:none;color:#fff;cursor:pointer;font-size:.75rem;line-height:1;opacity:.8}.rp-chip-x:hover{opacity:1}.rp-recipient-add{display:flex;gap:var(--space-sm, 8px);max-width:420px}.rp-recipient-add .input-text{flex:1}.rp-options{display:flex;flex-wrap:wrap;gap:var(--space-2xl, 24px);margin:var(--space-lg, 16px) 0}.rp-actions{display:flex;gap:var(--space-md, 12px);flex-wrap:wrap;margin-top:var(--space-lg, 16px)}.rp-status{font-size:.85rem;color:var(--color-text-body, #b4b9c8);margin:var(--space-sm, 8px) 0}.rp-findings{background:var(--color-bg-page, #141517);border-left:3px solid var(--color-primary, #ef5d2f);border-radius:var(--radius-md, 6px);padding:var(--space-md, 12px) var(--space-lg, 16px);margin:var(--space-md, 12px) 0}.rp-findings-title{margin:0 0 var(--space-sm, 8px) 0;font-size:.9rem;color:var(--color-text-heading, #e2e5ed)}.rp-findings ul{margin:0;padding-left:18px}.rp-findings li{font-size:.86rem;color:var(--color-text-body, #b4b9c8);margin-bottom:4px}.rp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.rp-table{width:100%;border-collapse:collapse;font-size:.88rem}.rp-table th{text-align:left;padding:10px 12px;color:var(--color-text-muted, #646a80);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border, #2a2e3a)}.rp-table td{padding:12px;color:var(--color-text-body, #b4b9c8);border-bottom:1px solid var(--color-border, #2a2e3a);vertical-align:middle}.rp-cap{text-transform:capitalize}.rp-row-actions{display:flex;gap:var(--space-sm, 8px);justify-content:flex-end;flex-wrap:wrap}@media(max-width:640px){.rp-col-interval,.rp-col-scope{display:none}}.rp-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.rp-badge-on{background:#28a74526;color:#3ddc84}.rp-badge-off{background:#646a8033;color:var(--color-text-muted, #646a80)}.threshold-table{display:flex;flex-direction:column;gap:2px}.threshold-row{display:grid;grid-template-columns:1.4fr 56px 96px 56px 96px 140px 1fr;align-items:center;gap:var(--space-sm);padding:7px var(--space-sm);border-radius:var(--radius-sm);background:var(--color-white);transition:background var(--transition-fast)}.threshold-header{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);background:none}.threshold-row:not(.threshold-header):hover{background:var(--color-bg-hover)}.threshold-row-active{background:var(--color-bg-active)!important}.tcol-channel{font-size:var(--font-size-base);font-weight:500;color:var(--color-text-body);display:flex;align-items:baseline;gap:4px}.tcol-units{font-size:var(--font-size-xs);color:var(--color-text-faint);font-weight:400}.tcol-optional{font-size:var(--font-size-xs);font-weight:400;text-transform:none;letter-spacing:0}.tcol-toggle{display:flex;align-items:center;justify-content:center}.tcol-value,.tcol-severity,.tcol-label{display:flex;align-items:center}.input-num{width:100%;max-width:90px;text-align:right}.input-num:disabled{opacity:.35;cursor:not-allowed}.offset-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.offset-section-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-sm) 0}.offset-table{display:flex;flex-direction:column;gap:2px}.offset-row{display:grid;grid-template-columns:1fr 120px;align-items:center;gap:var(--space-sm);padding:5px var(--space-sm);border-radius:var(--radius-sm);background:var(--color-white);transition:background var(--transition-fast)}.offset-header{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);background:none}.offset-row:not(.offset-header):hover{background:var(--color-bg-hover)}.offset-row-active{background:var(--color-bg-active)!important}.offset-channel-label{font-size:var(--font-size-base);font-weight:500;color:var(--color-text-body);display:flex;align-items:baseline;gap:4px}.offset-value-col{display:flex;align-items:center}.offset-value-col .input-num{max-width:110px}.offset-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.offset-section-header .offset-section-title{margin:0}.zero-confirm-banner{background:#ef5d2f0f;border:1px solid rgba(239,93,47,.28);border-radius:var(--radius-sm);padding:var(--space-md);margin-bottom:var(--space-md)}.zero-confirm-text{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.55;margin:0 0 var(--space-md) 0}.zero-confirm-text strong{color:var(--color-text-body);font-weight:600}.zero-confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.template-selector-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.template-selector-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.template-selector-select{flex:1;min-width:160px;max-width:320px;font-size:var(--font-size-sm);padding:4px 8px}.template-applied-notice{font-size:var(--font-size-sm);font-weight:600;color:var(--color-success);flex-shrink:0;animation:fade-out-notice 2s ease forwards}@media(max-width:640px){.threshold-header{display:none}.threshold-row{display:flex;flex-wrap:wrap;gap:10px 14px;padding:12px}.threshold-row>.tcol-channel{flex:1 1 100%}.threshold-row>.tcol-toggle,.threshold-row>.tcol-value,.threshold-row>.tcol-severity{flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:4px}.threshold-row>.tcol-label{flex:1 1 100%;flex-direction:column;align-items:flex-start;gap:4px}.threshold-row>.tcol-toggle:before,.threshold-row>.tcol-value:before,.threshold-row>.tcol-severity:before,.threshold-row>.tcol-label:before{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em}.threshold-row>.tcol-toggle:nth-child(2):before{content:"High enabled"}.threshold-row>.tcol-value:nth-child(3):before{content:"High value"}.threshold-row>.tcol-toggle:nth-child(4):before{content:"Low enabled"}.threshold-row>.tcol-value:nth-child(5):before{content:"Low value"}.threshold-row>.tcol-severity:before{content:"Severity"}.threshold-row>.tcol-label:before{content:"Label (optional)"}.threshold-row .input-num{max-width:none;width:100px;text-align:left}}@keyframes fade-out-notice{0%{opacity:1}60%{opacity:1}to{opacity:0}}.template-name-row{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-xl)}.template-name-input{max-width:420px}.ua-card[data-v-e8621ae8]{overflow:visible}.ua-card-inner[data-v-e8621ae8]{padding:var(--space-xl)}.ua-card-label[data-v-e8621ae8]{font-size:var(--font-size-xs, 11px);font-weight:700;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-lg) 0}.ua-card-hint[data-v-e8621ae8]{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0 0 var(--space-xl) 0;line-height:1.5}.ua-form-row-2col[data-v-e8621ae8]{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-md)}.ua-form-group[data-v-e8621ae8]{display:flex;flex-direction:column;gap:var(--space-xs)}.ua-input[data-v-e8621ae8]{width:100%;box-sizing:border-box}.ua-notif-row[data-v-e8621ae8]{display:flex;align-items:flex-start;gap:var(--space-lg);padding:var(--space-md) 0}.ua-notif-row+.ua-notif-row[data-v-e8621ae8]{border-top:1px solid var(--color-border-light)}.ua-notif-text[data-v-e8621ae8]{display:flex;flex-direction:column;gap:var(--space-xs)}.ua-notif-label[data-v-e8621ae8]{font-size:var(--font-size-body);color:var(--color-text-body);font-weight:500}.ua-notif-hint[data-v-e8621ae8]{font-size:var(--font-size-xs, 11px);color:var(--color-text-muted);line-height:1.4}.ua-notif-coming-soon[data-v-e8621ae8]{color:var(--color-text-faint);font-style:italic}.ua-phone-list[data-v-e8621ae8]{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.ua-phone-item[data-v-e8621ae8]{display:flex;align-items:center;justify-content:space-between;background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.ua-phone-number[data-v-e8621ae8]{font-size:var(--font-size-body);color:var(--color-text-body);font-family:monospace;letter-spacing:.03em}.ua-no-phones[data-v-e8621ae8]{font-size:var(--font-size-base);color:var(--color-text-muted);margin-bottom:var(--space-lg);font-style:italic}.ua-phone-add-row[data-v-e8621ae8]{display:flex;gap:var(--space-md);align-items:center;margin-top:var(--space-md)}.ua-phone-input[data-v-e8621ae8]{flex:1}.ua-section-footer[data-v-e8621ae8]{display:flex;justify-content:flex-end;margin-top:var(--space-xl)}.ua-feedback[data-v-e8621ae8]{margin-top:var(--space-md)}.ua-success[data-v-e8621ae8]{background:#34d46e1f;border:1px solid rgba(52,212,110,.35);color:#34d46e;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:.88rem;display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md)}@media(max-width:600px){.ua-form-row-2col[data-v-e8621ae8]{grid-template-columns:1fr}.ua-phone-add-row[data-v-e8621ae8]{flex-direction:column;align-items:stretch}}.settings-page{padding:var(--space-2xl) var(--space-3xl);max-width:1100px}.settings-page-header{margin-bottom:var(--space-2xl)}.settings-page-header .page-title{margin-bottom:0}.settings-section{margin-bottom:var(--space-3xl)}.settings-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap}.settings-section-title{font-size:var(--font-size-title);font-weight:700;color:var(--color-text-heading);margin:0}.templates-list{overflow:visible}.templates-list-header,.template-row{display:grid;grid-template-columns:1fr 180px 168px;align-items:center;gap:var(--space-sm);padding:11px var(--space-xl)}.templates-list-header{background:var(--color-bg-header);border-bottom:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.template-row-wrap{border-bottom:1px solid var(--color-border-light)}.template-row-wrap:last-child{border-bottom:none}.template-row{background:var(--color-white);transition:background var(--transition-fast)}.template-row:hover{background:var(--color-bg-hover)}.template-row-wrap:nth-child(2n) .template-row{background:var(--color-bg-subtle)}.template-row-wrap:nth-child(2n) .template-row:hover{background:var(--color-bg-hover)}.template-row-wrap:last-child .template-row{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.tmpl-name-cell{font-weight:600;font-size:var(--font-size-body);color:var(--color-text-heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tmpl-channel-count{font-weight:700;color:var(--color-text-secondary)}.tmpl-channel-label{font-size:var(--font-size-base);color:var(--color-text-muted)}.tcol-tmpl-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}@media(max-width:600px){.settings-page{padding:var(--space-lg)}.templates-list-header,.template-row{grid-template-columns:1fr 168px}.tcol-tmpl-channels{display:none}}.settings-tz-card{padding:var(--space-xl)}.settings-tz-row{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap;margin-bottom:var(--space-md)}.settings-tz-select{min-width:260px}.settings-tz-current{font-size:var(--font-size-xs, 11px);color:var(--color-text-muted, #888);font-weight:400;margin-left:var(--space-xs, 4px)}.settings-tz-saved{color:var(--color-success, #28a745);font-weight:600;font-size:var(--font-size-base)}.settings-tz-hint{font-size:var(--font-size-base);color:var(--color-text-muted, #888);margin:0;line-height:1.5}.portal-page{width:100%;max-width:680px;padding:var(--space-lg)}.portal-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2xl)}.portal-page-title{font-size:var(--font-size-h1);font-weight:700;color:var(--color-text-heading);margin:0}.portal-card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-lg);overflow:hidden}.portal-section{padding:var(--space-3xl)}.portal-section+.portal-section{border-top:1px solid var(--color-border-light)}.portal-section-title{font-size:var(--font-size-label);font-weight:700;color:var(--color-text-heading);margin:0 0 var(--space-xl) 0}.portal-form-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg)}.portal-form-group:last-of-type{margin-bottom:0}.portal-form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-lg)}.portal-input{width:100%;box-sizing:border-box;padding:8px 10px}.portal-input-hint{font-size:var(--font-size-sm);color:var(--color-text-faint);margin-top:2px}.portal-section-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);margin-top:var(--space-xl)}.portal-save-btn{display:flex;align-items:center;gap:var(--space-sm);min-width:130px;justify-content:center}.portal-error{margin-top:var(--space-md)}.portal-success{background:#34d46e1f;border:1px solid rgba(52,212,110,.35);color:#34d46e;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:.88rem;display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md)}.portal-notif-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) 0}.portal-notif-row+.portal-notif-row{border-top:1px solid var(--color-border-light)}.portal-notif-label{font-size:var(--font-size-body);color:var(--color-text-body)}.portal-pw-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg)}.portal-pw-group:last-of-type{margin-bottom:0}.portal-loading{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-4xl) var(--space-3xl);color:var(--color-text-muted);font-size:var(--font-size-body)}@media(max-width:540px){.portal-form-row-2col{grid-template-columns:1fr}.portal-page{padding:var(--space-md)}.portal-section{padding:var(--space-2xl) var(--space-lg)}}.portal-tz-hint{font-size:var(--font-size-sm, 12px);color:var(--color-text-muted, #888);margin:var(--space-sm, 4px) 0 0;line-height:1.5}.modal-dialog.client-modal-dialog{max-width:540px}.client-form{display:flex;flex-direction:column;gap:var(--space-lg)}.client-form-group{display:flex;flex-direction:column;gap:6px}.client-form-group .form-label{font-size:var(--font-size-md);font-weight:600;color:var(--color-text-secondary)}.client-form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}@media(max-width:440px){.client-form-row-2col{grid-template-columns:1fr}}.client-input{width:100%;box-sizing:border-box;padding:8px 10px;font-size:var(--font-size-base)}.field-required{color:var(--color-danger);margin-left:2px;font-weight:700}.field-optional{font-size:var(--font-size-xs);color:var(--color-text-faint);font-weight:400;margin-left:var(--space-xs)}.client-notif-section{display:flex;flex-direction:column;gap:var(--space-md)}.client-notif-row{display:flex;align-items:center;gap:var(--space-md)}.notif-label{font-size:var(--font-size-base);color:var(--color-text-body);-webkit-user-select:none;user-select:none}.client-form-local-error{margin-bottom:var(--space-md)}.client-groups-empty{color:var(--color-text-muted, #aaa);font-size:.9rem;padding:8px 0}.client-groups-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;padding:4px 2px;border:1px solid rgba(255,255,255,.08);border-radius:4px}.client-group-row{display:flex;align-items:center;gap:10px;padding:6px 8px;cursor:pointer;border-radius:4px}.client-group-row:hover{background:#ffffff0a}.client-group-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.2);flex-shrink:0}.client-group-name{flex:1}.client-modal-actions{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-md)}.client-modal-actions-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.client-modal-danger-row{margin-top:var(--space-sm)}.client-modal-action-info{display:flex;flex-direction:column;gap:2px}.client-modal-action-info strong{font-size:var(--font-size-base);color:var(--color-text-heading)}.client-modal-action-hint{font-size:var(--font-size-sm);color:var(--color-text-muted)}.client-modal-delete-confirm{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.client-modal-action-error{margin:0}.help-tooltip{position:relative;display:inline-flex;vertical-align:middle}.help-tooltip-trigger{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-white);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;line-height:1;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.help-tooltip-trigger:hover,.help-tooltip-trigger[aria-expanded=true]{background:var(--color-bg-hover);border-color:var(--color-info);color:var(--color-info)}.help-tooltip-popover{position:absolute;z-index:1100;width:max-content;max-width:280px;padding:var(--space-md) var(--space-lg);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080;color:var(--color-text-body);font-size:var(--font-size-base);font-weight:400;line-height:1.5;text-transform:none;letter-spacing:normal;white-space:normal}.help-tooltip--top .help-tooltip-popover{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-tooltip--bottom .help-tooltip-popover{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-tooltip--left .help-tooltip-popover{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.help-tooltip--right .help-tooltip-popover{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.clients-page{padding:var(--space-2xl) var(--space-3xl);max-width:1100px}.clients-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2xl);flex-wrap:wrap;gap:var(--space-md)}.clients-page-header .page-title{margin-bottom:0}.clients-load-error{margin-bottom:var(--space-xl)}.clients-action-error{margin-top:var(--space-md)}.clients-list{overflow:visible}.clients-list-header,.client-row{display:grid;grid-template-columns:1.3fr 232px 1.7fr 1.1fr 1.5fr 84px 90px;align-items:center;gap:var(--space-sm);padding:11px var(--space-xl)}.clients-list-header{background:var(--color-bg-header);border-bottom:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.client-row-wrap{border-bottom:1px solid var(--color-border-light)}.client-row-wrap:last-child{border-bottom:none}.client-row{background:var(--color-white);transition:background var(--transition-fast)}.client-row:hover{background:var(--color-bg-hover)}.client-row-wrap:nth-child(2n) .client-row{background:var(--color-bg-subtle)}.client-row-wrap:nth-child(2n) .client-row:hover{background:var(--color-bg-hover)}.client-row-wrap:last-child .client-row{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.col-name{font-weight:600;font-size:var(--font-size-body);color:var(--color-text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-email{font-size:var(--font-size-base);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-phone{font-size:var(--font-size-base);color:var(--color-text-muted);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-notif{display:flex;align-items:center;gap:var(--space-sm)}.notif-icon{font-size:1rem;line-height:1;transition:color var(--transition-base)}.notif-on{color:var(--color-success)}.notif-off{color:var(--color-muted);opacity:.35}.col-actions{display:flex;align-items:center;gap:var(--space-sm);justify-content:flex-end}@media(max-width:640px){.col-actions{flex-wrap:wrap;row-gap:6px}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-width:32px;height:32px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);cursor:pointer;font-size:var(--font-size-base);line-height:1;color:var(--color-text-muted);white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.icon-btn:hover{background:var(--color-bg-hover);border-color:#c0c5cc;color:var(--color-text-body)}.icon-btn-danger{color:var(--color-danger);border-color:#f040404d}.icon-btn-danger:hover{background:#f040401a;border-color:var(--color-danger);color:var(--color-danger)}.delete-confirm-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--color-warning-bg);border-top:1px solid var(--color-warning-border);font-size:var(--font-size-base);color:var(--color-warning-text);animation:confirm-slide-in .12s ease}.delete-confirm-text{font-weight:500}.delete-confirm-text strong{font-weight:700}.delete-confirm-actions{display:flex;align-items:center;gap:var(--space-sm)}@keyframes confirm-slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:780px){.clients-page{padding:var(--space-lg) var(--space-lg)}.clients-list-header,.client-row{grid-template-columns:1fr 232px 1fr 1.2fr 84px 80px}.clients-list-header .col-phone,.client-row .col-phone{display:none}}@media(max-width:540px){.clients-list-header,.client-row{grid-template-columns:1fr 232px 80px 80px}.clients-list-header .col-email,.client-row .col-email,.clients-list-header .col-groups,.client-row .col-groups{display:none}}.tier-control{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;vertical-align:middle}.tier-btn{padding:4px 10px;border:none;border-right:1px solid var(--color-border);background:var(--color-white);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.tier-btn:last-child{border-right:none}.tier-btn:hover:not(:disabled):not(.active){background:var(--color-bg-hover);color:var(--color-text-body)}.tier-btn:disabled{cursor:not-allowed;opacity:.6}.tier-btn-readonly.active{background:var(--color-muted);color:#fff}.tier-btn-standard.active{background:var(--color-info);color:#0a1a1f}.tier-btn-admin.active{background:linear-gradient(135deg,#a080f0,#7c4de8);color:#fff}.col-tier{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.col-tier .tier-control{flex-shrink:0}.tier-modal-dialog{max-width:440px}.tier-modal-body{padding:var(--space-2xl) var(--space-2xl) var(--space-lg)}.tier-confirm-text{margin:0 0 var(--space-md);font-size:var(--font-size-body, .95rem);color:var(--color-text-body);line-height:1.5}.tier-confirm-sub{margin:0;font-size:var(--font-size-base, .875rem);color:var(--color-text-muted);line-height:1.5}.tier-modal-error{margin-bottom:var(--space-lg)}.client-group-badge{display:inline-block;padding:2px 8px;margin:2px 4px 2px 0;border-radius:10px;color:#fff;font-size:.75rem;font-weight:500;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.client-no-groups{color:var(--color-text-muted, #888);font-style:italic}.invite-page{padding:var(--space-xl);max-width:680px}.invite-card{padding:var(--space-3xl)}.invite-intro{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-xl);line-height:1.6}.invite-form{display:flex;flex-direction:column;gap:var(--space-lg)}.invite-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}@media(max-width:500px){.invite-row{grid-template-columns:1fr}.invite-page{padding:var(--space-lg)}.invite-card{padding:var(--space-xl)}.invite-notif-row{flex-wrap:wrap;gap:var(--space-lg)}}.invite-field{display:flex;flex-direction:column;gap:var(--space-xs)}.invite-field .input-text{width:100%;box-sizing:border-box}.required{color:var(--color-danger, #e05252);margin-left:2px}.optional{font-size:var(--font-size-xs);color:var(--color-text-faint);font-weight:400;margin-left:4px}.invite-notif-row{display:flex;gap:var(--space-3xl);align-items:center;padding:var(--space-md) 0;border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.invite-notif-item{display:flex;align-items:center;gap:var(--space-md)}.invite-notif-item .form-label{margin:0}.invite-actions{display:flex;justify-content:flex-end;padding-top:var(--space-sm)}.invite-submit-btn{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-2xl);min-width:220px;justify-content:center}.invite-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-lg);padding:var(--space-3xl) var(--space-xl)}.invite-success-icon{font-size:3rem;line-height:1}.invite-success-title{font-size:1.4rem;font-weight:700;color:var(--color-text-primary);margin:0}.invite-success-msg{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:400px;line-height:1.6;margin:0}.jobs-page[data-v-77a65192]{padding:var(--space-2xl) var(--space-3xl);max-width:1100px}.jobs-page-header[data-v-77a65192]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-2xl);flex-wrap:wrap}.jobs-page-header .page-title[data-v-77a65192]{margin-bottom:0}.new-job-bar[data-v-77a65192]{display:flex;flex-direction:row;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);margin-bottom:var(--space-xl);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap}.new-job-input[data-v-77a65192]{flex:1;min-width:0;padding:7px 11px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-sans);color:var(--color-text-body);background:var(--color-bg-subtle);outline:none;transition:border-color var(--transition-base),background var(--transition-base)}.new-job-input[data-v-77a65192]:focus{border-color:var(--color-primary);background:var(--color-bg-hover)}.new-job-input[data-v-77a65192]::placeholder{color:var(--color-text-placeholder)}.create-job-error[data-v-77a65192]{font-size:var(--font-size-xs);color:var(--color-danger);display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.jobs-page .company-body[data-v-77a65192]{padding:var(--space-md);background:var(--color-bg-inner, var(--color-bg-subtle));display:flex;flex-direction:column;gap:0}.available-header[data-v-77a65192]{border-left-color:var(--color-muted)!important;cursor:pointer}.job-header[data-v-77a65192]{cursor:pointer}.job-delete-btn[data-v-77a65192]{flex-shrink:0}.job-empty-body[data-v-77a65192]{padding:var(--space-xl) var(--space-2xl);font-size:var(--font-size-base);color:var(--color-text-muted);font-style:italic;text-align:center}.jobs-search-bar[data-v-77a65192]{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xl);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.jobs-search-icon[data-v-77a65192]{font-size:1rem;line-height:1;flex-shrink:0;color:var(--color-text-placeholder);pointer-events:none;-webkit-user-select:none;user-select:none}.jobs-search-input[data-v-77a65192]{flex:1;min-width:0;border:none;background:transparent;color:var(--color-text-body);font-size:var(--font-size-base);font-family:var(--font-sans);outline:none;padding:4px 0}.jobs-search-input[data-v-77a65192]::placeholder{color:var(--color-text-placeholder)}.jobs-search-count[data-v-77a65192]{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.jobs-search-clear[data-v-77a65192]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:.7rem;line-height:1;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.jobs-search-clear[data-v-77a65192]:hover{background:var(--color-border);color:var(--color-text-body)}@media(max-width:680px){.jobs-page[data-v-77a65192]{padding:var(--space-lg)}.new-job-bar[data-v-77a65192]{padding:var(--space-sm) var(--space-lg)}.jobs-search-bar[data-v-77a65192]{padding:var(--space-sm)}}.clients-page[data-v-77a65192]{padding:var(--space-2xl) var(--space-3xl);max-width:1100px}.clients-page-header[data-v-77a65192]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2xl);flex-wrap:wrap;gap:var(--space-md)}.clients-page-header .page-title[data-v-77a65192]{margin-bottom:0}.clients-load-error[data-v-77a65192]{margin-bottom:var(--space-xl)}.clients-action-error[data-v-77a65192]{margin-top:var(--space-md)}.clients-list[data-v-77a65192]{overflow:visible}.clients-list-header[data-v-77a65192],.client-row[data-v-77a65192]{display:grid;grid-template-columns:1.3fr 232px 1.7fr 1.1fr 1.5fr 84px 90px;align-items:center;gap:var(--space-sm);padding:11px var(--space-xl)}.clients-list-header[data-v-77a65192]{background:var(--color-bg-header);border-bottom:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.client-row-wrap[data-v-77a65192]{border-bottom:1px solid var(--color-border-light)}.client-row-wrap[data-v-77a65192]:last-child{border-bottom:none}.client-row[data-v-77a65192]{background:var(--color-white);transition:background var(--transition-fast)}.client-row[data-v-77a65192]:hover{background:var(--color-bg-hover)}.client-row-wrap:nth-child(2n) .client-row[data-v-77a65192]{background:var(--color-bg-subtle)}.client-row-wrap:nth-child(2n) .client-row[data-v-77a65192]:hover{background:var(--color-bg-hover)}.client-row-wrap:last-child .client-row[data-v-77a65192]{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.col-name[data-v-77a65192]{font-weight:600;font-size:var(--font-size-body);color:var(--color-text-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-email[data-v-77a65192]{font-size:var(--font-size-base);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-phone[data-v-77a65192]{font-size:var(--font-size-base);color:var(--color-text-muted);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-notif[data-v-77a65192]{display:flex;align-items:center;gap:var(--space-sm)}.notif-icon[data-v-77a65192]{font-size:1rem;line-height:1;transition:color var(--transition-base)}.notif-on[data-v-77a65192]{color:var(--color-success)}.notif-off[data-v-77a65192]{color:var(--color-muted);opacity:.35}.col-actions[data-v-77a65192]{display:flex;align-items:center;gap:var(--space-sm);justify-content:flex-end}@media(max-width:640px){.col-actions[data-v-77a65192]{flex-wrap:wrap;row-gap:6px}}.icon-btn[data-v-77a65192]{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-width:32px;height:32px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);cursor:pointer;font-size:var(--font-size-base);line-height:1;color:var(--color-text-muted);white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.icon-btn[data-v-77a65192]:hover{background:var(--color-bg-hover);border-color:#c0c5cc;color:var(--color-text-body)}.icon-btn-danger[data-v-77a65192]{color:var(--color-danger);border-color:#f040404d}.icon-btn-danger[data-v-77a65192]:hover{background:#f040401a;border-color:var(--color-danger);color:var(--color-danger)}.delete-confirm-banner[data-v-77a65192]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--color-warning-bg);border-top:1px solid var(--color-warning-border);font-size:var(--font-size-base);color:var(--color-warning-text);animation:confirm-slide-in-77a65192 .12s ease}.delete-confirm-text[data-v-77a65192]{font-weight:500}.delete-confirm-text strong[data-v-77a65192]{font-weight:700}.delete-confirm-actions[data-v-77a65192]{display:flex;align-items:center;gap:var(--space-sm)}@keyframes confirm-slide-in-77a65192{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:780px){.clients-page[data-v-77a65192]{padding:var(--space-lg) var(--space-lg)}.clients-list-header[data-v-77a65192],.client-row[data-v-77a65192]{grid-template-columns:1fr 232px 1fr 1.2fr 84px 80px}.clients-list-header .col-phone[data-v-77a65192],.client-row .col-phone[data-v-77a65192]{display:none}}@media(max-width:540px){.clients-list-header[data-v-77a65192],.client-row[data-v-77a65192]{grid-template-columns:1fr 232px 80px 80px}.clients-list-header .col-email[data-v-77a65192],.client-row .col-email[data-v-77a65192],.clients-list-header .col-groups[data-v-77a65192],.client-row .col-groups[data-v-77a65192]{display:none}}.tier-control[data-v-77a65192]{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;vertical-align:middle}.tier-btn[data-v-77a65192]{padding:4px 10px;border:none;border-right:1px solid var(--color-border);background:var(--color-white);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.tier-btn[data-v-77a65192]:last-child{border-right:none}.tier-btn[data-v-77a65192]:hover:not(:disabled):not(.active){background:var(--color-bg-hover);color:var(--color-text-body)}.tier-btn[data-v-77a65192]:disabled{cursor:not-allowed;opacity:.6}.tier-btn-readonly.active[data-v-77a65192]{background:var(--color-muted);color:#fff}.tier-btn-standard.active[data-v-77a65192]{background:var(--color-info);color:#0a1a1f}.tier-btn-admin.active[data-v-77a65192]{background:linear-gradient(135deg,#a080f0,#7c4de8);color:#fff}.col-tier[data-v-77a65192]{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.col-tier .tier-control[data-v-77a65192]{flex-shrink:0}.tier-modal-dialog[data-v-77a65192]{max-width:440px}.tier-modal-body[data-v-77a65192]{padding:var(--space-2xl) var(--space-2xl) var(--space-lg)}.tier-confirm-text[data-v-77a65192]{margin:0 0 var(--space-md);font-size:var(--font-size-body, .95rem);color:var(--color-text-body);line-height:1.5}.tier-confirm-sub[data-v-77a65192]{margin:0;font-size:var(--font-size-base, .875rem);color:var(--color-text-muted);line-height:1.5}.tier-modal-error[data-v-77a65192]{margin-bottom:var(--space-lg)}.groups-page-intro[data-v-77a65192]{color:var(--color-text-muted, #aaa);margin:0 0 var(--space-md, 16px) 0;font-size:.95rem;max-width:720px}.groups-list-header[data-v-77a65192],.group-row[data-v-77a65192]{display:grid;grid-template-columns:24px 1fr 200px auto;gap:var(--space-md, 16px);align-items:center}.col-color[data-v-77a65192]{width:18px;height:18px;border-radius:4px;border:1px solid rgba(255,255,255,.15);display:inline-block}.col-slug[data-v-77a65192]{opacity:.75}.group-row-editing[data-v-77a65192]{background:#ffffff05}.group-color-picker[data-v-77a65192]{width:32px;height:32px;border:none;background:transparent;padding:0;cursor:pointer}.group-color-presets[data-v-77a65192]{display:flex;gap:6px;padding:4px 0 8px 32px}.group-color-swatch[data-v-77a65192]{width:22px;height:22px;border-radius:4px;border:1px solid rgba(255,255,255,.2);cursor:pointer;padding:0}.group-color-swatch[data-v-77a65192]:hover{transform:scale(1.1)}.groups-delete-summary[data-v-77a65192]{margin-bottom:var(--space-md, 16px)}@media(max-width:640px){.groups-list-header[data-v-77a65192],.group-row[data-v-77a65192]{grid-template-columns:20px 1fr auto}.groups-list-header .col-slug[data-v-77a65192],.group-row .col-slug[data-v-77a65192]{display:none}.group-color-swatch[data-v-77a65192]{width:32px;height:32px}}.onboarding-page{padding:var(--space-2xl) var(--space-3xl);max-width:860px}.onboarding-header{margin-bottom:var(--space-2xl)}.onboarding-intro{color:var(--color-text-muted);font-size:var(--font-size-base);margin:var(--space-sm) 0 0;max-width:620px;line-height:1.5}.onboarding-form{padding:0!important;overflow:hidden}.onboarding-section{padding:var(--space-2xl) var(--space-3xl)}.onboarding-section-title{font-size:var(--font-size-title);font-weight:700;color:var(--color-text-heading);margin:0 0 var(--space-xs) 0}.onboarding-section-desc{font-size:var(--font-size-base);color:var(--color-text-muted);margin:0 0 var(--space-xl) 0;line-height:1.5}.onboarding-divider{height:1px;background:var(--color-border)}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl) var(--space-3xl)}.fields-single{display:flex;flex-direction:column;gap:var(--space-xl)}.field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.field-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.field-required{color:var(--color-danger);margin-left:2px}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0;line-height:1.4}.field-error{font-size:var(--font-size-xs);color:var(--color-text-danger);margin:0}.hex-input-wrap{display:flex;align-items:center;gap:var(--space-sm)}.hex-input{font-family:var(--font-mono);letter-spacing:.08em;flex:1;min-width:0}.hex-counter{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;min-width:40px;text-align:right;transition:color var(--transition-fast)}.hex-counter.valid{color:var(--color-success)}.hex-toggle-btn{font-size:var(--font-size-xs);color:var(--color-text-muted);background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:3px 10px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:color var(--transition-fast),border-color var(--transition-fast)}.hex-toggle-btn:hover{color:var(--color-text-body);border-color:var(--color-text-muted)}.meta-loading{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);padding:var(--space-sm) 0;margin-bottom:var(--space-md)}.payload-preview{margin:0 var(--space-3xl) var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.payload-preview-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);background:var(--color-bg-inner);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.payload-preview-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.payload-json{margin:0;padding:var(--space-xl);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-body);background:var(--color-bg-subtle);line-height:1.6;overflow-x:auto;white-space:pre}.onboarding-footer{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-xl) var(--space-3xl);background:var(--color-bg-inner);border-top:1px solid var(--color-border);flex-wrap:wrap}.footer-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.advanced-toggle-btn{display:flex;align-items:center;gap:var(--space-sm);background:none;border:none;padding:0;cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-base);font-family:var(--font-sans);font-weight:600;text-align:left;transition:color var(--transition-fast)}.advanced-toggle-btn:hover{color:var(--color-text-body)}.advanced-error-badge{font-size:var(--font-size-xs);color:var(--color-warning);font-weight:600;margin-left:var(--space-sm)}.advanced-body{margin-top:var(--space-lg)}.advanced-reset-row{display:flex;justify-content:flex-end;margin-top:var(--space-xl)}.code-inline{font-family:var(--font-mono);font-size:var(--font-size-xs);background:var(--color-bg-hover);color:var(--color-info);padding:1px 5px;border-radius:var(--radius-sm)}@media(max-width:680px){.onboarding-page{padding:var(--space-lg)}.onboarding-section{padding:var(--space-xl) var(--space-lg)}.onboarding-footer{padding:var(--space-lg)}.fields-grid{grid-template-columns:1fr}.payload-preview{margin:0 var(--space-lg) var(--space-lg)}}.onboarding-sync-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-top:var(--space-md)}.onboarding-sync-hint{font-size:.85rem;color:var(--color-text-secondary, #6c757d);flex:1 1 280px;min-width:0}.ls-section{background:var(--color-white);border:1px solid var(--color-border, #2a2e3a);border-radius:var(--radius-lg, 8px);padding:var(--space-2xl, 24px);margin-bottom:var(--space-2xl, 24px)}.ls-section-title{font-size:var(--font-size-title, 1.2rem);color:var(--color-text-heading, #e2e5ed);margin:0 0 var(--space-xl, 20px) 0}.ls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-lg, 16px);margin-bottom:var(--space-lg, 16px)}.ls-field{display:flex;flex-direction:column;gap:var(--space-sm, 8px)}.ls-field-wide{grid-column:1 / -1}.ls-label{font-size:.85rem;font-weight:600;color:var(--color-text-body, #b4b9c8)}.ls-check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:var(--color-text-body, #b4b9c8);cursor:pointer}.ls-muted{font-size:.85rem;color:var(--color-text-muted, #646a80);margin:0}.ls-actions{display:flex;gap:var(--space-md, 12px);flex-wrap:wrap;margin-top:var(--space-lg, 16px)}.ls-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.ls-table{width:100%;border-collapse:collapse;font-size:.88rem}.ls-table th{text-align:left;padding:10px 12px;color:var(--color-text-muted, #646a80);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border, #2a2e3a)}.ls-table td{padding:12px;color:var(--color-text-body, #b4b9c8);border-bottom:1px solid var(--color-border, #2a2e3a);vertical-align:middle}.ls-row-actions{display:flex;gap:var(--space-sm, 8px);justify-content:flex-end;flex-wrap:wrap}@media(max-width:640px){.ls-col-network,.ls-col-nodes{display:none}}.ls-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.ls-badge-on{background:#28a74526;color:#3ddc84}.ls-badge-off{background:#646a8033;color:var(--color-text-muted, #646a80)}.login-page{width:100%;max-width:420px;padding:var(--space-lg);flex:1;display:flex;flex-direction:column;justify-content:center}.login-card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-lg);overflow:hidden}.login-card-header{background:var(--color-primary);padding:var(--space-2xl) var(--space-3xl);text-align:center}.login-card-title{color:#fff;font-size:1.4rem;font-weight:700;margin:0}.login-card-subtitle{color:#fffc;font-size:var(--font-size-base);margin:6px 0 0}.login-card-body{padding:var(--space-3xl);display:flex;flex-direction:column;gap:var(--space-lg)}.login-form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.login-input{width:100%;box-sizing:border-box}.login-submit-btn{width:100%;padding:10px;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:var(--space-sm)}.login-footer-note{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-faint);padding:var(--space-md) var(--space-3xl) var(--space-xl);border-top:1px solid var(--color-border-light)}.forgot-intro{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0}.forgot-back-link{display:block;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);text-decoration:none;margin-top:var(--space-xs);transition:color .15s}.forgot-back-link:hover{color:var(--color-primary)}:root{--color-primary: #ef5d2f;--color-primary-dark: #d44d22;--color-primary-darker: #b83d16;--color-secondary: #435c82;--color-secondary-dark: #334a6a;--color-success: #34d46e;--color-danger: #f04040;--color-warning: #f5b824;--color-warning-dark: #d9a012;--color-info: #20c8e0;--color-purple: #a080f0;--color-muted: #646a80;--color-white: #1c1f23;--color-bg-page: #141517;--color-bg-subtle: #191c22;--color-bg-hover: #22262e;--color-bg-active: #272c38;--color-bg-header: #1a1d23;--color-bg-header-hover: #1f2330;--color-bg-inner: #17191e;--color-border: #2c3040;--color-border-light: #222535;--color-border-dashed: #2c3040;--color-text-heading: #e2e5ed;--color-text-body: #b4b9c8;--color-text-secondary: #8e93a6;--color-text-muted: #646a80;--color-text-faint: #4a5068;--color-text-placeholder: #38405a;--color-text-tiny: #2e3548;--color-text-subtle: #7a8098;--color-text-danger: #f09090;--color-warning-bg: #291d06;--color-warning-border: #f5b824;--color-warning-text: #f5d490;--color-info-bg: #092030;--color-info-text: #3ccce8;--shadow-card: 0 2px 8px rgba(0, 0, 0, .5);--shadow-card-sm: 0 1px 4px rgba(0, 0, 0, .4);--shadow-card-lg: 0 4px 20px rgba(0, 0, 0, .7);--shadow-bar: 0 2px 6px rgba(0, 0, 0, .4);--shadow-sidebar: 2px 0 12px rgba(0, 0, 0, .6);--radius-sm: 5px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 10px;--radius-badge: 12px;--radius-full: 50%;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--space-4xl: 48px;--font-sans: "Yantramanav", "Segoe UI", system-ui, sans-serif;--font-mono: "Courier New", Courier, monospace;--font-size-xs: .7rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: .9rem;--font-size-body: .95rem;--font-size-label: 1rem;--font-size-title: 1.2rem;--font-size-h1: 1.8rem;--transition-bg: background .15s;--transition-color: color .15s;--transition-fast: .12s;--transition-base: .15s;--transition-slow: .25s;--spinner-size-sm: 16px;--spinner-size-lg: 28px;--sidebar-width: 220px}body{background:var(--color-bg-page);color:var(--color-text-body);font-family:var(--font-sans)}.page-title{font-size:var(--font-size-h1);font-weight:700;color:var(--color-text-heading);margin:0 0 var(--space-2xl) 0}.page-loading{display:flex;align-items:center;gap:14px;padding:var(--space-4xl) 0;color:var(--color-text-muted);font-size:var(--font-size-body)}.no-results{padding:var(--space-4xl) 0;text-align:center;color:var(--color-text-placeholder);font-style:italic}.card{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.card-sm{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card-sm);overflow:hidden;transition:box-shadow var(--transition-base)}.card-sm.expanded{box-shadow:var(--shadow-card-lg)}.card-toolbar{display:flex;align-items:center;gap:var(--space-lg);background:var(--color-white);padding:14px var(--space-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-bar);flex-wrap:wrap}.accordion-header{padding:var(--space-lg) var(--space-2xl);display:flex;align-items:center;gap:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-bg)}.accordion-header:hover{filter:brightness(1.08)}.accordion-header-primary{background:var(--color-bg-header);border-left:4px solid var(--color-primary)}.accordion-header-primary:hover{background:var(--color-bg-header-hover)}.accordion-header-secondary{background:var(--color-white);border-bottom:1px solid var(--color-border);padding:var(--space-md) var(--space-2xl) var(--space-md) var(--space-3xl)}.accordion-header-secondary:hover{background:var(--color-bg-hover)}.accordion-body{padding:var(--space-md) var(--space-2xl) var(--space-lg);background:var(--color-bg-inner)}.accordion-title-lg{font-size:var(--font-size-title);font-weight:600;color:var(--color-text-heading);flex:1}.accordion-title-md{font-size:var(--font-size-label);font-weight:600;color:var(--color-text-secondary);flex:1}.accordion-meta{font-size:var(--font-size-sm);color:var(--color-text-faint)}.chevron{display:inline-block;font-size:.85rem;transition:transform var(--transition-slow) ease;color:var(--color-text-faint);flex-shrink:0}.chevron.open{transform:rotate(180deg)}.chevron-sm{display:inline-block;font-size:.75rem;color:var(--color-text-tiny);transition:transform var(--transition-slow) ease;flex-shrink:0}.chevron-sm.open{transform:rotate(180deg)}.chevron-right{display:inline-block;font-size:.75rem;transition:transform var(--transition-slow) ease;flex-shrink:0}.chevron-right.open{transform:rotate(90deg)}.btn-icon{background:none;border:none;cursor:pointer;font-size:.95rem;color:var(--color-text-faint);padding:3px 5px;border-radius:var(--radius-sm);line-height:1;flex-shrink:0;transition:color var(--transition-base),background var(--transition-base)}.btn-icon:hover{color:var(--color-text-muted);background:var(--color-bg-hover)}.btn-icon:disabled{cursor:not-allowed;opacity:.4}.btn-icon:disabled:hover{background:none}.btn{padding:7px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base);font-weight:500;border:none;transition:var(--transition-bg)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:#2a2e3a;color:var(--color-text-body)}.btn-secondary:hover{background:#32384a}.btn-warning{background:var(--color-warning);color:#141517;font-weight:600}.btn-warning:hover{background:var(--color-warning-dark)}.btn-danger{background:var(--color-danger);color:#fff;border:none}.btn-danger:hover:not(:disabled){background:#c42828}.btn-danger:disabled{opacity:.65;cursor:not-allowed}.btn-sm{padding:5px 14px;font-size:.82rem}.btn-link{background:none;border:none;cursor:pointer;color:var(--color-primary);font-size:var(--font-size-base);font-weight:500;padding:var(--space-sm) 0;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-color)}.btn-link:hover{color:var(--color-primary-dark)}.btn:disabled{cursor:not-allowed;opacity:.65}@media(max-width:640px){.btn-icon,.icon-btn{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}}.input-text{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--color-text-body);background:var(--color-bg-subtle);outline:none;transition:border-color var(--transition-base),background var(--transition-base)}.input-text:focus{border-color:var(--color-primary);background:var(--color-bg-hover)}.input-text::placeholder{color:var(--color-text-placeholder)}.form-label{font-size:var(--font-size-md);font-weight:600;color:var(--color-text-secondary)}.form-row{display:flex;align-items:center;gap:var(--space-sm)}select{color:var(--color-text-body);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm)}select:focus{border-color:var(--color-primary);outline:none}select option{background:var(--color-bg-page);color:var(--color-text-body)}.badge{font-size:var(--font-size-xs);border-radius:var(--radius-pill);padding:2px 9px;font-weight:500;flex-shrink:0}.badge-neutral{background:#2a2e3a;color:var(--color-text-muted)}.badge-info{background:var(--color-info-bg);color:var(--color-info-text);border-radius:var(--radius-badge);padding:3px 10px}.badge-active{font-size:.78rem;background:var(--color-info-bg);color:var(--color-info-text);border-radius:var(--radius-badge);padding:3px 10px;font-weight:500}.status-dot{width:9px;height:9px;border-radius:var(--radius-full);flex-shrink:0}.status-dot.online{background:var(--color-success);box-shadow:0 0 0 2px #34d46e40}.status-dot.offline{background:var(--color-danger);box-shadow:0 0 0 2px #f0404040}.alert{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);font-size:var(--font-size-body)}.alert-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text)}.alert-warning-sm{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:.88rem;display:flex;align-items:center;gap:14px}.alert-success{background:#0d2e18;border:1px solid var(--color-success);color:#80e8a8;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:.88rem;display:flex;align-items:center;gap:var(--space-sm)}.spinner{width:var(--spinner-size-lg);height:var(--spinner-size-lg);border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .7s linear infinite;flex-shrink:0}.spinner-sm{width:var(--spinner-size-sm);height:var(--spinner-size-sm);border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-wrap{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm) 0}.skeleton-row{display:flex;gap:var(--space-md)}.skeleton-bar{border-radius:var(--radius-md);background:linear-gradient(90deg,#202430 25%,#252b38,#202430 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s infinite}.skeleton-bar.tall{height:200px;width:100%}.skeleton-bar.medium{height:140px;flex:1}.skeleton-bar.short{height:80px;width:100%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.item-list{display:flex;flex-direction:column;gap:6px}.item-row{display:flex;align-items:center;gap:var(--space-md);padding:11px var(--space-lg);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--color-white);transition:background var(--transition-fast)}.item-row:hover{background:var(--color-bg-hover)}.item-row.active{background:var(--color-bg-active);border-bottom:1px solid var(--color-border)}.last-seen{font-size:.78rem;color:var(--color-text-placeholder);margin-left:auto}.device-detail{padding:var(--space-lg)}@media(max-width:640px){.item-row{flex-wrap:wrap;row-gap:8px}.item-row .status-dot{order:1}.item-row .mono-primary{order:2}.item-row .chevron-sm{order:3;margin-left:auto}.item-row .mono-secondary{order:4;flex-basis:100%}.item-row .badge-neutral{order:5}.item-row .last-seen{order:6;margin-left:0}.item-row .spinner-sm{order:7}}.mono-primary{font-weight:700;font-size:var(--font-size-body);font-family:var(--font-mono);color:var(--color-text-heading);flex-shrink:0}.mono-secondary{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tiny);flex-shrink:0}.chart-block{margin-bottom:var(--space-lg)}.chart-title{font-size:.85rem;font-weight:600;color:var(--color-text-subtle);margin-bottom:6px;display:flex;align-items:baseline;gap:6px}.chart-units{font-size:var(--font-size-sm);color:var(--color-text-faint);font-weight:400}.chart-canvas-wrap{position:relative;width:100%}.chart-canvas-wrap canvas{display:block;width:100%!important;height:100%!important}.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}.chart-grid .chart-block{margin-bottom:0}.section-divider{margin-top:var(--space-sm);border-top:1px dashed var(--color-border-dashed);padding-top:var(--space-sm)}.toggle-wrap{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:34px;height:20px;flex-shrink:0}.toggle-wrap input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.toggle-track{width:34px;height:20px;border-radius:10px;background:var(--color-border);transition:background var(--transition-base);position:relative;flex-shrink:0}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:var(--radius-full);background:#fff;box-shadow:0 1px 3px #0006;transition:transform var(--transition-base)}.toggle-wrap input:checked+.toggle-track{background:var(--color-primary)}.toggle-wrap input:checked+.toggle-track:after{transform:translate(14px)}.modal-backdrop{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.modal-dialog{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:0 8px 40px #0009;width:100%;max-width:860px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-2xl);border-bottom:1px solid var(--color-border);background:var(--color-bg-header);flex-shrink:0}.modal-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-label);font-weight:600;color:var(--color-text-heading)}.modal-icon{font-size:1.1rem;color:var(--color-muted)}.modal-close-btn{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--color-text-faint);padding:var(--space-xs);border-radius:var(--radius-sm);line-height:1;transition:color var(--transition-base),background var(--transition-base)}.modal-close-btn:hover{color:var(--color-text-body);background:var(--color-bg-hover)}.modal-body{padding:var(--space-xl) var(--space-2xl);overflow-y:auto;flex:1}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);padding:var(--space-lg) var(--space-2xl);border-top:1px solid var(--color-border);background:var(--color-bg-header);flex-shrink:0}.modal-save-error{margin-top:0;margin-bottom:var(--space-lg)}.modal-spinner{display:inline-block;vertical-align:middle;margin-right:var(--space-sm)}.modal-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-lg) 0;line-height:1.5}.modal-device-name{font-family:var(--font-mono);font-size:var(--font-size-base);color:var(--color-primary);background:var(--color-bg-active);padding:2px 8px;border-radius:var(--radius-sm)}.city-accordion{margin-top:32px}.city-row{margin-bottom:18px;border-radius:8px;box-shadow:0 2px 8px #0000000a;background:var(--color-white);overflow:hidden}.city-header{font-size:1.25rem;font-weight:600;padding:18px 28px;background:var(--color-bg-header);cursor:pointer;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.city-header .arrow{font-size:1.2rem;margin-left:12px;transition:transform .2s}.city-header .arrow.open{transform:rotate(180deg)}.charts-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:24px;margin-top:32px;transition:all .3s}.charts-grid.fullscreen{display:block;position:static}.chart-container{background:var(--color-white);border-radius:8px;box-shadow:0 2px 8px #0000000a;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;cursor:pointer;transition:all .3s;width:100%;min-height:320px;position:relative;z-index:1}.chart-container.expanded{position:fixed;top:0;left:0;width:100vw!important;height:100vh!important;z-index:2000;background:var(--color-white);box-shadow:0 0 0 9999px #0003;margin:0!important;border-radius:0;display:flex;flex-direction:column;padding:48px 24px 24px;align-items:flex-start}.chart-canvas-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:260px;position:relative}.chart-container.expanded .chart-canvas-wrapper{margin-left:320px;width:calc(100vw - 380px);height:calc(100vh - 200px);max-height:calc(100vh - 200px)}.chart-canvas-wrapper canvas{width:100%!important;height:100%!important;max-width:900px;max-height:600px;min-height:180px;min-width:180px;background:var(--color-white);border-radius:8px;display:block;transition:all .3s}.close-btn{position:absolute;top:18px;right:24px;background:var(--color-white);border:none;font-size:2rem;color:var(--color-text-body);cursor:pointer;z-index:2100;border-radius:50%;width:40px;height:40px;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;justify-content:center;transition:background .2s}.close-btn:hover{background:#eee}.zoom-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#ef5d2f14;color:var(--color-primary);padding:8px 18px;border-radius:6px;font-size:1rem;z-index:2101;pointer-events:none;box-shadow:0 2px 8px #0000000a}.chart-panel{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:8px;padding:10px 0;background:var(--color-bg-header);border-radius:0 0 8px 8px;box-shadow:0 2px 8px #00000008}.chart-container.expanded .chart-panel{position:fixed;bottom:24px;left:320px;right:24px;z-index:2001;margin:0}.panel-btn{padding:6px 18px;border:none;border-radius:5px;background:var(--color-bg-hover);color:var(--color-text-body);font-size:1rem;cursor:pointer;transition:background .2s}.panel-btn.settings-btn{background:var(--color-primary);color:#fff}.panel-btn.alarms-btn{background:var(--color-danger);color:#fff;position:relative}.panel-btn.notifications-btn{background:var(--color-info);color:#fff}.panel-btn.empty-btn{background:var(--color-bg-hover);color:var(--color-text-tiny)}.panel-btn.reset-btn{background:#f8d568;color:var(--color-text-body);font-weight:700}.panel-btn:hover:not(.empty-btn){background:#0056b3}.panel-btn.notifications-btn:hover{background:#117a8b}.panel-btn.alarms-btn:hover{background:#a71d2a}.panel-btn.reset-btn:hover{background:#ffe699}.alarm-badge{position:absolute;top:-8px;right:-8px;background:var(--color-danger);color:#fff;font-size:.75rem;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;transition:all .2s ease}.alarm-badge.critical-alarm{background:var(--color-danger);animation:pulse 2s infinite;box-shadow:0 0 8px #dc354580}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.panel-btn.alarms-btn,.panel-btn.notifications-btn{position:relative}.notification-indicator{position:absolute;top:-4px;right:-4px;color:#dc3545;font-size:12px;font-weight:700;text-shadow:0 0 3px rgba(220,53,69,.8);animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{text-shadow:0 0 3px rgba(220,53,69,.8)}to{text-shadow:0 0 8px rgba(220,53,69,1),0 0 12px rgba(220,53,69,.6)}}.info-panel{background:var(--color-bg-subtle);border-radius:8px;box-shadow:0 1px 4px #0000000a;padding:24px 18px;display:flex;flex-direction:column;gap:12px;font-size:1rem;width:280px;flex-shrink:0}.chart-container.expanded .info-panel{position:absolute;left:24px;top:48px;width:280px;height:calc(100vh - 200px);overflow-y:auto}.info-row{display:flex;justify-content:space-between;align-items:center}.info-label{font-weight:500;color:var(--color-text-secondary)}.info-value{font-weight:600;color:var(--color-text-heading)}@media(max-width:768px){.charts-grid{grid-template-columns:1fr;grid-template-rows:auto}.chart-container.expanded{padding:24px 12px 12px}.chart-container.expanded .info-panel{position:relative;width:100%;height:auto;margin-bottom:16px}.chart-container.expanded .chart-canvas-wrapper{margin-left:0;width:100%}.chart-container.expanded .chart-panel{position:relative;left:auto;right:auto;bottom:auto;margin-top:16px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:3000}.settings-modal{background:var(--color-white);border-radius:12px;box-shadow:0 8px 32px #0003;min-width:400px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal-header h3{margin:0;color:var(--color-text-body);font-size:1.25rem}.close-modal-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-muted);width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-modal-btn:hover{background:var(--color-bg-hover)}.modal-content{padding:24px}.setting-group{margin-bottom:20px;display:flex;align-items:center;gap:12px}.setting-group label{font-weight:500;color:var(--color-text-secondary);min-width:100px}.setting-group input,.setting-group select{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:1rem}.setting-group input[type=checkbox]{flex:none;width:18px;height:18px}.alarm-modal{background:var(--color-white);border-radius:12px;box-shadow:0 8px 32px #0003;min-width:600px;max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.alarm-content{display:flex;flex-direction:column;flex:1;min-height:0}.alarm-filters{display:flex;gap:8px;padding:20px 24px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-subtle)}.filter-btn{padding:8px 16px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-white);color:var(--color-text-muted);font-size:.9rem;cursor:pointer;transition:all .2s;font-weight:500}.filter-btn:hover{background:var(--color-bg-hover);border-color:var(--color-text-faint)}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.filter-btn.critical.active{background:var(--color-danger);border-color:var(--color-danger)}.filter-btn.warning.active{background:var(--color-warning);color:#141517;border-color:var(--color-warning)}.filter-btn.info.active{background:var(--color-info);border-color:var(--color-info)}.alarm-list{flex:1;overflow-y:auto;padding:16px 24px;max-height:400px}.alarm-item{background:var(--color-white);border:1px solid var(--color-border);border-radius:8px;padding:16px;margin-bottom:12px;transition:all .2s;position:relative}.alarm-item:hover{box-shadow:0 2px 8px #00000014}.alarm-item.acknowledged{background:var(--color-bg-subtle);opacity:.7}.alarm-item.critical{border-left:4px solid var(--color-danger)}.alarm-item.warning{border-left:4px solid var(--color-warning)}.alarm-item.info{border-left:4px solid var(--color-info)}.alarm-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.alarm-severity-badge{font-size:.75rem;font-weight:700;padding:4px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.alarm-item.critical .alarm-severity-badge{background:var(--color-danger);color:#fff}.alarm-item.warning .alarm-severity-badge{background:#ffc107;color:var(--color-text-body)}.alarm-item.info .alarm-severity-badge{background:var(--color-info);color:#fff}.alarm-time{font-size:.9rem;color:var(--color-text-muted);font-weight:500}.alarm-message{font-size:1rem;color:var(--color-text-body);margin-bottom:8px;font-weight:500;line-height:1.4}.alarm-source{font-size:.9rem;color:var(--color-text-muted);margin-bottom:12px}.alarm-actions{display:flex;gap:8px;justify-content:flex-end}.alarm-action-btn{padding:6px 12px;border:none;border-radius:4px;font-size:.85rem;cursor:pointer;transition:background .2s;font-weight:500}.alarm-action-btn.acknowledge{background:var(--color-success);color:#fff}.alarm-action-btn.acknowledge:hover{background:#2ab85e}.alarm-action-btn.dismiss{background:#6c757d;color:#fff}.alarm-action-btn.dismiss:hover{background:#545b62}.no-alarms{text-align:center;padding:40px 20px;color:var(--color-text-muted)}.no-alarms p{margin:0;font-size:1.1rem}@media(max-width:768px){.alarm-modal{min-width:95vw;margin:10px}.alarm-filters{flex-wrap:wrap;padding:16px}.filter-btn{flex:1;min-width:80px}.alarm-actions{flex-direction:column}.alarm-action-btn{width:100%}}.notification-modal{background:var(--color-white);border-radius:12px;box-shadow:0 8px 32px #0003;min-width:700px;max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.notification-content{display:flex;flex-direction:column;flex:1;min-height:0;max-height:70vh;overflow-y:auto;padding:0}.notification-section{padding:20px 24px;border-bottom:1px solid var(--color-border)}.notification-section:last-child{border-bottom:none}.notification-section h4{margin:0 0 16px;color:var(--color-text-body);font-size:1.1rem;font-weight:600}.notification-setting{margin-bottom:20px}.notification-setting:last-child{margin-bottom:0}.setting-label{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--color-text-body);margin-bottom:4px;cursor:pointer}.setting-checkbox{width:18px;height:18px;accent-color:var(--color-primary)}.setting-description{color:var(--color-text-muted);font-size:.9rem;margin-left:26px;margin-bottom:8px}.threshold-inputs{margin-left:26px;margin-top:12px;display:flex;flex-direction:column;gap:12px}.threshold-input-group{display:flex;align-items:center;gap:12px}.threshold-input-group label{min-width:140px;font-weight:500;color:var(--color-text-secondary);font-size:.9rem}.threshold-input-group input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;max-width:200px}.frequency-select{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-white);min-width:150px}.threshold-color-select{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-white);min-width:120px;cursor:pointer}.threshold-color-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #ef5d2f4d}.thresholds-container{margin-left:26px;margin-top:12px}.thresholds-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.thresholds-header span{font-weight:500;color:var(--color-text-secondary);font-size:.9rem}.add-threshold-btn{width:24px;height:24px;border-radius:50%;background:var(--color-success);color:#fff;border:none;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.add-threshold-btn:hover{background:#2ab85e}.threshold-line{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:8px;background:var(--color-bg-subtle);border-radius:6px;border:1px solid var(--color-border)}.threshold-name-input{width:110px;padding:6px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:.9rem;background:var(--color-white)}.threshold-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #ef5d2f4d}.threshold-value-input{width:85px;padding:6px 10px;border:1px solid var(--color-border);border-radius:4px;font-size:.9rem;background:var(--color-white)}.threshold-value-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #ef5d2f4d}.threshold-color-select-inline{width:85px;padding:6px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:.85rem;background:var(--color-white);cursor:pointer}.threshold-color-select-inline:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #ef5d2f4d}.remove-threshold-btn{width:22px;height:22px;border-radius:50%;background:var(--color-danger);color:#fff;border:none;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}.remove-threshold-btn:hover{background:#c82333}.section-header-with-action{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header-with-action h4{margin:0}.template-btn{padding:6px 12px;background:var(--color-info);color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s}.template-btn:hover{background:#117a8b}.template-actions{display:flex;gap:8px}.save-template-btn{padding:6px 12px;background:var(--color-success);color:#fff;border:none;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s}.save-template-btn:hover{background:#2ab85e}.template-modal{background:var(--color-white);border-radius:12px;box-shadow:0 8px 32px #0003;min-width:800px;max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.template-content{flex:1;padding:24px;overflow-y:auto}.template-controls{display:flex;align-items:center;gap:24px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.template-filter-group,.template-sort-group{display:flex;align-items:center;gap:8px}.sort-label{font-weight:500;color:var(--color-text-secondary);font-size:.9rem;white-space:nowrap}.template-sort-select,.template-filter-select{padding:6px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-white);cursor:pointer;min-width:140px}.template-sort-select:focus,.template-filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #ef5d2f4d}.template-count{font-size:.9rem;color:var(--color-text-muted);font-weight:500;margin-left:auto;padding:4px 8px;background:var(--color-bg-subtle);border-radius:4px;border:1px solid var(--color-border)}.no-templates{text-align:center;padding:40px 20px;color:var(--color-text-muted);background:var(--color-bg-subtle);border-radius:8px;border:1px solid var(--color-border)}.no-templates p{margin:0;font-size:1rem}.loading-state,.error-state{text-align:center;padding:40px;color:var(--color-text-muted)}.error-state button{margin-top:16px}.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.template-card{background:var(--color-bg-subtle);border:2px solid var(--color-border);border-radius:8px;padding:20px;cursor:pointer;transition:all .2s}.template-card:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #ef5d2f26;transform:translateY(-2px)}.template-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.template-card h4{margin:0;color:var(--color-text-body);font-size:1.1rem;flex:1}.template-meta{display:flex;align-items:center;gap:8px}.template-category{background:#e9ecef;color:#495057;padding:2px 6px;border-radius:3px;font-size:.75rem;font-weight:500}.delete-template-btn{width:20px;height:20px;border-radius:50%;background:var(--color-danger);color:#fff;border:none;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.delete-template-btn:hover{background:#c82333}.template-description{color:var(--color-text-muted);font-size:.9rem;margin:0 0 16px;line-height:1.4}.template-preview{display:flex;flex-direction:column;gap:8px}.preview-threshold{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary)}.preview-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.save-template-modal{background:var(--color-white);border-radius:12px;box-shadow:0 8px 32px #0003;min-width:500px;max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.save-template-content{padding:24px;flex:1;overflow-y:auto}.save-template-input,.save-template-select{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:1rem}.save-template-textarea{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;resize:vertical;font-family:inherit}.save-template-input:focus,.save-template-select:focus,.save-template-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #ef5d2f4d}.template-preview-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-border)}.template-preview-section h4{margin:0 0 12px;color:var(--color-text-body);font-size:1rem}@media(max-width:768px){.notification-modal{min-width:95vw;margin:10px;max-height:85vh}.threshold-input-group{flex-direction:column;align-items:stretch;gap:4px}.threshold-input-group label{min-width:auto}.threshold-input-group input{max-width:none}.notification-section{padding:16px 20px}.threshold-inputs,.setting-description,.thresholds-container{margin-left:0}.threshold-line{flex-direction:column;align-items:stretch;gap:8px;padding:12px;background:var(--color-bg-subtle);border-radius:6px;margin-bottom:12px;border:1px solid var(--color-border)}.threshold-name-input,.threshold-value-input,.threshold-color-select-inline{width:100%}.template-modal{min-width:95vw;margin:10px}.template-grid{grid-template-columns:1fr}.template-card{padding:16px}.section-header-with-action,.template-actions{flex-direction:column;align-items:stretch;gap:8px}.template-btn,.save-template-btn{align-self:flex-start}.save-template-modal{min-width:95vw;margin:10px}.template-header{flex-direction:column;align-items:flex-start;gap:4px}.template-meta{align-self:flex-end}.template-controls{flex-direction:column;align-items:stretch;gap:12px}.template-filter-group,.template-sort-group{flex-direction:column;align-items:stretch;gap:4px}.template-sort-select,.template-filter-select{min-width:auto}.template-count{margin-left:0;text-align:center}}
