.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-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}.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)}.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{padding:20px 20px 16px;border-bottom:1px solid #1e2535;display:flex;align-items:center;gap:10px;flex-shrink:0}.sidebar-brand-name{font-size:.85rem;font-weight:700;color:var(--color-text-heading);letter-spacing:.04em;text-transform:uppercase}.sidebar-brand-accent{display:block;width:28px;height:3px;background:var(--color-primary);border-radius:2px;margin-top:4px}.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}.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)}.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}.date-filter-bar{margin-bottom:24px}.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}.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}.last-seen{font-size:.78rem;color:var(--color-text-placeholder);margin-left:auto}.device-detail{padding:var(--space-lg)}.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)}.project-section{border-top:1px solid var(--color-border-light)}.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)}.sensor-page h1{font-size:var(--font-size-h1);font-weight:700;color:var(--color-text-heading);margin:0 0 var(--space-2xl) 0}.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)}.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.8fr 2fr 1.3fr 84px 96px;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}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-white);cursor:pointer;font-size:.9rem;line-height:1;color:var(--color-text-muted);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 1fr 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 80px 72px}.clients-list-header .col-email,.client-row .col-email{display:none}}.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)}.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)}}: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{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}.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)}.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}}
