@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined";.settings-modal[data-v-7bdd6bcc]{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 3rem);max-height:calc(100dvh - 3rem);padding-bottom:0}.settings-modal__header[data-v-7bdd6bcc]{flex-shrink:0}.settings-content[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:1rem;padding:.75rem 1.5rem 1.5rem;flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.settings-tabs[data-v-7bdd6bcc]{display:flex;gap:.25rem;border-bottom:1px solid var(--border-color, #e2e8f0);padding:0 1.5rem;flex-shrink:0}.settings-tab[data-v-7bdd6bcc]{padding:.5rem .75rem;background:transparent;border:none;cursor:pointer;font-size:.9rem;font-weight:500;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .2s,border-color .2s}.settings-tab[data-v-7bdd6bcc]:hover{color:#0f172a}.settings-tab--active[data-v-7bdd6bcc]{color:#3b82f6;border-bottom-color:#3b82f6}.settings-tab-content[data-v-7bdd6bcc]{flex:1;min-height:0}.settings-layout[data-v-7bdd6bcc]{display:flex;gap:2rem}.settings-avatar[data-v-7bdd6bcc]{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.75rem;width:140px}.settings-avatar .avatar-upload__preview[data-v-7bdd6bcc]{width:100px;height:100px}.settings-avatar .avatar-upload__buttons[data-v-7bdd6bcc]{display:flex;flex-direction:column;align-items:center;gap:.5rem}.settings-avatar .avatar-upload__button[data-v-7bdd6bcc]{font-size:.8125rem;padding:.375rem .75rem}.settings-fields[data-v-7bdd6bcc]{flex:1;display:flex;flex-direction:column;gap:1rem}.field-group[data-v-7bdd6bcc]{display:flex;align-items:flex-end;gap:.75rem}.field-group .field[data-v-7bdd6bcc]{flex:1}.field-group .secondary[data-v-7bdd6bcc]{flex-shrink:0;margin-bottom:0}.field-hint[data-v-7bdd6bcc]{display:block;margin-top:.25rem;font-size:.8125rem;color:var(--text-secondary, #64748b)}.password-section[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.75rem}.password-section .secondary[data-v-7bdd6bcc]{align-self:flex-start}.notifications-section[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:1rem}.section-title[data-v-7bdd6bcc]{font-size:.875rem;font-weight:600;margin:0 0 .25rem;color:var(--text-primary, #1e293b)}.telegram-section[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.5rem}.telegram-header[data-v-7bdd6bcc]{display:flex;align-items:center;justify-content:space-between}.telegram-count[data-v-7bdd6bcc]{font-size:.75rem;color:var(--text-secondary, #64748b);background:var(--bg-secondary, #f1f5f9);padding:.125rem .5rem;border-radius:1rem}.telegram-accounts-list[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.25rem}.telegram-account-item[data-v-7bdd6bcc]{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;background:var(--bg-secondary, #f1f5f9);border-radius:.25rem}.telegram-username[data-v-7bdd6bcc]{font-weight:500;color:var(--color-primary, #3b82f6)}.telegram-deeplink[data-v-7bdd6bcc]{display:inline-flex;align-items:center;gap:.25rem;color:var(--color-primary, #3b82f6);text-decoration:none;font-weight:500}.telegram-deeplink[data-v-7bdd6bcc]:hover{text-decoration:underline}.telegram-hint[data-v-7bdd6bcc]{margin-top:.5rem}.telegram-code-display[data-v-7bdd6bcc]{display:block;background:var(--bg-secondary, #f1f5f9);padding:.5rem .75rem;border-radius:.25rem;font-family:monospace;font-size:.875rem;-webkit-user-select:all;user-select:all;cursor:pointer}.notification-prefs[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.5rem}.prefs-table[data-v-7bdd6bcc]{width:100%;border-collapse:collapse;font-size:.875rem;margin:.5rem 0}.prefs-table th[data-v-7bdd6bcc],.prefs-table td[data-v-7bdd6bcc]{padding:.5rem;text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0)}.prefs-table th[data-v-7bdd6bcc]{font-weight:500;color:var(--text-secondary, #64748b);font-size:.8125rem}.prefs-table td[data-v-7bdd6bcc]:not(:first-child){text-align:center}.prefs-table th[data-v-7bdd6bcc]:not(:first-child){text-align:center}.prefs-table input[type=checkbox][data-v-7bdd6bcc]{width:1rem;height:1rem;cursor:pointer;accent-color:#3b82f6}.prefs-table input[type=checkbox][data-v-7bdd6bcc]:disabled{opacity:.5;cursor:not-allowed}.notification-prefs .secondary[data-v-7bdd6bcc]{align-self:flex-start;margin-top:.5rem}.alert--compact[data-v-7bdd6bcc]{padding:.375rem .625rem;font-size:.8125rem}.settings-footer[data-v-7bdd6bcc]{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e2e8f0);flex-shrink:0;background:var(--color-bg-primary, white)}.settings-footer .alert[data-v-7bdd6bcc]{width:100%}@media(max-width:640px){.settings-tabs[data-v-7bdd6bcc]{gap:0;padding:0 1rem}.settings-tab[data-v-7bdd6bcc]{flex:1;text-align:center;padding:.5rem .25rem;font-size:.8rem}.settings-layout[data-v-7bdd6bcc]{flex-direction:column;gap:1.5rem}.settings-avatar[data-v-7bdd6bcc]{width:100%;flex-direction:row;gap:1rem}.settings-avatar .avatar-upload__preview[data-v-7bdd6bcc]{width:80px;height:80px}.settings-avatar .avatar-upload__buttons[data-v-7bdd6bcc]{flex-direction:row}.field-group[data-v-7bdd6bcc]{flex-direction:column;align-items:stretch}.prefs-table[data-v-7bdd6bcc]{font-size:.8125rem}.prefs-table th[data-v-7bdd6bcc],.prefs-table td[data-v-7bdd6bcc]{padding:.375rem .25rem}}.api-section[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:1rem}.api-section__create-btn[data-v-7bdd6bcc]{align-self:flex-start;display:inline-flex;align-items:center;gap:.375rem}.api-section__create-btn .material-symbols-outlined[data-v-7bdd6bcc]{font-size:1rem}.api-tokens-loading[data-v-7bdd6bcc]{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary, #64748b);font-size:.875rem}.api-tokens-loading__icon[data-v-7bdd6bcc]{font-size:1.25rem;animation:spin-7bdd6bcc 1s linear infinite}@keyframes spin-7bdd6bcc{to{transform:rotate(360deg)}}.api-tokens-empty[data-v-7bdd6bcc]{padding:1.5rem 0;color:var(--text-secondary, #64748b);font-size:.875rem;text-align:center}.api-tokens-list[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.625rem}.api-token-card[data-v-7bdd6bcc]{border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.4rem;transition:opacity .2s}.api-token-card--revoked[data-v-7bdd6bcc]{opacity:.5}.api-token-card__header[data-v-7bdd6bcc]{display:flex;align-items:center;gap:.75rem}.api-token-card__name[data-v-7bdd6bcc]{font-weight:600;font-size:.875rem;flex:1;color:var(--text-primary, #1e293b)}.api-token-card__revoked-label[data-v-7bdd6bcc]{font-size:.75rem;color:var(--text-secondary, #64748b);background:var(--bg-secondary, #f1f5f9);padding:.1rem .5rem;border-radius:6px}.api-token-card__revoke-btn[data-v-7bdd6bcc]{flex-shrink:0;font-size:.8125rem;padding:.25rem .625rem}.api-token-card__meta[data-v-7bdd6bcc]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.api-token-card__prefix[data-v-7bdd6bcc]{font-family:monospace;font-size:.8125rem;color:var(--text-secondary, #64748b);background:var(--bg-secondary, #f1f5f9);padding:.1rem .35rem;border-radius:4px}.api-token-card__scopes[data-v-7bdd6bcc]{display:flex;flex-wrap:wrap;gap:.25rem}.api-scope-tag[data-v-7bdd6bcc]{font-size:.7rem;background:#f1f5f9;color:#475569;padding:.1rem .35rem;border-radius:6px;font-weight:500}.api-token-card__dates[data-v-7bdd6bcc]{display:flex;gap:1rem;font-size:.75rem;color:var(--text-secondary, #64748b);flex-wrap:wrap}.api-token-card__never-used[data-v-7bdd6bcc]{font-style:italic}.api-token-created[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid #fcd34d;background:#fffbeb;border-radius:8px}.api-token-created__warning[data-v-7bdd6bcc]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#b45309;margin:0}.api-token-created__warning .material-symbols-outlined[data-v-7bdd6bcc]{font-size:1.125rem;flex-shrink:0}.api-token-created__value[data-v-7bdd6bcc]{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.5rem .75rem}.api-token-value[data-v-7bdd6bcc]{font-family:monospace;font-size:.8125rem;word-break:break-all;flex:1;color:#1e293b;-webkit-user-select:all;user-select:all}.api-token-created .secondary[data-v-7bdd6bcc]{align-self:flex-start}.api-create-form[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.875rem;padding:1rem;border:1px dashed var(--border-color, #e2e8f0);border-radius:8px}.api-scopes-label[data-v-7bdd6bcc]{font-size:.875rem;font-weight:500;color:var(--text-primary, #1e293b)}.api-scope-groups[data-v-7bdd6bcc]{display:flex;flex-direction:column;gap:.625rem}.api-scope-group[data-v-7bdd6bcc]{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem .75rem}.api-scope-group__label[data-v-7bdd6bcc]{font-size:.8125rem;font-weight:500;color:var(--text-secondary, #64748b);min-width:90px;flex-shrink:0}.api-scope-checkbox[data-v-7bdd6bcc]{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;cursor:pointer;color:var(--text-primary, #1e293b)}.api-scope-checkbox input[type=checkbox][data-v-7bdd6bcc]{width:.875rem;height:.875rem;cursor:pointer}.api-create-form__actions[data-v-7bdd6bcc]{display:flex;gap:.625rem;align-items:center}@media(max-width:640px){.api-token-card__dates[data-v-7bdd6bcc]{gap:.5rem}.api-scope-group[data-v-7bdd6bcc]{flex-direction:column;align-items:flex-start;gap:.25rem}.api-scope-group__label[data-v-7bdd6bcc]{min-width:unset}.api-create-form__actions[data-v-7bdd6bcc]{flex-direction:column;align-items:stretch}}.api-token-card__edit-btn[data-v-7bdd6bcc]{flex-shrink:0;font-size:.8125rem;padding:.25rem .625rem}.api-token-edit[data-v-7bdd6bcc]{padding:.5rem 0}.api-token-edit .form-group[data-v-7bdd6bcc]{margin-bottom:.6rem}.api-token-edit .form-label[data-v-7bdd6bcc]{display:block;font-size:.8rem;font-weight:600;margin-bottom:.3rem;color:var(--text-muted, #64748b)}.api-token-edit .form-input[data-v-7bdd6bcc]{width:100%;max-width:320px;padding:.4rem .6rem;border:1px solid var(--border, #e2e8f0);border-radius:6px;font-size:.875rem;box-sizing:border-box}.api-token-edit__actions[data-v-7bdd6bcc]{display:flex;gap:.5rem;margin-top:.5rem}@media(max-width:520px){.modal-backdrop[data-v-7bdd6bcc]{padding:0;align-items:stretch}.settings-modal[data-v-7bdd6bcc]{max-width:100%;width:100%;margin:0;border-radius:0;max-height:100vh;max-height:100dvh;height:100vh;height:100dvh}.settings-tabs[data-v-7bdd6bcc]{padding:0 1rem}.settings-content[data-v-7bdd6bcc]{flex:1;min-height:0;padding:.75rem 1rem 1rem}.settings-header[data-v-7bdd6bcc]{padding-top:calc(1rem + env(safe-area-inset-top,0px))}.settings-footer[data-v-7bdd6bcc]{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}}.notification-dropdown[data-v-e145cfe4]{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 20px 50px #0f172a26;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.notification-dropdown__header[data-v-e145cfe4]{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #e2e8f0}.notification-dropdown__title[data-v-e145cfe4]{font-size:.95rem;font-weight:700;color:#0f172a;margin:0}.notification-dropdown__mark-all[data-v-e145cfe4]{font-size:.8rem;color:#3b82f6;background:none;border:none;cursor:pointer;padding:0}.notification-dropdown__mark-all[data-v-e145cfe4]:hover{text-decoration:underline}.notification-dropdown__tabs[data-v-e145cfe4]{display:flex;border-bottom:1px solid #e2e8f0}.notification-dropdown__tab[data-v-e145cfe4]{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.6rem .5rem;font-size:.8rem;font-weight:500;color:#64748b;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s}.notification-dropdown__tab[data-v-e145cfe4]:hover{color:#0f172a;background:#f8fafc}.notification-dropdown__tab.--active[data-v-e145cfe4]{color:#3b82f6;border-bottom-color:#3b82f6;font-weight:600}.tab-badge[data-v-e145cfe4]{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;color:#fff;font-size:.6rem;font-weight:700;border-radius:9px;line-height:1}.tab-badge--billing[data-v-e145cfe4]{background:#3b82f6}.tab-badge--system[data-v-e145cfe4]{background:#ef4444}.notification-dropdown__content[data-v-e145cfe4]{flex:1;overflow-y:auto;max-height:400px}.notification-dropdown__loading[data-v-e145cfe4]{display:flex;align-items:center;justify-content:center;padding:2rem}.notification-dropdown__spinner[data-v-e145cfe4]{width:24px;height:24px;border:2px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin-e145cfe4 .8s linear infinite}@keyframes spin-e145cfe4{to{transform:rotate(360deg)}}.notification-dropdown__empty[data-v-e145cfe4]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#64748b}.notification-dropdown__empty .material-symbols-outlined[data-v-e145cfe4]{font-size:48px;margin-bottom:.5rem;opacity:.5}.notification-dropdown__empty p[data-v-e145cfe4]{margin:0;font-size:.9rem}.notification-dropdown__list[data-v-e145cfe4]{list-style:none;margin:0;padding:0}.notification-item[data-v-e145cfe4]{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .15s;position:relative}.notification-item[data-v-e145cfe4]:last-child{border-bottom:none}.notification-item[data-v-e145cfe4]:hover{background:#f8fafc}.notification-item--unread[data-v-e145cfe4]{background:#f0f9ff}.notification-item--unread[data-v-e145cfe4]:hover{background:#e2e8f0}.notification-item__icon[data-v-e145cfe4]{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:20px}.notification-item--warning .notification-item__icon[data-v-e145cfe4],.notification-item--payment_overdue .notification-item__icon[data-v-e145cfe4]{background:#fef3c7;color:#b45309}.notification-item--block_notice .notification-item__icon[data-v-e145cfe4]{background:#fee2e2;color:#dc2626}.notification-item--suspension_notice .notification-item__icon[data-v-e145cfe4]{background:#ffedd5;color:#c2410c}.notification-item--unblock_notice .notification-item__icon[data-v-e145cfe4]{background:#dcfce7;color:#16a34a}.notification-item--invoice_issued .notification-item__icon[data-v-e145cfe4],.notification-item--payment_reminder .notification-item__icon[data-v-e145cfe4]{background:#e2e8f0;color:#0284c7}.notification-item--custom .notification-item__icon[data-v-e145cfe4]{background:#f1f5f9;color:#475569}.notification-item--geozone_enter .notification-item__icon[data-v-e145cfe4],.notification-item--geozone_exit .notification-item__icon[data-v-e145cfe4]{background:#e2e8f0;color:#2563eb}.notification-item--tracker_loss .notification-item__icon[data-v-e145cfe4]{background:#fee2e2;color:#dc2626}.notification-item--tracker_online .notification-item__icon[data-v-e145cfe4]{background:#dcfce7;color:#16a34a}.notification-item--sensor_trigger .notification-item__icon[data-v-e145cfe4]{background:#fef3c7;color:#b45309}.notification-item--alarm_trigger .notification-item__icon[data-v-e145cfe4]{background:#fee2e2;color:#dc2626}.notification-item__content[data-v-e145cfe4]{flex:1;min-width:0}.notification-item__title[data-v-e145cfe4]{display:block;font-size:.85rem;font-weight:600;color:#0f172a;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-item__message[data-v-e145cfe4]{font-size:.8rem;color:#475569;margin:0 0 .35rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-item__time[data-v-e145cfe4]{font-size:.7rem;color:#64748b}.notification-item__dot[data-v-e145cfe4]{position:absolute;top:1rem;right:1rem;width:8px;height:8px;background:#3b82f6;border-radius:50%}@media(max-width:768px){.notification-dropdown[data-v-e145cfe4]{position:fixed;top:60px;left:8px;right:8px;width:auto;max-height:calc(100vh - 80px)}}.notification-modal-overlay[data-v-43b2eb49]{position:fixed;inset:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:10100;padding:1rem}.notification-modal[data-v-43b2eb49]{background:#fff;border-radius:12px;box-shadow:0 25px 50px #0f172a40;width:100%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.notification-modal__header[data-v-43b2eb49]{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.notification-modal__icon[data-v-43b2eb49]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:22px;flex-shrink:0}.notification-modal__icon--warning[data-v-43b2eb49],.notification-modal__icon--payment_overdue[data-v-43b2eb49]{background:#fef3c7;color:#b45309}.notification-modal__icon--block_notice[data-v-43b2eb49]{background:#fee2e2;color:#dc2626}.notification-modal__icon--suspension_notice[data-v-43b2eb49]{background:#ffedd5;color:#c2410c}.notification-modal__icon--unblock_notice[data-v-43b2eb49]{background:#dcfce7;color:#16a34a}.notification-modal__icon--invoice_issued[data-v-43b2eb49],.notification-modal__icon--payment_reminder[data-v-43b2eb49]{background:#e2e8f0;color:#0284c7}.notification-modal__icon--custom[data-v-43b2eb49]{background:#f1f5f9;color:#64748b}.notification-modal__icon--geozone_enter[data-v-43b2eb49],.notification-modal__icon--geozone_exit[data-v-43b2eb49]{background:#e2e8f0;color:#2563eb}.notification-modal__icon--tracker_loss[data-v-43b2eb49]{background:#fee2e2;color:#dc2626}.notification-modal__icon--tracker_online[data-v-43b2eb49]{background:#dcfce7;color:#16a34a}.notification-modal__icon--sensor_trigger[data-v-43b2eb49]{background:#fef3c7;color:#b45309}.notification-modal__icon--alarm_trigger[data-v-43b2eb49]{background:#fee2e2;color:#dc2626}.notification-modal__title[data-v-43b2eb49]{flex:1;font-size:1rem;font-weight:700;color:#0f172a;margin:0}.notification-modal__close[data-v-43b2eb49]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:8px;cursor:pointer;color:#64748b;transition:all .15s;flex-shrink:0}.notification-modal__close[data-v-43b2eb49]:hover{background:#e2e8f0;color:#0f172a}.notification-modal__body[data-v-43b2eb49]{flex:1;padding:1.25rem;overflow-y:auto;-webkit-overflow-scrolling:touch}.notification-modal__message[data-v-43b2eb49]{font-size:.95rem;line-height:1.6;color:#334155}.notification-modal__message[data-v-43b2eb49] p{margin:0 0 .75rem}.notification-modal__message[data-v-43b2eb49] p:last-child{margin-bottom:0}.notification-modal__message[data-v-43b2eb49] strong,.notification-modal__message[data-v-43b2eb49] b{font-weight:600;color:#0f172a}.notification-modal__message[data-v-43b2eb49] a{color:#3b82f6;text-decoration:underline}.notification-modal__message[data-v-43b2eb49] ul,.notification-modal__message[data-v-43b2eb49] ol{margin:.5rem 0;padding-left:1.5rem}.notification-modal__message[data-v-43b2eb49] li{margin-bottom:.25rem}.notification-modal__footer[data-v-43b2eb49]{padding:.75rem 1.25rem;border-top:1px solid #e2e8f0;background:#f8fafc}.notification-modal__time[data-v-43b2eb49]{font-size:.8rem;color:#64748b}@media(max-width:480px){.notification-modal-overlay[data-v-43b2eb49]{padding:0;align-items:stretch}.notification-modal[data-v-43b2eb49]{max-width:none;max-height:100vh;max-height:100dvh;height:100vh;height:100dvh;border-radius:0}.notification-modal__body[data-v-43b2eb49]{flex:1;min-height:0}.notification-modal__header[data-v-43b2eb49]{padding-top:calc(.75rem + env(safe-area-inset-top,0px))}.notification-modal__footer[data-v-43b2eb49]{padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}}.notification-bell[data-v-ba0c429b]{position:relative}.notification-bell__btn[data-v-ba0c429b]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:8px;color:#64748b;cursor:pointer;transition:all .15s;position:relative}.notification-bell__btn[data-v-ba0c429b]:hover,.notification-bell__btn--active[data-v-ba0c429b]{background:#f1f5f9;color:#0f172a}.notification-bell__btn .material-symbols-outlined[data-v-ba0c429b]{font-size:24px}.notification-bell__badge[data-v-ba0c429b]{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center;line-height:1}.warning-banner[data-v-3cf3f444]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:0;gap:1rem}.warning-banner--warning[data-v-3cf3f444]{background:linear-gradient(90deg,#fef3c7,#fde68a);border-bottom:1px solid #f59e0b}.warning-banner--error[data-v-3cf3f444]{background:linear-gradient(90deg,#fee2e2,#fecaca);border-bottom:1px solid #ef4444}.warning-banner--suspended[data-v-3cf3f444]{background:linear-gradient(90deg,#fef3c7,#fed7aa);border-bottom:1px solid #f97316}.warning-banner--info[data-v-3cf3f444]{background:linear-gradient(90deg,#e2e8f0,#cbd5e1);border-bottom:1px solid #3b82f6}.warning-banner__content[data-v-3cf3f444]{display:flex;align-items:center;gap:.75rem;flex:1;cursor:pointer}.warning-banner__content[data-v-3cf3f444]:hover{opacity:.85}.warning-banner__icon[data-v-3cf3f444]{font-size:24px;flex-shrink:0}.warning-banner--warning .warning-banner__icon[data-v-3cf3f444]{color:#b45309}.warning-banner--error .warning-banner__icon[data-v-3cf3f444]{color:#dc2626}.warning-banner--suspended .warning-banner__icon[data-v-3cf3f444]{color:#c2410c}.warning-banner--info .warning-banner__icon[data-v-3cf3f444]{color:#2563eb}.warning-banner__text[data-v-3cf3f444]{display:flex;flex-direction:column;gap:.15rem}.warning-banner__title[data-v-3cf3f444]{font-size:.85rem;font-weight:700}.warning-banner--warning .warning-banner__title[data-v-3cf3f444]{color:#92400e}.warning-banner--error .warning-banner__title[data-v-3cf3f444]{color:#991b1b}.warning-banner--suspended .warning-banner__title[data-v-3cf3f444]{color:#9a3412}.warning-banner--info .warning-banner__title[data-v-3cf3f444]{color:#1e40af}.warning-banner__message[data-v-3cf3f444]{font-size:.85rem}.warning-banner--warning .warning-banner__message[data-v-3cf3f444]{color:#78350f}.warning-banner--error .warning-banner__message[data-v-3cf3f444]{color:#7f1d1d}.warning-banner--suspended .warning-banner__message[data-v-3cf3f444]{color:#7c2d12}.warning-banner--info .warning-banner__message[data-v-3cf3f444]{color:#1e3a8a}.warning-banner__close[data-v-3cf3f444]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:#0000001a;border-radius:6px;cursor:pointer;transition:background .15s;flex-shrink:0}.warning-banner__close[data-v-3cf3f444]:hover{background:#00000026}.warning-banner__close .material-symbols-outlined[data-v-3cf3f444]{font-size:18px;color:#374151}.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in .2s ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in .2s}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px #0006;z-index:1000000000;position:fixed;top:0;right:0;background-color:#fff}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.driver-popover-title{font:19px/normal sans-serif;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1;margin:0}.driver-popover-close-btn{all:unset;position:absolute;top:0;right:0;width:32px;height:28px;cursor:pointer;font-size:18px;font-weight:500;color:#d2d2d2;z-index:1;text-align:center;transition:color;transition-duration:.2s}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;font-weight:400;zoom:1}.driver-popover-footer{margin-top:15px;text-align:right;zoom:1;display:flex;align-items:center;justify-content:space-between}.driver-popover-progress-text{font-size:13px;font-weight:400;color:#727272;zoom:1}.driver-popover-footer button{all:unset;display:inline-block;box-sizing:border-box;padding:3px 7px;text-decoration:none;text-shadow:1px 1px 0 #fff;background-color:#fff;color:#2d2d2d;font:12px/normal sans-serif;cursor:pointer;outline:0;zoom:1;line-height:1.3;border:1px solid #ccc;border-radius:3px}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{display:flex;flex-grow:1;justify-content:flex-end}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";position:absolute;border:5px solid #fff}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{left:100%;border-right-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-right{right:100%;border-left-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-top{top:100%;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.driver-popover-arrow-side-bottom{bottom:100%;border-left-color:transparent;border-top-color:transparent;border-right-color:transparent}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{top:50%;margin-top:-5px}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{left:50%;margin-left:-5px}.driver-popover-arrow-none{display:none}.help-panel-backdrop[data-v-9a29c5a7]{position:fixed;inset:0;z-index:10100;background:#0006}.help-panel[data-v-9a29c5a7]{position:fixed;top:0;right:0;bottom:0;z-index:10101;width:360px;max-width:100%;background:var(--surface, #ffffff);box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;overflow:hidden}.help-panel__header[data-v-9a29c5a7]{display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top,0px)) 20px 16px 20px;border-bottom:1px solid var(--border, #e5e7eb);background:var(--surface, #ffffff)}.help-panel__title[data-v-9a29c5a7]{margin:0;font-size:18px;font-weight:600;color:var(--text, #111827)}.help-panel__close[data-v-9a29c5a7]{padding:8px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--muted, #6b7280);transition:background-color .15s ease,color .15s ease}.help-panel__close[data-v-9a29c5a7]:hover{background:var(--hover, #f3f4f6);color:var(--text, #111827)}.help-panel__close .material-symbols-outlined[data-v-9a29c5a7]{font-size:24px}.help-panel__content[data-v-9a29c5a7]{flex:1;overflow-y:auto;padding:16px 20px;min-height:0}.help-panel__footer[data-v-9a29c5a7]{flex-shrink:0;padding:0 20px 16px;background:var(--surface, #ffffff);border-top:1px solid var(--border, #e5e7eb)}.help-section[data-v-9a29c5a7]{margin-bottom:24px}.help-section[data-v-9a29c5a7]:last-child{margin-bottom:0}.help-section__title[data-v-9a29c5a7]{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;color:var(--muted, #6b7280);text-transform:uppercase;letter-spacing:.5px}.help-section__title .material-symbols-outlined[data-v-9a29c5a7]{font-size:18px}.help-section__page-indicator[data-v-9a29c5a7]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--primary-light, #f1f5f9);border-radius:8px;color:var(--primary, #2563eb);font-weight:500;margin-bottom:12px}.help-section__page-indicator .material-symbols-outlined[data-v-9a29c5a7]{font-size:20px}.help-section__overview[data-v-9a29c5a7]{margin:0 0 16px;font-size:14px;line-height:1.6;color:var(--text-secondary, #4b5563)}.help-action-btn[data-v-9a29c5a7]{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--border, #e5e7eb);background:var(--surface, #ffffff);border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text, #111827);text-align:left;transition:background-color .15s ease,border-color .15s ease;margin-bottom:8px}.help-action-btn[data-v-9a29c5a7]:last-child{margin-bottom:0}.help-action-btn[data-v-9a29c5a7]:hover{background:var(--hover, #f9fafb);border-color:var(--border-hover, #d1d5db)}.help-action-btn .material-symbols-outlined[data-v-9a29c5a7]{font-size:20px;color:var(--muted, #6b7280)}.help-action-btn--primary[data-v-9a29c5a7]{background:var(--primary, #2563eb);border-color:var(--primary, #2563eb);color:#fff}.help-action-btn--primary[data-v-9a29c5a7]:hover{background:var(--primary-hover, #1d4ed8);border-color:var(--primary-hover, #1d4ed8)}.help-action-btn--primary .material-symbols-outlined[data-v-9a29c5a7]{color:#fff}.help-action-btn__badge[data-v-9a29c5a7]{margin-left:auto}.help-action-btn__badge .material-symbols-outlined[data-v-9a29c5a7]{font-size:18px;color:var(--success, #10b981)}.help-action-btn--primary .help-action-btn__badge .material-symbols-outlined[data-v-9a29c5a7]{color:#fffc}.help-faq-list[data-v-9a29c5a7]{list-style:none;margin:0;padding:0}.help-faq-item[data-v-9a29c5a7]{border:1px solid var(--border, #e5e7eb);border-radius:8px;margin-bottom:8px;overflow:hidden}.help-faq-item[data-v-9a29c5a7]:last-child{margin-bottom:0}.help-faq-item__question[data-v-9a29c5a7]{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--text, #111827);text-align:left;transition:background-color .15s ease}.help-faq-item__question[data-v-9a29c5a7]:hover{background:var(--hover, #f9fafb)}.help-faq-item__chevron[data-v-9a29c5a7]{font-size:20px;color:var(--muted, #6b7280);transition:transform .2s ease}.help-faq-item--expanded .help-faq-item__chevron[data-v-9a29c5a7]{transform:rotate(180deg)}.help-faq-item__answer[data-v-9a29c5a7]{padding:12px 14px 14px;font-size:14px;line-height:1.6;color:var(--text-secondary, #4b5563);border-top:1px solid var(--border, #e5e7eb);margin-top:-1px;background:var(--surface-secondary, #f9fafb)}.help-section--support[data-v-9a29c5a7]{padding:16px;background:var(--surface-secondary, #f9fafb);border-radius:8px;margin-top:16px;margin-bottom:0}.help-section__support-text[data-v-9a29c5a7]{margin:0;font-size:14px;color:var(--text-secondary, #4b5563)}.help-section__support-loading[data-v-9a29c5a7]{font-size:14px;color:var(--muted, #6b7280);font-style:italic}.help-section__support-contacts[data-v-9a29c5a7]{font-size:14px;line-height:1.6;color:var(--text-secondary, #4b5563)}.help-section__support-contacts[data-v-9a29c5a7] a{color:var(--primary, #2563eb);text-decoration:none}.help-section__support-contacts[data-v-9a29c5a7] a:hover{text-decoration:underline}.help-section__support-contacts[data-v-9a29c5a7] p{margin:0 0 8px}.help-section__support-contacts[data-v-9a29c5a7] p:last-child{margin-bottom:0}.fade-enter-active[data-v-9a29c5a7],.fade-leave-active[data-v-9a29c5a7]{transition:opacity .2s ease}.fade-enter-from[data-v-9a29c5a7],.fade-leave-to[data-v-9a29c5a7]{opacity:0}.slide-enter-active[data-v-9a29c5a7],.slide-leave-active[data-v-9a29c5a7]{transition:transform .25s ease}.slide-enter-from[data-v-9a29c5a7],.slide-leave-to[data-v-9a29c5a7]{transform:translate(100%)}@media(max-width:480px){.help-panel[data-v-9a29c5a7]{width:100%}}@media(max-width:768px){.help-section--tours[data-v-9a29c5a7],.help-action-btn--primary[data-v-9a29c5a7],.help-action-btn--tour[data-v-9a29c5a7]{display:none!important}}.page-help-btn[data-v-61cdc437]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:none;background:transparent;color:var(--text-secondary, #94a3b8);cursor:pointer;padding:0;margin-left:6px;vertical-align:middle;transition:color .15s ease,background-color .15s ease;flex-shrink:0}.page-help-btn[data-v-61cdc437]:hover{color:var(--primary, #2563eb);background:#2563eb14}.page-help-btn[data-v-61cdc437]:active{background:#2563eb24}.page-help-btn__icon[data-v-61cdc437]{font-size:20px}.driver-popover.cloudgps-tour-popover{background:var(--surface, #ffffff);border-radius:12px;box-shadow:0 8px 30px #00000026;padding:0;max-width:340px;border:none}.driver-popover.cloudgps-tour-popover .driver-popover-arrow{border:none}.driver-popover.cloudgps-tour-popover .driver-popover-arrow-side-left{border-left-color:var(--surface, #ffffff)}.driver-popover.cloudgps-tour-popover .driver-popover-arrow-side-right{border-right-color:var(--surface, #ffffff)}.driver-popover.cloudgps-tour-popover .driver-popover-arrow-side-top{border-top-color:var(--surface, #ffffff)}.driver-popover.cloudgps-tour-popover .driver-popover-arrow-side-bottom{border-bottom-color:var(--surface, #ffffff)}.driver-popover.cloudgps-tour-popover .driver-popover-title{font-size:16px;font-weight:600;color:var(--text, #111827);padding:16px 20px 8px;margin:0}.driver-popover.cloudgps-tour-popover .driver-popover-description{font-size:14px;line-height:1.6;color:var(--text-secondary, #4b5563);padding:0 20px 16px;margin:0}.driver-popover.cloudgps-tour-popover .driver-popover-progress-text{font-size:12px;color:var(--muted, #6b7280);padding:0 20px;margin-bottom:12px}.driver-popover.cloudgps-tour-popover .driver-popover-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-top:1px solid var(--border, #e5e7eb);background:var(--surface-secondary, #f9fafb);border-radius:0 0 12px 12px}.driver-popover.cloudgps-tour-popover .driver-popover-navigation-btns{display:flex;gap:8px}.driver-popover.cloudgps-tour-popover button{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.driver-popover.cloudgps-tour-popover .driver-popover-prev-btn{background:var(--surface, #ffffff);border:1px solid var(--border, #d1d5db);color:var(--text, #374151)}.driver-popover.cloudgps-tour-popover .driver-popover-prev-btn:hover{background:var(--hover, #f3f4f6);border-color:var(--border-hover, #6b7280)}.driver-popover.cloudgps-tour-popover .driver-popover-next-btn{background:var(--primary, #2563eb);border:1px solid var(--primary, #2563eb);color:#fff}.driver-popover.cloudgps-tour-popover .driver-popover-next-btn:hover{background:var(--primary-hover, #1d4ed8);border-color:var(--primary-hover, #1d4ed8)}.driver-popover.cloudgps-tour-popover .driver-popover-close-btn{position:absolute;top:12px;right:12px;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--muted, #6b7280);font-size:20px}.driver-popover.cloudgps-tour-popover .driver-popover-close-btn:hover{background:var(--hover, #f3f4f6);color:var(--text, #374151)}@keyframes help-pulse{0%,to{box-shadow:0 4px 12px #2563eb4d}50%{box-shadow:0 4px 20px #2563eb80}}.help-fab--pulse{animation:help-pulse 2s ease-in-out infinite}.help-badge{position:absolute;top:-4px;right:-4px;width:12px;height:12px;background:var(--error, #ef4444);border-radius:50%;border:2px solid white}@media(max-width:767px){.driver-popover.cloudgps-tour-popover{max-width:90vw;margin:0 5vw}.driver-popover.cloudgps-tour-popover .driver-popover-title{font-size:15px;padding:14px 16px 6px}.driver-popover.cloudgps-tour-popover .driver-popover-description{font-size:13px;padding:0 16px 14px}.driver-popover.cloudgps-tour-popover .driver-popover-footer{padding:10px 12px}.driver-popover.cloudgps-tour-popover button{padding:6px 12px;font-size:12px}}.pwa-install-prompt[data-v-de801352]{position:fixed;bottom:0;left:0;right:0;z-index:10001;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 -4px 20px #0003}.pwa-install-content[data-v-de801352]{display:flex;align-items:flex-start;gap:12px;max-width:600px;margin:0 auto;position:relative}.pwa-install-icon[data-v-de801352]{flex-shrink:0;width:40px;height:40px;background:#fff3;border-radius:10px;display:flex;align-items:center;justify-content:center}.pwa-install-icon .material-symbols-outlined[data-v-de801352]{font-size:24px;color:#fff}.pwa-install-text[data-v-de801352]{flex:1;min-width:0}.pwa-install-title[data-v-de801352]{color:#fff;font-size:16px;font-weight:600;margin:0 0 4px}.pwa-install-description[data-v-de801352]{color:#ffffffe6;font-size:14px;margin:0}.pwa-install-ios-steps[data-v-de801352]{margin-top:8px}.pwa-install-step[data-v-de801352]{display:flex;align-items:center;gap:6px;color:#fffffff2;font-size:14px;margin:4px 0}.step-number[data-v-de801352]{font-weight:600;color:#fff}.ios-share-icon[data-v-de801352],.ios-add-icon[data-v-de801352]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#fff3;border-radius:4px;margin-left:4px}.ios-share-icon svg[data-v-de801352],.ios-add-icon svg[data-v-de801352]{color:#fff}.pwa-install-actions[data-v-de801352]{display:flex;flex-direction:column;gap:8px;flex-shrink:0;margin-top:4px}.pwa-btn[data-v-de801352]{padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s ease;white-space:nowrap}.pwa-btn-secondary[data-v-de801352]{background:#fff3;color:#fff}.pwa-btn-secondary[data-v-de801352]:hover{background:#ffffff4d}.pwa-btn-primary[data-v-de801352]{background:#fff;color:#4f46e5}.pwa-btn-primary[data-v-de801352]:hover{background:#f0f0f0}.pwa-install-close[data-v-de801352]{position:absolute;top:-4px;right:-4px;width:28px;height:28px;border-radius:50%;background:#0003;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.pwa-install-close[data-v-de801352]:hover{background:#0000004d}.pwa-install-close .material-symbols-outlined[data-v-de801352]{font-size:18px;color:#fff}.slide-up-enter-active[data-v-de801352],.slide-up-leave-active[data-v-de801352]{transition:transform .3s ease,opacity .3s ease}.slide-up-enter-from[data-v-de801352],.slide-up-leave-to[data-v-de801352]{transform:translateY(100%);opacity:0}@media(max-width:480px){.pwa-install-content[data-v-de801352]{flex-wrap:wrap}.pwa-install-icon[data-v-de801352]{display:none}.pwa-install-text[data-v-de801352]{flex:1 1 100%;padding-right:32px}.pwa-install-actions[data-v-de801352]{flex:1 1 100%;flex-direction:row;justify-content:flex-end;margin-top:12px}}.offline-banner[data-v-90cef246]{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:calc(.75rem + env(safe-area-inset-top,0px)) 1rem .75rem;font-size:.875rem;font-weight:500;box-shadow:0 2px 8px #00000026}.offline-banner--error[data-v-90cef246]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.offline-banner--success[data-v-90cef246]{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.offline-banner__icon[data-v-90cef246]{font-size:1.25rem;flex-shrink:0}.offline-banner__content[data-v-90cef246]{display:flex;flex-direction:column;gap:.125rem}.offline-banner__title[data-v-90cef246]{font-weight:600}.offline-banner__message[data-v-90cef246]{font-size:.75rem;opacity:.9}.offline-banner-enter-active[data-v-90cef246],.offline-banner-leave-active[data-v-90cef246]{transition:transform .3s ease,opacity .3s ease}.offline-banner-enter-from[data-v-90cef246],.offline-banner-leave-to[data-v-90cef246]{transform:translateY(-100%);opacity:0}.app-loader[data-v-6d34cac8]{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#fff;z-index:9999}.app-loader__spinner[data-v-6d34cac8]{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin-6d34cac8 .8s linear infinite}@keyframes spin-6d34cac8{to{transform:rotate(360deg)}}.leaflet-container{touch-action:none}:root{font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5;letter-spacing:.01em;color:#1f2937;background-color:#f5f6f7;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #6b7280;--text-inverse: #ffffff;--bg-page: #f5f6f7;--bg-card: #ffffff;--bg-elevated: #ffffff;--state-hover: rgba(15, 23, 42, .04);--state-active: rgba(15, 23, 42, .08);--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700}.page-title{margin:0;font-size:1.25rem;font-weight:600;color:#0f172a;line-height:1.4}.page-subtitle{margin:0;font-size:.85rem;font-weight:var(--font-regular);color:var(--text-secondary);line-height:1.5}.page-toolbar__titles{display:flex;flex-direction:column;flex:1;min-width:0}.page-header-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;border:1px solid #e5e7eb;padding:16px 20px;margin-bottom:10px}.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.page-toolbar__actions{display:flex;gap:.5rem;align-items:center}.controls-row{display:flex;align-items:center;gap:1rem;margin-top:12px}.controls-row .search-bar{flex:1}.stats-row{display:flex;gap:.5rem;flex-shrink:0}.stat-chip{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:#f1f5f9;border:none;border-radius:20px;cursor:pointer;transition:all .15s;font-size:.8125rem;color:#475569}.stat-chip:hover{background:#e2e8f0}.stat-chip--active{background:#dbeafe;color:#1e40af;box-shadow:inset 0 0 0 2px #93c5fd}.stat-chip__value{font-weight:600;color:inherit}.stat-chip__label{color:inherit;opacity:.85}.stat-chip--success.stat-chip--active{background:#dcfce7;color:#166534;box-shadow:inset 0 0 0 2px #86efac}.stat-chip--danger.stat-chip--active{background:#fee2e2;color:#991b1b;box-shadow:inset 0 0 0 2px #fca5a5}.page-content{flex:1;min-height:300px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f;border:1px solid #e5e7eb;padding:16px}.data-page{display:flex;flex-direction:column;min-height:100%}.loading-state{display:flex;justify-content:center;padding:3rem}.spinner-lg{width:36px;height:36px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.error-state{text-align:center;padding:3rem 1.5rem;color:#475569}.error-state .material-symbols-outlined{font-size:2.5rem;color:#ef4444;margin-bottom:.75rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem}.empty-state__illustration{width:200px;max-width:55%;height:auto;margin-bottom:1rem}.empty-title{font-size:15px;font-weight:600;color:var(--color-text-secondary, #666);margin:0 0 1rem}.empty-hint{font-size:.85rem;color:#6b7280;margin:0}.btn{padding:.5rem .875rem;border-radius:8px;font-size:.8125rem;font-weight:500;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:.375rem;transition:all .15s}.btn--primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn--primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)}.btn--primary:disabled{opacity:.6;cursor:not-allowed}.btn--secondary{background:#f1f5f9;color:#334155}.btn--secondary:hover{background:#e2e8f0}.btn--danger{background:#ef4444;color:#fff}.btn--danger:hover{background:#dc2626}.btn .material-symbols-outlined{font-size:1rem}.expand-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#64748b;cursor:pointer;transition:all .15s;flex-shrink:0;margin-top:.25rem}.expand-btn:hover{background:#f1f5f9;color:#475569}.expand-btn--active{color:#3b82f6;background:#f1f5f9}.expand-btn .material-symbols-outlined{font-size:1.25rem}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#334155;cursor:pointer;transition:all .15s;font-size:.75rem}.action-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.action-btn--danger:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.action-btn .material-symbols-outlined{font-size:1.125rem}.action-btn__label{display:none}@media(min-width:400px){.action-btn__label{display:inline}}.action-btn--danger .action-btn__label{display:none}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot--active{background:#22c55e}.status-dot--inactive,.status-dot--disabled{background:#ef4444}.device-tag{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;color:#3b82f6;padding:.25rem .5rem;background:#f1f5f9;border-radius:4px}.device-tag .material-symbols-outlined{font-size:.9375rem}.device-tag--empty{color:#64748b;background:#f8fafc}.modal-overlay{position:fixed;inset:0;background:#0f172a66;display:flex;align-items:center;justify-content:center;z-index:10100;padding:1rem}.confirm-dialog{background:#fff;border-radius:12px;padding:1.5rem;max-width:400px;width:100%;box-shadow:0 20px 40px #0f172a33}.confirm-dialog__title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;color:#0f172a}.confirm-dialog__message{margin:0 0 1.25rem;font-size:.875rem;color:#475569;line-height:1.5}.confirm-dialog__actions{display:flex;gap:.5rem;justify-content:flex-end}.toolbar-icon-button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;transition:all .15s}.toolbar-icon-button:hover{background:#e2e8f0;color:#0f172a}.search-bar{display:flex;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:0 .5rem;transition:border-color .15s}.search-bar:focus-within{border-color:#93c5fd}.search-icon{color:#94a3b8;font-size:1.125rem;flex-shrink:0}.search-input{flex:1;border:none;background:transparent;padding:.5rem .375rem;font-size:.8125rem;color:#0f172a;outline:none;min-width:0}.search-input::placeholder{color:#94a3b8}.search-clear{background:none;border:none;cursor:pointer;color:#94a3b8;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.search-clear:hover{color:#64748b}@media(max-width:640px){.page-header-card{border-radius:0;padding:12px 14px;margin-bottom:0;border-left:none;border-right:none}.btn__text{display:none}.btn{padding:.5rem}.controls-row{flex-direction:column;gap:.75rem;align-items:stretch;margin-top:10px}.page-content{border-radius:0;padding:8px;border-left:none;border-right:none}.stats-row{justify-content:space-between}.stat-chip{flex:1;justify-content:center;padding:.5rem}.stat-chip__label{display:none}.search-bar{width:100%}}.section-title{margin:0 0 .75rem;font-size:1.125rem;font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.4;letter-spacing:.01em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.spinner--light{border-color:#6366f133;border-top-color:#6366f1}.spinner--sm{width:12px;height:12px;border-width:1.5px}.spinner--md{width:20px;height:20px}.spinner--lg{width:24px;height:24px;border-width:3px}.top-bar__controls{display:flex;align-items:center;gap:.75rem;margin-left:.5rem;position:relative;z-index:1}.control-time{font-size:.9375rem;font-weight:var(--font-regular);color:var(--text-secondary);letter-spacing:.02em}.control-alert{display:flex;align-items:center;gap:.35rem;padding:.35rem .65rem;background:linear-gradient(135deg,#fee2e2,#fecaca);border:1px solid #fca5a5;border-radius:8px;color:#dc2626;font-weight:var(--font-semibold);font-size:.875rem;letter-spacing:.02em;cursor:pointer;transition:all .2s ease}.control-alert:hover{transform:scale(1.02);box-shadow:0 4px 12px #ef444440}.control-alert .material-symbols-outlined{font-size:1.1rem}.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;padding:1rem;background:linear-gradient(135deg,#f8f9fa,#f1f3f5);border-radius:12px;border:1px solid rgba(0,0,0,.06)}.summary-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0f172a0a}.summary-card .material-symbols-outlined{font-size:1.5rem;color:#64748b;padding:.5rem;background:#f1f5f9;border-radius:8px}.summary-card__content{display:flex;flex-direction:column}.summary-card__value{font-size:1.25rem;font-weight:700;color:#0f172a}.summary-card__label{font-size:.8rem;color:#475569}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f5f6f7;color:inherit;overflow-x:hidden}body.layout-split-active{overflow:hidden}body.layout-split-active #app,body.layout-split-active .app-shell{height:100dvh;min-height:100dvh;overflow:hidden}body.layout-split-active .shell-grid{overflow:hidden}body.layout-split-active .top-bar{position:relative;flex-shrink:0}#app{min-height:100vh}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell--auth{background:transparent}body:has(.app-shell--auth){background:transparent}@keyframes mesh-morph{0%,to{background-position:0% 0%}25%{background-position:50% 25%}50%{background-position:100% 50%}75%{background-position:50% 75%}}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(1rem + env(safe-area-inset-top,0px)) 1.5rem 1rem 1.5rem;border-bottom:1px solid rgba(15,23,42,.08);background:#fffffff2;position:sticky;top:0;z-index:10000;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:padding .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1)}.top-bar--scrolled{padding:calc(.5rem + env(safe-area-inset-top,0px)) 1.5rem .5rem 1.5rem;background:#ffffffeb;box-shadow:0 4px 20px #0f172a14,0 1px 3px #0f172a0f;border-bottom-color:#0f172a0a}.top-bar--scrolled .brand-block{transform:scale(.9);transform-origin:left center}.top-bar--scrolled .brand-logo{max-height:32px}.top-bar--scrolled .brand{font-size:.95rem}.top-bar--scrolled .tagline{font-size:.75rem;opacity:.8}.top-bar--scrolled .nav__link{padding:.35rem .7rem;font-size:.9rem}.top-bar--scrolled .control-time{padding:.25rem .5rem;font-size:.8rem}.top-bar--scrolled .user-menu__trigger{padding:.2rem .5rem .2rem .2rem}@media(max-width:959px){.top-bar--scrolled{padding:calc(.4rem + env(safe-area-inset-top,0px)) 1rem .4rem 1rem}.top-bar--scrolled .tagline{display:none}.top-bar--scrolled .brand{font-size:.9rem}.top-bar--scrolled .brand-logo{max-height:28px}}.top-bar--auth{display:none}.top-bar__actions{display:none;align-items:center;gap:1rem;position:relative}.top-bar__actions:before{content:"";position:absolute;top:50%;transform:translateY(-50%);height:3rem;left:-.75rem;right:-1.5rem;background:linear-gradient(90deg,#f1f5f9,#f5f6f7 40%,#f8fafc);border-radius:1.5rem 0 0 1.5rem;z-index:0;pointer-events:none;border:1px solid rgba(99,102,241,.08);border-right:none}.user-menu{position:relative;z-index:1}.user-menu__trigger{border:1px solid #e2e8f0;background:#fff;color:#64748b;border-radius:999px;padding:.3rem .6rem .3rem .3rem;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,padding .3s cubic-bezier(.4,0,.2,1)}.user-menu__trigger:hover{background:#f8fafc;border-color:#cbd5e1}.user-menu__avatar{background:#3b82f6;color:#fff;border-radius:50%;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.user-menu__caret{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.7}.user-menu__panel{position:absolute;top:calc(100% + .35rem);right:0;min-width:220px;background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 30px #0f172a26;padding:.6rem;display:flex;flex-direction:column;gap:.35rem;z-index:1500}.user-menu__action{width:100%;border:none;background:transparent;border-radius:10px;padding:.55rem .75rem;text-align:left;font-weight:var(--font-medium);font-size:.9rem;color:var(--text-primary);letter-spacing:.01em;line-height:1.4;cursor:pointer;display:flex;align-items:center;gap:.6rem}.user-menu__action .material-symbols-outlined{font-size:1.2rem;color:#64748b}.user-menu__action:hover{background:#f1f5f9}.user-menu__action:hover .material-symbols-outlined{color:#1d4ed8}.user-menu__action--link{display:block;text-decoration:none;color:inherit;font-size:1rem;font-family:inherit}.user-menu__username{font-size:.85rem;font-weight:var(--font-medium);color:#64748b;letter-spacing:.01em;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__login{margin:0;font-size:.9375rem;color:var(--text-secondary);font-weight:var(--font-medium);letter-spacing:.01em;line-height:1.4}.user-menu__logout{width:100%;border-radius:10px;padding:.6rem .75rem .55rem;font-size:.9rem;justify-content:center;border-top:1px solid rgba(15,23,42,.06);margin-top:.15rem}.brand-block{display:flex;flex-direction:column;gap:.15rem;transition:transform .3s cubic-bezier(.4,0,.2,1)}.brand-logo{max-height:40px;max-width:180px;width:auto;height:auto;object-fit:contain;transition:max-height .3s cubic-bezier(.4,0,.2,1)}.brand{font-size:1.1rem;font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em;transition:font-size .3s cubic-bezier(.4,0,.2,1)}.tagline{margin:0;font-size:.8125rem;font-weight:var(--font-regular);color:var(--text-muted);letter-spacing:.02em;line-height:1.4;transition:font-size .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.menu-toggle{border:none;background:transparent;padding:.25rem;display:inline-flex;flex-direction:column;gap:.3rem;cursor:pointer}.menu-toggle__line{width:24px;height:2px;background:#0f172a}.top-bar__left{display:flex;align-items:center;gap:.5rem}.notification-bell--mobile{display:block}.notification-bell--mobile .notification-dropdown{position:fixed!important;top:56px!important;left:8px!important;right:8px!important;width:auto!important;max-height:calc(100vh - 72px)!important}@media(min-width:960px){.notification-bell--mobile{display:none}}.nav{display:flex;gap:.75rem}.nav--desktop{display:none;position:relative;z-index:1;padding:.25rem;gap:.125rem}.nav--drawer{flex-direction:column}.nav__link{color:var(--text-secondary);padding:.45rem .9rem;border-radius:999px;text-decoration:none;font-weight:var(--font-regular);font-size:.9rem;letter-spacing:.01em;line-height:1.4;white-space:nowrap;transition:color .15s ease,background .15s ease,padding .3s cubic-bezier(.4,0,.2,1),font-size .3s cubic-bezier(.4,0,.2,1)}.nav__link:hover:not(.router-link-active){color:var(--text-primary);background:#ffffff80}.nav__link.router-link-active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-weight:var(--font-medium);box-shadow:0 2px 4px #2563eb40}.user-chip{background:#f1f5f9;color:#1e40af;border-radius:999px;padding:.25rem .9rem;font-size:.875rem;font-weight:var(--font-medium);letter-spacing:.02em}.logout{border:none;border-radius:999px;padding:.45rem 1.1rem;background:#1e293b;color:var(--text-inverse);cursor:pointer;font-weight:var(--font-medium);font-size:.9375rem;letter-spacing:.02em;line-height:1.4}.logout--full{width:100%}.shell-grid{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:hidden;overflow-x:auto}.shell-grid--auth{grid-template-columns:1fr;display:flex;align-items:center;justify-content:center}.sidebar{display:none;background:#f8f8f8;color:#e2e8f0;position:fixed;inset:0 30% 0 0;z-index:1301;transform:translate(-100%);transition:transform .3s ease;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar__inner{padding:calc(5.5rem + env(safe-area-inset-top,0px)) 1.5rem calc(2rem + env(safe-area-inset-bottom,0px)) calc(1.5rem + env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:1rem;min-height:100%}.sidebar__user{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem;padding-top:.75rem;border-top:1px solid rgba(15,23,42,.1)}.sidebar__user-info{display:flex;align-items:center;gap:.5rem;padding:.45rem .9rem;color:var(--text-primary);font-weight:var(--font-medium);font-size:.9rem;letter-spacing:.01em}.sidebar__user-info .material-symbols-outlined{color:#1d4ed8;font-size:20px}.sidebar__settings-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .9rem .45rem 1.5rem;border:none;background:transparent;border-radius:999px;font-weight:var(--font-regular);font-size:.9rem;color:var(--text-secondary);letter-spacing:.01em;line-height:1.4;cursor:pointer;transition:color .15s ease,background .15s ease;text-decoration:none}.sidebar__settings-btn:hover{color:var(--text-primary);background:#ffffff80}.sidebar__settings-btn .material-symbols-outlined{font-size:18px;color:#475569}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:#475467e6;margin:0}.content{padding:10px;display:flex;flex-direction:column;flex:1;min-height:0;background:#eef1f5;box-sizing:border-box;gap:10px}.content>*{flex:1;min-height:0}.client-layout{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.client-layout--split{height:100%;overflow:hidden}.client-layout--split>*{flex:1;height:100%;min-height:0;min-width:0}.client-layout--dashboard,.client-layout--data{overflow:hidden}.client-layout--dashboard>*{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden}.client-layout--data>*{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden}.client-layout--system{overflow:auto}.client-layout--system>*{flex:1;min-height:100%;min-width:0}.page-with-sidebar{display:flex;flex:1;height:100%;min-height:0;overflow:hidden;gap:10px}.page-with-sidebar>*{min-height:0}@media(max-width:767px){.content{padding:0;gap:0;background:#f5f6f7}.page-with-sidebar{flex-direction:column;overflow-x:hidden;max-width:100vw}}.content--auth{display:block;padding:0;background:transparent}.backdrop{position:fixed;inset:0;background:#0f172a66;border:none;cursor:pointer;z-index:1300}.sidebar--open{display:block;transform:translate(0)}@media(min-width:960px){.menu-toggle,.top-bar__left{display:none}.top-bar__actions,.nav--desktop{display:flex}.sidebar{display:none!important;transform:none;position:static}}@media(min-width:960px)and (max-width:1350px){.nav__link,.nav__link.router-link-active{padding:.35rem .55rem;font-size:.8rem}}@media(max-width:960px){.sidebar{display:block}}.panel{background:linear-gradient(135deg,#ffffffd9,#ffffffbf,#f8fafccc);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:12px;padding:1.5rem;margin-bottom:0;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000d,inset 0 1px #fff9;border:1px solid rgba(255,255,255,.5);transition:box-shadow .2s ease}.panel:hover{box-shadow:0 2px 6px #0000001a,0 8px 20px #00000014,inset 0 1px #fff9}.panel--nested{box-shadow:none;border:1px solid rgba(15,23,42,.05)}.dashboard-shell{display:flex;flex-direction:column;gap:10px;padding:0;min-height:100%}.dashboard-hero{background:linear-gradient(135deg,#ffffffd9,#ffffffbf,#f8fafccc);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:12px;box-shadow:0 1px 3px #00000014,0 4px 12px #0000000d,inset 0 1px #fff9;border:1px solid rgba(255,255,255,.5);position:relative;overflow:hidden;padding:16px 20px;margin-bottom:0}.hero-intro{display:flex;flex-direction:column;gap:.25rem;flex:1}.hero-intro .eyebrow{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .7rem;border-radius:999px;background:linear-gradient(135deg,#3b82f624,#ec48991a);color:#1d4ed8}.hero-actions{display:flex;flex-direction:row;align-items:center;gap:.5rem}.hero-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1rem;border-radius:10px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;white-space:nowrap;line-height:1.4}.hero-btn .material-symbols-outlined{font-size:1.15rem}.hero-btn--outline{background:#fff;border:1px solid #d1d5db;color:#374151}.hero-btn--outline:hover{background:#f9fafb;border-color:#9ca3af}.hero-btn--outline.hero-btn--active{background:#eff6ff;border-color:#3b82f6;color:#2563eb}.hero-btn--primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid transparent;color:#fff}.hero-btn--primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.dashboard-hero .panel__title{color:#2563eb}.health-status{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;margin-top:.75rem;transition:all .3s ease}.health-status__loading{display:flex;align-items:center;justify-content:center;padding:.25rem}.health-status__loading .spinning{color:#2563eb}.health-status__loading .spinner{width:20px;height:20px;border:2px solid #e2e8f0;border-top-color:#3b82f6}.health-status__ok{display:flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border-radius:20px;font-size:.875rem;font-weight:var(--font-medium);letter-spacing:.02em;border:1px solid rgba(34,197,94,.25);background:#22c55e14;color:#15803d}.health-status__ok .material-symbols-outlined{font-size:1.1rem}.health-status__text{opacity:.9}.health-status__issues{display:flex;flex-wrap:wrap;gap:1rem}.health-status__issue{display:flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border-radius:20px;font-size:.875rem;font-weight:var(--font-medium);letter-spacing:.02em;border:1px solid transparent}.health-status__issue--warning{background:#f59e0b1f;border-color:#f59e0b66;color:#92400e}.health-status__issue--error{background:#ef44441f;border-color:#ef444466;color:#b91c1c}.health-status__issue .material-symbols-outlined{font-size:1.1rem}.health-status__count{font-weight:var(--font-semibold);font-size:1rem;letter-spacing:.01em}.health-status__label{opacity:.9}.hero-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tab-pill{border:1px solid rgba(15,23,42,.2);border-radius:999px;padding:.35rem 1rem;background:#fff;font-weight:var(--font-medium);font-size:.9375rem;color:var(--text-primary);letter-spacing:.02em;line-height:1.4;cursor:pointer}.tab-pill--active{background:#f1f5f9;color:#1d4ed8;box-shadow:0 10px 20px #4c1d9526}.search-control{margin-top:1.25rem;display:flex;flex-direction:column;gap:.25rem}.search-hint{font-size:.85rem;color:#475569}.dashboard-grid{display:flex;flex-direction:column;gap:1.5rem}.device-feed{list-style:none;padding:0;margin:.75rem 0 0;display:grid;grid-template-columns:1fr;gap:.35rem}.feed-card{position:relative;border-radius:10px;border:none;padding:.5rem .65rem;background:#fff;box-shadow:0 1px 3px #0f172a0f;display:flex;flex-direction:column;gap:.35rem;transition:background .15s ease,box-shadow .15s ease}.feed-card:hover{background:#f8fafc;box-shadow:0 2px 6px #0f172a1a}.feed-card__top-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.feed-card__identity{display:flex;align-items:center;gap:.5rem}.feed-card__avatar{display:none}.feed-card__info{display:flex;flex-direction:column;gap:.15rem}.feed-card__title{margin:0;font-size:1rem;font-weight:var(--font-semibold);display:flex;gap:.35rem;align-items:center;color:var(--text-primary);letter-spacing:.01em;line-height:1.4}.feed-card__plate{font-size:.85rem;background:#f1f5f9;padding:.15rem .5rem;border-radius:10px;color:#334155}.feed-card__subtitle{margin:0;color:var(--text-secondary);font-size:.875rem;font-weight:var(--font-regular);line-height:1.5;letter-spacing:.01em;display:inline-flex;align-items:center;gap:.35rem}.icon-button{border:none;background:transparent;cursor:pointer;width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#334155}.icon-button:hover{background:#f1f5f9}.feed-card__meta{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;color:#334155}.feed-card__meta-primary{display:inline-flex;align-items:center;gap:.35rem;width:100%}.feed-card__menu-wrap{position:relative;margin-left:auto}.feed-card__menu{position:absolute;right:0;top:110%;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 14px 30px #0f172a1f;border-radius:12px;padding:.25rem 0;min-width:180px;z-index:5}.menu-item{width:100%;text-align:left;background:transparent;border:none;padding:.55rem .9rem;font-size:.95rem;color:#0f172a;cursor:pointer}.menu-item:hover{background:#f1f5f9}.pulse-dot{width:10px;height:10px;border-radius:50%;background:#cbd5e1;position:relative}.pulse-dot--moving{background:#ef4444}.pulse-dot--pending{background:#f59e0b}.pulse-dot--recent{background:#22c55e}.pulse-dot--hour{background:#f59e0b}.pulse-dot--day,.pulse-dot--stale{background:#64748b}.meta-chip{display:inline-flex;align-items:flex-start;gap:.3rem;padding:.25rem .5rem .3rem;border-radius:10px;background:#f1f5f9;color:#1e40af;font-weight:var(--font-medium);font-size:.875rem;letter-spacing:.01em}.meta-chip__text{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;line-height:1.1;width:100%}.meta-chip__label{font-size:.75rem;color:var(--text-secondary);font-weight:var(--font-medium);letter-spacing:.02em;width:100%}.meta-chip__value{font-weight:var(--font-semibold);color:var(--text-primary)}.feed-card__meta-secondary{margin-top:.15rem;align-self:flex-end;margin-right:40px;display:flex;align-items:center;gap:.25rem}.feed-card__details{border-top:1px solid rgba(15,23,42,.08);padding-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.feed-card__toggle-details{width:30px;height:30px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;border-radius:10px;color:#0f172a;transition:background .2s ease,color .2s ease}.feed-card__toggle-details--active{background:#e2e8f0;color:#1e40af}.feed-card__toggle-details .material-symbols-outlined{font-size:20px}@media(max-width:540px){.feed-card__top-row{flex-direction:column;align-items:flex-start;gap:.5rem}.feed-card__title{flex-wrap:wrap}.feed-card__meta{align-items:flex-start;gap:.25rem;width:100%}.feed-card__meta-primary{width:100%;justify-content:flex-start;flex-wrap:wrap}.feed-card__menu{right:0;left:auto}.feed-card__meta-secondary{align-self:flex-start;margin-right:0}.feed-card__stats{gap:.4rem}.status-icon{padding:.4rem .5rem}}.meta-chip--sub{background:#f1f5f9;color:#334155;font-size:.78rem;padding:.28rem .55rem;align-items:flex-start;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;justify-content:center;align-items:flex-start;padding:1.5rem 1rem;z-index:10100;overflow-y:auto}.modal{position:relative;background:#fff;border-radius:16px;width:min(520px,100%);padding:1.25rem 1.25rem 1rem;box-shadow:0 22px 50px #0f172a2e;margin:auto}.modal__close{width:36px;height:36px;border-radius:10px;color:#334155;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;padding:0}.modal__close:hover{background:#fee2e2;color:#b91c1c}.modal__header{display:flex;flex-direction:column;gap:.2rem;margin-bottom:1rem}.modal__title{margin:0;font-size:1.25rem;font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em;line-height:1.3}.modal__subtitle{margin:0;color:#334155;font-size:.95rem}.modal__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.modal .secondary{padding:.75rem 1rem}.modal .primary{margin-bottom:0;width:auto;padding:.75rem 1.1rem}.settings-modal{display:flex;flex-direction:column;gap:1rem}.settings-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.settings-modal__close{flex-shrink:0;width:36px;height:36px;border-radius:10px;color:#334155}.settings-modal__close:hover{background:#fee2e2;color:#b91c1c}.settings-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.settings-tab{border:1px solid rgba(15,23,42,.12);background:#f8fafc;color:var(--text-primary);border-radius:999px;padding:.6rem 1rem;cursor:pointer;font-weight:var(--font-medium);font-size:.9375rem;letter-spacing:.02em;line-height:1.4}.settings-tab--active{background:#f1f5f9;border-color:#c7d2fe;color:#1d4ed8;box-shadow:0 6px 16px #6366f12e}.settings-grid{display:grid;grid-template-columns:1fr;gap:1rem}.settings-card{border:1px solid rgba(226,232,240,.9);border-radius:14px;background:#f8fafc;padding:1rem;display:flex;flex-direction:column;gap:1rem}.settings-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.settings-card__title{margin:0;font-size:1.05rem}.settings-card__hint{margin:.25rem 0 0;color:#334155;font-size:.95rem}.avatar-upload{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.avatar-upload__preview{width:84px;height:84px;border-radius:999px;overflow:hidden;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1px solid rgba(15,23,42,.08);display:grid;place-items:center;font-weight:var(--font-semibold);color:var(--text-primary)}.avatar-upload__preview img{width:100%;height:100%;object-fit:cover}.avatar-upload__controls{display:flex;flex-direction:column;gap:.35rem;min-width:0}.avatar-upload__buttons{display:flex;gap:.5rem;align-items:center}.avatar-upload__delete{padding:.5rem .65rem;display:inline-flex;align-items:center;justify-content:center}.avatar-upload__delete .material-symbols-outlined{font-size:20px}.avatar-upload__button{width:fit-content;display:inline-flex;align-items:center;gap:.35rem}.file-input{position:absolute;opacity:0;width:1px;height:1px}.settings-tabpanel{margin-top:.5rem}.custom-fields{display:flex;flex-direction:column;gap:.5rem}.custom-field-row{display:grid;grid-template-columns:1fr;gap:.4rem}.field__row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.icon-button{border:none;background:transparent;border-radius:6px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:#64748b;transition:background .15s,color .15s}.icon-button:hover{background:#f1f5f9;color:#475569}.icon-button .material-symbols-outlined{font-size:18px}.settings-loading{display:inline-flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:12px;background:#f1f5f9;color:#1e40af;font-weight:var(--font-medium);font-size:.9375rem;letter-spacing:.01em}.settings-loading__icon{animation:spin 1s linear infinite}.feed-card__stats{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.status-icon{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .6rem;border-radius:12px;background:#f8fafc;border:1px solid rgba(15,23,42,.06);min-height:36px}.status-icon span.material-symbols-outlined{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#f1f5f9;color:#1e40af}.status-icon__value{font-size:.9375rem;font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em}.stat-chip__label{font-size:.75rem;color:#475569}.status-icon--positive{background:#10b9811f;border-color:#10b9814d}.status-icon--positive span.material-symbols-outlined{background:#10b98129;color:#0f766e}.status-icon--positive .status-icon__value{color:#0f766e}.status-icon--warning{background:#eab3081f;border-color:#eab30859}.status-icon--warning span.material-symbols-outlined{background:#eab30833;color:#b45309}.status-icon--warning .status-icon__value{color:#b45309}.status-icon--alert{background:#ef44441f;border-color:#ef444459}.status-icon--alert span.material-symbols-outlined{background:#ef44442e;color:#b91c1c}.status-icon--alert .status-icon__value{color:#b91c1c}.status-icon--muted{background:#f8fafc;border-color:#0f172a0f}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 300,"GRAD" 0,"opsz" 24}.feed-card__coordinate-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem;flex-wrap:wrap;font-size:.95rem;color:#1f2937}.feed-card__coords-label{font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em}.feed-card__coords-actions{display:inline-flex;gap:.3rem}.coord-button{width:32px;height:32px;border-radius:10px;border:1px solid rgba(15,23,42,.12);background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#1d4ed8;cursor:pointer;transition:border-color .2s ease,background .2s ease}.coord-button:hover{border-color:#0f172a33;background:#f1f5f9}.feed-card__sensors{border-radius:12px;background:#f8fafc;padding:.85rem;display:flex;flex-direction:column;gap:.35rem}.feed-card__sensors-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.feed-card__sensors-title{margin:0;font-size:.85rem;font-weight:600;color:#334155}.feed-card__toggle-icon{border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;padding:.15rem;cursor:pointer;color:#334155}.feed-card__toggle-icon:hover{color:#1d4ed8}.feed-card__sensor{display:flex;justify-content:space-between;font-size:.85rem;color:#0b1224}.feed-card__toggle-sensors{margin-top:.5rem;align-self:flex-start;border:none;background:transparent;color:#1d4ed8;font-weight:600;cursor:pointer}.map-panel{display:flex;flex-direction:column;gap:1rem}.map-canvas{min-height:220px;border-radius:18px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;display:flex;align-items:center;justify-content:center}.map-placeholder-label{color:var(--text-muted);font-weight:var(--font-medium);letter-spacing:.02em}.map-legend{display:flex;gap:1rem;font-size:.85rem;color:#334155}.legend-dot{width:12px;height:12px;border-radius:999px;display:inline-block;margin-right:.35rem}.legend-dot--online{background:#38bdf8}.legend-dot--offline{background:#f87171}.map-status{font-weight:var(--font-medium);color:var(--text-secondary);letter-spacing:.02em}@media(min-width:900px){.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.75fr);gap:1.5rem;align-items:start}.feed-card__top-row{gap:1rem}.device-feed{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.panel__title{margin:0}.muted{color:#475569}.secondary{border:1px solid rgba(37,99,235,.3);border-radius:12px;padding:.5rem 1rem;background:transparent;cursor:pointer;font-weight:var(--font-medium);font-size:.9375rem;color:#2563eb;letter-spacing:.02em;line-height:1.4;transition:background .15s ease,border-color .15s ease}.secondary:hover{background:#2563eb14;border-color:#2563eb}.alert{border-radius:12px;padding:.75rem 1rem;margin-top:1rem;font-weight:500}.alert--error{background:#fee2e2;color:#b91c1c}.alert--info{background:#f1f5f9;color:#1e40af}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:1.5rem 0}.metric-card{border-radius:16px;padding:1rem;background:#f8fafc}.metric-card--accent{background:#fee2e2}.metric-label{margin:0;color:#334155}.metric-value{margin:.35rem 0 0;font-size:1.625rem;font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:-.01em;line-height:1.2}.device-list{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.75rem}.device-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-radius:12px;background:#f8fafc}.device-row__title{margin:0;font-weight:var(--font-medium);color:var(--text-primary);letter-spacing:.01em}.device-row__meta{margin:.15rem 0 0;font-size:.85rem;color:#475569}.device-row--empty{justify-content:center}.badge{border-radius:999px;padding:.2rem .75rem;font-size:.85rem;background:#e2e8f0;color:#0f172a}.badge--success{background:#dcfce7;color:#15803d}.table{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);overflow:hidden}.table__head,.table__row{display:grid;grid-template-columns:2fr 1fr auto;padding:.75rem 1rem;align-items:center}.table__head{font-weight:var(--font-medium);font-size:.9375rem;color:var(--text-secondary);background:#f1f5f9;letter-spacing:.02em}.table__row{border-top:1px solid rgba(15,23,42,.05);background:transparent;cursor:pointer;text-align:left}.table__title{font-weight:var(--font-medium);color:var(--text-primary);letter-spacing:.01em}.table__meta{color:#475569}.table__empty{margin:1rem;color:#64748b}.telemetry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.login-shell{min-height:100vh;padding:4rem 1.5rem;display:flex;justify-content:center;align-items:center;background:radial-gradient(at 40% 20%,hsla(220,10%,88%,.2) 0px,transparent 55%),radial-gradient(at 85% 10%,hsla(220,10%,90%,.18) 0px,transparent 60%),radial-gradient(at 10% 60%,hsla(220,10%,89%,.16) 0px,transparent 55%),radial-gradient(at 75% 85%,hsla(220,10%,91%,.14) 0px,transparent 60%),radial-gradient(at 20% 90%,hsla(220,10%,92%,.12) 0px,transparent 60%),#d6d7e3;background-attachment:fixed;position:relative;overflow:hidden}.ambient-ring{position:absolute;width:420px;height:420px;background:radial-gradient(circle,rgba(83,110,255,.35),transparent 55%);top:-100px;right:-120px;filter:blur(12px)}.login-card{width:min(420px,100%);background:#fff;padding:2.5rem;border-radius:24px;box-shadow:0 40px 70px #0f172a1f;position:relative;z-index:1;border:1px solid rgba(15,23,42,.05)}.auth-card{width:min(420px,100%);max-height:fit-content;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:2rem 1.5rem;border-radius:24px;box-shadow:0 0 0 1px #0f172a08,0 20px 40px #0f172a14,0 40px 80px #0f172a0f;border:1px solid rgba(255,255,255,.5);position:relative;z-index:1}.card-header{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.auth-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;margin-bottom:1.5rem}.auth-header h1{font-size:1.75rem;font-weight:var(--font-semibold);color:var(--text-primary);margin:0;letter-spacing:-.01em;line-height:1.3}.login-slogan{margin:0;font-size:1rem;color:#475569;font-weight:400}.brand-icon{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#2563eb);display:flex;justify-content:center;align-items:center;color:#fff;font-weight:600;font-size:1rem;box-shadow:0 8px 16px #2563eb40}.brand-tagline{margin:0;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#4b5563}.card-header h1{margin:.15rem 0;font-size:1.9rem;line-height:1.35;color:#0f172a}.form-subtitle{margin:0;color:#334155}.description{margin:0;color:#334155;font-size:.95rem;margin-bottom:1.75rem}.form{display:flex;flex-direction:column;gap:1.1rem}.field{display:flex;flex-direction:column;gap:.4rem;font-weight:var(--font-medium);font-size:.9375rem;color:var(--text-primary);letter-spacing:.01em;line-height:1.4}.field-input{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(15,23,42,.12);font-size:1rem;font-family:inherit;font-weight:var(--font-regular);background:#f8fafc;color:var(--text-primary);letter-spacing:.01em;line-height:1.5;transition:border .2s ease,box-shadow .2s ease}.field-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #6366f126}.password-field{position:relative;display:flex}.password-field .field-input{padding-right:46px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#334155;padding:.25rem;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease}.password-toggle:hover{background:#f1f5f9;color:#1e40af}.password-toggle:focus-visible{outline:2px solid #c7d2fe;outline-offset:2px}.password-toggle svg{width:22px;height:22px}.field small{color:#64748b;font-size:.8rem}.actions-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:.9rem}.remember{display:flex;align-items:center;gap:.4rem;font-weight:500}.forgot{color:#2563eb;font-weight:var(--font-medium);letter-spacing:.01em}.primary{width:100%;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;color:#fff;padding:.85rem 1rem;border-radius:12px;font-size:1rem;font-weight:var(--font-medium);letter-spacing:.02em;line-height:1.4;cursor:pointer;margin-bottom:1rem;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 8px 20px #2563eb4d}.language-select{position:relative}.language-select .select{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(15,23,42,.12);font-size:1rem;font-family:inherit;background:#f8fafc;color:#0f172a;transition:border .2s ease,box-shadow .2s ease;appearance:none}.language-select .select-wrapper{position:relative}.language-select .select{width:100%;padding:.85rem 2.75rem .85rem 1rem;border-radius:12px;border:1px solid rgba(15,23,42,.12);font-size:1rem;font-family:inherit;background:#f8fafc;color:#0f172a;transition:border .2s ease,box-shadow .2s ease;appearance:none}.language-select .select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #6366f126}.language-select .select-wrapper:after{content:"expand_more";font-family:Material Symbols Outlined;position:absolute;right:.9rem;top:50%;transform:translateY(-50%);font-size:20px;color:#64748b;pointer-events:none}.select{font-family:inherit}.video-overlay{margin-top:1.5rem;font-size:.85rem;color:#64748b;text-align:center}.error,.form-error{margin:0 0 1rem;color:#b91c1c;font-weight:var(--font-medium);font-size:.9375rem;letter-spacing:.01em}.hero-top{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:.75rem}.widget-board{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.widget-board__header{display:flex;flex-direction:column;gap:.35rem}.widget-board__header-compact{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.widget-board__intro{display:flex;flex-direction:column;gap:.35rem}.widget-board__title{margin:0;font-size:1.25rem;font-weight:var(--font-semibold);color:var(--text-primary);line-height:1.3;letter-spacing:.01em}.widget-board__hint{margin:0;color:#334155;font-size:.9rem}.widget-board__status{align-self:flex-start}.widget-board__grid{display:grid;gap:1rem;width:100%;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;align-items:stretch}.widget-tile--cols-1{grid-column:span 1}.widget-tile--cols-2{grid-column:span 2}.widget-tile--cols-3{grid-column:span 3}.widget-tile--cols-4{grid-column:span 4}.widget-tile--cols-5{grid-column:span 5}.widget-tile--cols-6{grid-column:span 6}.widget-tile--rows-1{grid-row:span 1}.widget-tile--rows-2{grid-row:span 2}.widget-tile--rows-3{grid-row:span 3}.widget-tile--rows-4{grid-row:span 4}@media(max-width:1100px){.widget-board__grid{grid-template-columns:repeat(4,1fr)}.widget-tile--cols-5,.widget-tile--cols-6{grid-column:span 4}}@media(max-width:720px){.widget-board__grid{grid-template-columns:1fr;grid-auto-rows:auto}.widget-tile{grid-column-start:1!important;grid-column-end:-1!important;grid-row-start:auto!important;grid-row-end:auto!important;min-height:120px}.widget-board__grid-cell{display:none}}.widget-board__grid-cell{background:#6366f10a;border:2px dashed rgba(99,102,241,.2);border-radius:12px;pointer-events:none;z-index:0}.widget-board__empty-cell{background:#6366f108;border:2px dashed rgba(99,102,241,.15);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:0}.widget-board__empty-cell-icon{font-size:1.5rem;color:#6366f14d;transition:all .2s ease}.widget-board__empty-cell:hover{background:#6366f114;border-color:#6366f159}.widget-board__empty-cell:hover .widget-board__empty-cell-icon{color:#6366f199;transform:scale(1.1)}.widget-board__empty-cell--drag-active{border-color:#6366f140}.widget-board__empty-cell--hovered{background:#6366f11f;border-color:#6366f180;border-style:solid}.widget-board__empty-cell--hovered .widget-board__empty-cell-icon{color:#6366f1cc;transform:scale(1.2)}@media(max-width:719px){.widget-board__empty-cell{display:none}}.widget-board__empty{border:1px dashed rgba(71,84,103,.35);border-radius:12px;padding:1rem;background:#fff;color:#0f172a;display:flex;align-items:center;gap:.5rem;justify-content:center;cursor:pointer}.widget-tile{position:relative;z-index:1;border:1px solid rgba(255,255,255,.6);border-radius:16px;padding:.75rem 1rem;background:linear-gradient(160deg,#ffffffd9,#f1f5f9a6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 24px #0f172a0f,0 1px 2px #0f172a0a,inset 0 1px #ffffffe6;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,opacity .2s ease;overflow:hidden;display:flex;flex-direction:column}.widget-tile:hover{background:linear-gradient(160deg,#fffffff2,#f1f5f9cc);box-shadow:0 8px 32px #0f172a14,0 2px 4px #0f172a0a,inset 0 1px #fff;transform:translateY(-1px)}.widget-tile--dragging{opacity:.95;transform:scale(.98);border-color:#60a5fa99;box-shadow:0 16px 48px #3b82f633,inset 0 1px #ffffffe6}.widget-tile--over{border-color:#60a5fa80;box-shadow:0 0 0 3px #3b82f626,0 4px 24px #3b82f61a}.widget-tile--edit-mode{border:2px dashed #93c5fd;background:linear-gradient(160deg,#fffffff7,#eff6ff80);box-shadow:0 0 0 1px #3b82f614,0 2px 8px #3b82f60f}.widget-tile--edit-mode:hover{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61f,0 4px 16px #3b82f61a}.widget-tile--edit-mode .widget-tile__resize-handle{opacity:1}.widget-tile--resizing{opacity:.85;z-index:100;-webkit-user-select:none;user-select:none;transition:none}.widget-tile--highlight{animation:widget-highlight 1.5s ease}@keyframes widget-highlight{0%,to{box-shadow:0 1px 4px #0000000f}20%,60%{box-shadow:0 0 0 3px #3b82f666,0 2px 8px #3b82f626}}.widget-tile--skeleton{pointer-events:none;display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-line--short{width:35%;height:10px}.skeleton-line--title{width:55%;height:14px}.skeleton-block{flex:1;min-height:60px;border-radius:10px;background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;animation-delay:.15s}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.widget-tile__resize-handle{position:absolute;background:transparent;z-index:10;opacity:0;transition:opacity .15s ease}.widget-tile:hover .widget-tile__resize-handle{opacity:1}.widget-tile__resize-handle--e{right:0;top:12px;bottom:12px;width:8px;cursor:ew-resize}.widget-tile__resize-handle--s{bottom:0;left:12px;right:12px;height:8px;cursor:ns-resize}.widget-tile__resize-handle--se{right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize}.widget-tile__resize-handle:after{content:"";position:absolute;background:#3b82f666;border-radius:4px}.widget-tile__resize-handle--e:after{right:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.widget-tile__resize-handle--s:after{bottom:2px;left:50%;transform:translate(-50%);width:24px;height:3px}.widget-tile__resize-handle--se:after{right:3px;bottom:3px;width:8px;height:8px;border-radius:2px}.widget-card--scrollable{overflow-y:auto;flex:1;min-height:0;max-height:100%;-webkit-overflow-scrolling:touch}.widget-card--scrollable::-webkit-scrollbar{width:4px}.widget-card--scrollable::-webkit-scrollbar-track{background:transparent}.widget-card--scrollable::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:2px}.widget-card--scrollable::-webkit-scrollbar-thumb:hover{background:#94a3b899}.widget-tile__controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.widget-tile__titles{display:flex;flex-direction:column;gap:.15rem}.widget-tile__eyebrow{margin:0;line-height:1.1}.widget-tile__title-row{display:flex;align-items:baseline;gap:.5rem}.widget-tile__title{font-weight:var(--font-semibold);color:var(--text-primary);font-size:1rem;line-height:1.4;letter-spacing:.01em}.widget-tile__timestamp{font-size:.75rem;color:#94a3b8;font-weight:400;white-space:nowrap}.widget-tile__actions{display:inline-flex;align-items:center;gap:.25rem}.widget-tile__drag{color:#64748b;cursor:grab}.widget-card{display:flex;flex-direction:column;gap:.5rem;margin:0;width:100%;height:100%;min-height:0;background:transparent;border-radius:0;padding:0}.widget-tile>.widget-card{flex:1;min-height:0}.widget-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.widget-card__title{margin:0;font-size:1rem}.widget-card__toolbar{display:flex;justify-content:flex-end;margin-bottom:.35rem}.widget-card__error{margin:.25rem 0 0;color:#b91c1c;font-size:.9rem}.widget-card__info-btn{width:28px;height:28px;padding:0;border-radius:6px;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:background .15s ease,color .15s ease}.widget-card__info-btn .material-symbols-outlined{font-size:20px}.widget-card__info-btn:hover{background:#f1f5f9;color:#475569}.widget-card__empty{margin:0;color:#334155;font-size:.95rem}.widget-card__loading{display:flex;align-items:center;justify-content:center;flex:1;min-height:60px}.widget-card__loading .spinner{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#3b82f6}.widget-card--placeholder{display:flex;align-items:center;justify-content:center;min-height:120px}.widget-card--stats{display:grid;gap:.75rem}.daily-mileage-widget__chart{display:flex;flex-direction:column;gap:.55rem}.daily-mileage-widget{position:relative}.daily-mileage-widget__row{position:relative;display:flex;align-items:center;width:100%;padding-right:90px;margin:0 0 .55rem}.daily-mileage-widget__row--clickable{cursor:pointer;border-radius:6px;transition:background-color .15s}.daily-mileage-widget__row--clickable:hover{background:#3b82f60d}.daily-mileage-widget__bar-wrapper{position:relative;width:100%;min-height:40px;display:flex;align-items:center}.daily-mileage-widget__bar{position:relative;flex:0 0 auto;height:40px;border-radius:12px;background:linear-gradient(135deg,#93c5fd,#bfdbfe 70%,#dbeafe);box-shadow:inset 0 1px #ffffff80;max-width:100%;overflow:visible}.daily-mileage-widget__bar-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:var(--font-semibold);color:#1e40af;text-shadow:none;letter-spacing:.02em;pointer-events:none;white-space:nowrap}.daily-mileage-widget__label{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#fffffff2;border-radius:4px;max-width:50%}.daily-mileage-widget__plate{flex-shrink:0;font-size:.7rem;background:#f1f5f9;padding:.1rem .35rem;border-radius:6px;color:#334155;font-weight:500;white-space:nowrap}.daily-mileage-widget__name{font-size:.6875rem;font-weight:500;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-mileage-widget__legend{position:absolute;top:calc(100% + 10px);right:12px;width:240px;background:#fff;border:1px solid rgba(148,163,184,.4);box-shadow:0 12px 30px #0f172a33;border-radius:12px;padding:.75rem;z-index:5}.daily-mileage-widget__legend-title{margin:0 0 .5rem;font-size:.9375rem;font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em}.daily-mileage-widget__legend ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.daily-mileage-widget__legend li{display:flex;flex-direction:column;gap:.15rem}.daily-mileage-widget__legend-number{font-size:.75rem;text-transform:uppercase;color:#1d4ed8;font-weight:var(--font-semibold);letter-spacing:.02em}.daily-mileage-widget__legend-name{font-size:.875rem;color:var(--text-primary);font-weight:var(--font-medium);letter-spacing:.01em}.widget-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.widget-stats--compact{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.widget-stat{background:#fff;border:1px solid rgba(148,163,184,.18);border-radius:10px;padding:.65rem}.widget-stat--clickable{cursor:pointer;transition:all .15s ease}.widget-stat--clickable:hover{border-color:#3b82f6;background:#f8fafc;box-shadow:0 2px 8px #3b82f61a}.widget-stat__label{margin:0;color:#334155;font-size:.9rem}.widget-stat__value{margin:.25rem 0 0;font-weight:var(--font-semibold);font-size:1.125rem;color:var(--text-primary);letter-spacing:.01em}.widget-stat__value--positive{color:#16a34a}.widget-stat__value--warning{color:#b45309}.widget-stat__value--muted{color:#334155}.widget-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.35rem .75rem;font-size:.85rem}.widget-chip--muted{background:#f1f5f9;color:#334155}.widget-chip--positive{background:#ecfdf3;color:#166534}.widget-chip--outline{border:1px solid rgba(15,23,42,.12);color:#0f172a}.widget-card--list{display:flex;flex-direction:column;gap:.75rem}.widget-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.widget-list__item{display:flex;flex-direction:column;gap:.35rem;padding:.65rem;border:1px solid rgba(226,232,240,.9);border-radius:12px;background:#fff}.widget-list__item--clickable{cursor:pointer;transition:background-color .15s,border-color .15s}.widget-list__item--clickable:hover{background:#f8fafc;border-color:#cbd5e1}.widget-list__titles{display:flex;flex-direction:column;gap:.1rem}.widget-list__title{margin:0;font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em;line-height:1.4}.widget-list__subtitle{margin:0;color:#334155;font-size:.9rem}.widget-list__meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.widget-list__time{color:#334155;font-size:.9rem}.widget-badge{padding:.25rem .6rem;border-radius:999px;font-size:.875rem;font-weight:var(--font-medium);letter-spacing:.02em}.widget-badge--positive{background:#ecfdf3;color:#166534}.widget-badge--warning{background:#fffbeb;color:#92400e}.widget-badge--muted{background:#f8fafc;color:#334155}.widget-library__search{flex-shrink:0;margin-bottom:.75rem}.widget-library__tabs{display:flex;gap:.25rem;flex-shrink:0;margin-bottom:.75rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.widget-library__tabs::-webkit-scrollbar{display:none}.widget-library__tab{padding:.4rem .85rem;border:none;border-radius:8px;font-size:.8rem;font-weight:500;background:transparent;color:#475569;cursor:pointer;white-space:nowrap;transition:all .2s}.widget-library__tab:hover{background:#f1f5f9}.widget-library__tab--active{background:var(--primary, #3b82f6);color:#fff}.widget-library__tab--active:hover{background:var(--primary, #3b82f6);opacity:.9}.widget-library{display:block}.widget-library__item{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;transition:background .15s}.widget-library__item:hover{background:#f1f5f9}.widget-library__icon{flex-shrink:0;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#eff6ff,#dbeafe);display:flex;align-items:center;justify-content:center}.widget-library__icon .material-symbols-outlined{font-size:20px;color:#3b82f6}.widget-library__item--added .widget-library__icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.widget-library__body{flex:1;min-width:0}.widget-library__title{margin:0;font-weight:600;color:#0f172a;font-size:.875rem;line-height:1.3}.widget-library__description{margin:.125rem 0 0;color:#64748b;font-size:.78rem;line-height:1.35}.widget-library__actions{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.widget-library__added-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;color:#3b82f6;font-weight:500}.widget-library__added-badge .material-symbols-outlined{font-size:13px}.widget-library__add-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .75rem;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#374151;font-size:.78rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s}.widget-library__add-btn:hover{border-color:#3b82f6;background:#eff6ff;color:#2563eb}.widget-library__empty{text-align:center;color:#94a3b8;padding:2rem 0;font-size:.9rem}.widget-library__footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;flex-shrink:0}.widget-library__learn-more{margin:0;font-size:.78rem;color:#64748b}.widget-library__learn-more a{color:#3b82f6;text-decoration:underline}.widget-library__footer .primary{font-size:.85rem;padding:.5rem 1.25rem;border-radius:10px;white-space:nowrap}.widget-board__grid:empty{min-height:140px;border:1px dashed rgba(148,163,184,.5);border-radius:12px}.modal--wide{max-width:900px;width:100%}.modal__actions--end{display:flex;justify-content:flex-end}.modal__actions--between{display:flex;justify-content:space-between;align-items:center}.modal-backdrop--library{overflow-y:hidden;align-items:flex-start;padding-top:2rem}.modal--library{max-width:960px;width:100%;display:flex;flex-direction:column;height:calc(100vh - 4rem);height:calc(100dvh - 4rem)}.modal--library .modal__header{flex-shrink:0}.modal--library .widget-library{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:.25rem}.modal--library .modal__actions,.modal--library .widget-library__footer{flex-shrink:0}.widget-library__group{margin-bottom:.75rem;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.widget-library__group:last-child{margin-bottom:0}.widget-library__group-title{margin:0;font-size:.75rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;padding:.5rem .75rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.widget-library__group-items{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.widget-library__item{border-bottom:1px solid #f1f5f9}.widget-library__item:nth-child(odd){border-right:1px solid #f1f5f9}.widget-library__group-items .widget-library__item:nth-last-child(-n+2){border-bottom:none}@media(max-width:640px){.widget-library__group-items{grid-template-columns:1fr}.widget-library__item:nth-child(odd){border-right:none}.modal-backdrop--library{padding:0;align-items:stretch}.modal--library{max-width:100%;max-height:100vh;max-height:100dvh;height:100%;border-radius:0}.modal--library .modal__body{padding:.75rem}}.modal--library .widget-library::-webkit-scrollbar{width:5px}.modal--library .widget-library::-webkit-scrollbar-track{background:transparent}.modal--library .widget-library::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal--library .widget-library::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media(min-width:720px){.widget-board__header{flex-direction:row;align-items:flex-start;justify-content:space-between}.settings-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.custom-field-row{grid-template-columns:1fr 1fr auto;align-items:center}}@media(min-width:768px){.auth-card{padding:2.5rem}}@media(max-width:768px){.dashboard-shell{padding:0;gap:0}.dashboard-hero{border-radius:10px}.hero-top{flex-direction:column;align-items:flex-start}.hero-actions{width:100%}.hero-btn{flex:1;justify-content:center;padding:.45rem .75rem;font-size:.85rem}.panel{border-radius:10px;padding:1rem}.login-shell{padding:3rem 1rem}.login-card{padding:2rem}.auth-card{padding:1.25rem 1rem;border-radius:16px}.auth-header{gap:.25rem;margin-bottom:1rem}.auth-header h1{font-size:1.5rem}.auth-card .form{gap:.75rem}.auth-card .field{margin-bottom:.5rem}.user-menu__action--help{display:none}}.modal-overlay{position:fixed;inset:0;background:#0f172a4d;display:flex;align-items:center;justify-content:center;z-index:10100;padding:1rem}.modal-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0f172a40;width:100%;max-width:480px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.modal-content--device-list{max-width:420px}.modal-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.modal-title{margin:0;font-size:.875rem;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary)}.modal-count{font-size:.875rem;color:#475569;font-weight:400}.modal-close{margin-left:auto;background:none;border:none;padding:.25rem;cursor:pointer;color:#475569;border-radius:4px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:#f1f5f9;color:#0f172a}.modal-body{padding:1rem 1.25rem;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}.device-list-modal__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.device-list-modal__item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;background:#f8fafc;border-radius:8px;transition:background .15s;cursor:pointer}.device-list-modal__item:hover{background:#f1f5f9}.device-list-modal__status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.device-list-modal__status--online{background:#16a34a}.device-list-modal__status--offline{background:#64748b}.device-list-modal__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.device-list-modal__name{font-size:.875rem;font-weight:var(--font-medium);color:var(--text-primary);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-list-modal__plate{display:inline-block;width:fit-content;font-size:.75rem;background:#f1f5f9;padding:.1rem .4rem;border-radius:6px;color:#475569;font-weight:500}.device-list-modal__serial{font-size:.75rem;color:#475569;flex-shrink:0}.device-list-modal__right{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.device-list-modal__duration{display:flex;align-items:center;gap:.2rem;font-size:.75rem;font-weight:500;color:#3b82f6;background:#f1f5f9;padding:.15rem .4rem;border-radius:6px}.device-list-modal__duration .material-symbols-outlined{font-size:14px}.device-list-modal__duration--moving{color:#2563eb;background:#f1f5f9}.device-list-modal__duration--stopped{color:#64748b;background:#f1f5f9}.device-list-modal__empty{margin:0;font-size:.875rem;color:#64748b;text-align:center;padding:2rem 0}@media(max-width:520px){.modal-overlay{padding:0;align-items:flex-end}.modal-content{max-width:100%;width:100%;border-radius:16px 16px 0 0;max-height:70vh;max-height:70dvh}}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);color:var(--text-primary);letter-spacing:.01em;line-height:1.3}p{line-height:1.5;letter-spacing:.01em}button{font-family:inherit;font-weight:var(--font-medium);letter-spacing:.02em;line-height:1.4}input,textarea,select{font-family:inherit;font-weight:var(--font-regular);letter-spacing:.01em;line-height:1.5;color:var(--text-primary)}input::placeholder,textarea::placeholder{color:var(--text-muted)}a{color:inherit;text-decoration:none}.metric-value,.widget-stat__value,.status-icon__value,.health-status__count,.control-time,.meta-chip__value{font-feature-settings:"tnum" 1,"lnum" 1}.panel,.widget-tile,.modal,.modal-content{box-shadow:0 1px 3px #0000000a,0 4px 12px #0000000f}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid rgba(99,102,241,.5);outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.search-bar{display:flex;flex-direction:row;align-items:center;gap:.35rem;background:#f8fafc;border-radius:6px;padding:0 .5rem;border:1px solid #e2e8f0;transition:all .15s;height:32px;box-sizing:border-box;min-width:0}.search-bar:focus-within{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.search-bar .search-icon{font-size:18px;color:#64748b;flex-shrink:0}.search-bar .search-input{border:none;background:transparent;padding:0;font-size:.875rem;height:100%;flex:1;min-width:0;white-space:nowrap;text-overflow:ellipsis;color:#0f172a;outline:none}.search-bar .search-input::placeholder{color:#94a3b8}.search-bar .search-input:focus{outline:none;box-shadow:none}.search-bar .search-input::-webkit-search-cancel-button,.search-bar .search-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.search-bar .search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:#94a3b8;flex-shrink:0}.search-bar .search-clear:hover{color:#64748b}.search-bar .search-clear .material-symbols-outlined{font-size:16px}
