body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.demo-logo{padding:0 24px}@media (max-width:768px){.ant-table{overflow-x:auto}}.station-config-section{margin-bottom:16px}.station-info-item{margin-bottom:8px}.station-info-item label{color:#666;display:block;font-weight:500;margin-bottom:4px}.station-info-item div{background:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px;color:#333;font-family:Courier New,monospace;padding:4px 8px}.measurements-tags{display:flex;flex-wrap:wrap;gap:8px}.empty-state{color:#999;font-style:italic;padding:20px;text-align:center}.camera-icon{color:#1890ff;font-size:16px}.camera-preview{margin-bottom:16px}.camera-preview-label{color:#333;font-weight:500}.camera-preview-iframe{border:1px solid #d9d9d9;border-radius:6px}.camera-modal-actions{border-top:1px solid #f0f0f0;margin-top:16px;padding-top:16px}@media (max-width:768px){.measurements-tags{flex-direction:column}.camera-preview-iframe{height:200px}}.station-management{width:100%}.station-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.station-management-header h3{color:#262626;font-size:18px;font-weight:600;margin:0}.stations-cards{display:flex;flex-direction:column;gap:16px}.station-card{border:1px solid #d9d9d9;border-radius:8px}.station-card .ant-card-head{background:#fafafa;border-bottom:1px solid #f0f0f0}.station-card .ant-card-head-title{color:#262626;font-weight:600}.station-field{margin-bottom:12px}.station-field label{color:#666;display:block;font-size:14px;font-weight:500;margin-bottom:4px}.station-field div{color:#262626;font-size:14px}.station-field .ant-input{font-size:14px}@media (max-width:768px){.station-management-header{align-items:flex-start;flex-direction:column;gap:16px}.stations-table .ant-table{font-size:12px}.station-card{margin-bottom:12px}.station-field{margin-bottom:8px}}@media (max-width:576px){.station-management{padding:12px}.stations-table .ant-table{font-size:11px}.station-field div,.station-field label{font-size:12px}}.station-management .ant-spin-container{min-height:200px}.station-management .ant-empty{margin:40px 0}.add-customer-form-item{margin-bottom:16px}.add-customer-form-label{display:block;margin-bottom:4px}.add-customer-select-full-width{width:100%}.add-customer-steps{margin-bottom:24px}.add-customer-back-button{margin-bottom:16px}.add-customer-actions{margin-top:24px}.station-measurements-container{margin-bottom:16px}.station-measurements-label{color:#1890ff;display:block;font-weight:500;margin-bottom:4px}.station-measurements-tags{background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;margin-top:8px;padding:12px}.station-measurements-empty{background:#fff2e8;border:1px solid #ffbb96;border-radius:6px;color:#d46b08;font-style:italic;margin-top:8px;padding:12px}.station-cameras-container{margin-bottom:16px}.station-cameras-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.station-cameras-label{color:#722ed1;display:block;font-weight:500;margin-bottom:4px}.station-cameras-list{background:#f9f0ff;border:1px solid #d3adf7;border-radius:6px;margin-top:8px;padding:12px}.station-cameras-empty{background:#fff2e8;border:1px solid #ffbb96;border-radius:6px;color:#d46b08;font-style:italic;margin-top:8px;padding:12px}.camera-icon{color:#722ed1}.camera-test-button{margin-right:8px}.camera-test-success{color:#52c41a;font-size:12px}.camera-preview-container{background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;margin-bottom:16px;padding:12px}.camera-preview-label{color:#389e0d;display:block;font-weight:700;margin-bottom:8px}.camera-preview-iframe{border-radius:4px}.camera-modal-actions{text-align:right}@media (max-width:768px){.add-customer-form-item{margin-bottom:12px}.station-cameras-list,.station-measurements-tags{padding:8px}}.readonly-field{background-color:#f5f5f5;border-color:#d9d9d9;color:#000000a6;cursor:not-allowed}.readonly-field:focus,.readonly-field:hover{border-color:#d9d9d9;box-shadow:none}.user-management{width:100%}.user-management-header{margin-bottom:16px}.user-management-header h3{color:#1890ff;font-weight:600}.user-management-filters{background:#fafafa;border:1px solid #d9d9d9;border-radius:6px;padding:16px}.user-management .ant-table-thead>tr>th{background:#fafafa;font-weight:600}.user-management .ant-table-tbody>tr:hover>td{background:#f5f5f5}.user-management .ant-btn-link{height:auto;padding:4px 8px}.user-management .ant-btn-link:hover{background:#1890ff1a;border-radius:4px}.user-management .ant-tag{border-radius:4px;margin:0}.user-management .ant-modal-header{border-bottom:1px solid #f0f0f0}.user-management .ant-modal-footer{border-top:1px solid #f0f0f0}.user-management .ant-form-item-label>label{font-weight:500}.user-management .ant-input,.user-management .ant-input-password,.user-management .ant-select-selector{border-radius:6px}.user-management .ant-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}.user-management .ant-card-body{padding:24px}.user-management .ant-table{border-radius:6px}.user-management .ant-pagination{margin-top:16px}.user-management .status-active{color:#52c41a}.user-management .status-banned{color:#ff4d4f}.user-management .status-pending{color:#faad14}.user-management .action-btn-reset{color:#1890ff}.user-management .action-btn-ban{color:#faad14}.user-management .action-btn-unban{color:#52c41a}.user-management .action-btn-delete{color:#ff4d4f}.user-management .action-btn-ban:hover,.user-management .action-btn-delete:hover,.user-management .action-btn-reset:hover,.user-management .action-btn-unban:hover{background:#0000000a;border-radius:4px}@media (max-width:768px){.user-management-header{flex-direction:column;gap:12px}.user-management-filters{padding:12px}.user-management .ant-table{font-size:12px}.user-management .ant-btn{font-size:12px;padding:4px 8px}}.user-management .ant-spin-container{min-height:200px}.user-management .ant-empty{margin:40px 0}.user-management .ant-form-item{margin-bottom:16px}.user-management .ant-form-item-label{padding-bottom:4px}.user-management .ant-form-item-control-input{min-height:32px}.user-management .ant-modal-content{border-radius:8px}.user-management .ant-modal-title{color:#262626;font-weight:600}.user-management .ant-input-search .ant-input-group .ant-input-affix-wrapper{border-radius:6px 0 0 6px}.user-management .ant-input-search .ant-input-search-button{border-radius:0 6px 6px 0}.user-management .ant-table-thead>tr>th{border-bottom:2px solid #f0f0f0}.user-management .ant-table-tbody>tr>td{border-bottom:1px solid #f5f5f5}.user-management .ant-table-tbody>tr:last-child>td{border-bottom:none}.user-management .ant-tooltip-inner{border-radius:4px}.user-management .ant-popover-inner{border-radius:6px}.user-management .ant-popover-buttons{margin-top:8px}.user-management .ant-popover-buttons .ant-btn{font-size:12px;height:28px;margin-left:8px;padding:4px 12px}:where(.css-dev-only-do-not-override-thorm).ant-layout-sider .ant-layout-sider-trigger{background:#000}.notifications-table .ant-table-tbody>tr.ant-table-row:hover>td{background-color:#f5f5f5}.notifications-table .ant-table-thead>tr>th{background-color:#fafafa;font-weight:600}.notifications-table .ant-tag{margin:0}.notifications-table .ant-space{gap:4px!important}.notifications-table .ant-btn-link{height:auto;padding:0}@media (max-width:768px){.notifications-table .ant-table{font-size:12px}.notifications-table .ant-table-tbody>tr>td,.notifications-table .ant-table-thead>tr>th{padding:8px 4px}}.notifications-table .ant-table-tbody>tr[data-unread=true]{background-color:#f6ffed}.notifications-table .ant-table-tbody>tr[data-unread=true]:hover>td{background-color:#d9f7be}.customer-detail-container{min-height:100vh;padding:24px}.customer-detail-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}.back-button{align-items:center;display:flex;gap:8px}.page-title{color:#262626;font-size:24px;font-weight:600;margin:0}.customer-detail-loading{align-items:center;display:flex;height:400px;justify-content:center}.customer-detail-error{padding:24px}.error-content{padding:40px;text-align:center}.error-content h3{color:#ff4d4f;margin-bottom:16px}.customer-detail-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.customer-tabs .ant-tabs-nav{margin-bottom:24px}.customer-tabs .ant-tabs-tab{font-size:16px;font-weight:500}.customer-info-tab{padding:16px 0}.customer-descriptions .ant-descriptions-title{font-size:18px;font-weight:600;margin-bottom:16px}.customer-descriptions .ant-descriptions-item-label{color:#595959;font-weight:600}.user-management-tab{padding:16px 0}.empty-tab-content{background:#fafafa;border:2px dashed #d9d9d9;border-radius:8px;padding:60px 20px;text-align:center}.empty-tab-content h3{color:#595959;font-size:18px;margin-bottom:8px}.empty-tab-content p{color:#8c8c8c;margin:0}.notifications-tab,.stations-tab{padding:16px 0}.stations-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.stations-header h3{color:#262626;font-size:18px;font-weight:600;margin:0}.stations-table .ant-table-thead>tr>th{background:#fafafa;color:#262626;font-weight:600}.station-name{color:#262626;font-weight:600;margin-bottom:4px}.station-code{color:#8c8c8c;font-family:Courier New,monospace;font-size:14px}.station-location{align-items:center;display:flex;gap:8px}.location-icon{color:#1890ff;font-size:14px}.station-coordinates{color:#595959;font-family:Courier New,monospace;font-size:14px}.station-coordinates div{margin-bottom:2px}.station-status{border-radius:12px;font-size:11px;font-weight:500;padding:4px 8px;text-transform:uppercase}.station-status.normal{background:#f6ffed;border:1px solid #b7eb8f;color:#52c41a}.station-status.warning{background:#fffbe6;border:1px solid #ffe58f;color:#faad14}.station-status.danger{background:#fff2f0;border:1px solid #ffccc7;color:#ff4d4f}.station-status.offline{background:#f5f5f5;border:1px solid #d9d9d9;color:#8c8c8c}.station-status.unknown{background:#f0f0f0;border:1px solid #d9d9d9;color:#595959}.no-coordinates{color:#8c8c8c;font-style:italic}.measurements-info{align-items:flex-start;display:flex;flex-direction:column}.measurements-info span{font-size:13px;font-weight:500}.measurements-info .ant-btn-link{height:auto!important;line-height:1.2;padding:0!important}.measurements-info .ant-btn-link:hover{color:#40a9ff!important;text-decoration:underline}.measurements-table{background:#fafafa;border-radius:6px;overflow:hidden}.measurements-table .ant-table-thead>tr>th{background:#f0f2f5;font-size:12px;font-weight:600;padding:8px 12px}.measurements-table .ant-table-tbody>tr>td{font-size:12px;padding:8px 12px}.measurements-table .ant-table-tbody>tr:hover>td{background:#e6f7ff}.measurements-table .ant-tag{border-radius:3px;font-size:11px;margin:0;padding:2px 6px}@media (max-width:768px){.customer-detail-container{padding:16px}.customer-detail-header{align-items:flex-start;flex-direction:column;gap:12px}.page-title{font-size:20px}.stations-header{align-items:flex-start;flex-direction:column;gap:16px}.customer-descriptions{column-count:1}}@media (max-width:576px){.customer-detail-container{padding:12px}.customer-tabs .ant-tabs-tab{font-size:14px;padding:8px 12px}.stations-table .ant-table{font-size:12px}}.users-page{width:100%}@media (max-width:768px){.users-page{padding:0 8px}}@media (max-width:480px){.users-page{padding:0 4px}}.stations-page{background-color:#f5f5f5;min-height:100vh;padding:24px}.stations-header-card{border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.stations-header{padding:20px 0;text-align:center}.stations-icon{color:#1890ff;display:block;font-size:48px;margin-bottom:16px}.stations-title{color:#262626;margin-bottom:8px!important}.stations-description{color:#8c8c8c;font-size:16px;margin-bottom:0}.stations-content-card{border-radius:8px;box-shadow:0 2px 8px #0000001a}@media (max-width:768px){.stations-page{padding:16px}.stations-icon{font-size:36px}.stations-title{font-size:20px!important}.stations-description{font-size:14px}}.notifications-page{min-height:100vh;padding:0}.notifications-page .ant-card{border-radius:8px}.notifications-page .ant-table-wrapper{background-color:#fff;border-radius:8px}.notifications-page .ant-typography h2{color:#1890ff;margin-bottom:16px}.fee-notification-container{background:#fff;color:#000;font-family:Aptos Display,serif;line-height:1.5;margin:0 auto;max-width:800px;padding:20px}.control-buttons{display:flex;gap:10px;justify-content:flex-end;margin-bottom:20px}.notification-content{background:#fff;padding:20px}.header{margin-bottom:20px}.header-content{align-items:center;display:flex;gap:20px}.logo-section{flex-shrink:0}.company-logo{height:80px;object-fit:contain;width:150px}.company-info{flex:1 1;text-align:center}.company-name{color:#000;font-size:16px;font-weight:700;margin:0 0 10px;text-transform:uppercase}.header p{color:#000;font-size:12px;margin:5px 0}.title{color:#000;font-size:18px;font-weight:700;margin:20px 0;text-align:center;text-transform:uppercase}.content{margin-bottom:20px}.content>p{margin-bottom:15px}.content>h3,.content>p{color:#000;font-size:14px}.content>h3{font-weight:700;margin:20px 0 10px}.info-table{border-collapse:collapse;font-size:14px;margin-bottom:20px;width:100%}.info-table td{border:1px solid #000;color:#000;padding:8px;vertical-align:top}.info-table td:first-child{background-color:#f5f5f5;font-weight:700;width:40%}.footer{margin-top:30px;text-align:right}.footer p{color:#000;font-size:14px;margin:10px 0}.error-container,.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.loading-container p{color:#000;font-size:16px;margin-top:20px}@media print{.no-print{display:none!important}.fee-notification-container{margin:0;max-width:none;padding:0}.company-logo{height:60px;print-color-adjust:exact;-webkit-print-color-adjust:exact;width:60px}.notification-content{padding:15px}.info-table td:first-child{background-color:#fff!important}*{background:#fff!important;color:#000!important}.info-table td{border:1px solid #000!important}}.login-container{align-items:center;background:linear-gradient(135deg,#84bd68,#478a2f);display:flex;justify-content:center;min-height:100vh}.login-card{border:none;border-radius:12px;box-shadow:0 8px 32px #0000001a;max-width:400px;overflow:hidden;width:100%}.login-header{margin-bottom:32px;text-align:center}.login-logo{margin-bottom:20px}.logo-image{height:120px;max-width:240px;object-fit:contain;width:auto}.login-title{color:#1f2937;font-weight:600;margin-bottom:8px!important}.login-subtitle{color:#6b7280;font-size:14px}.login-form{margin-top:24px}.login-form .ant-form-item-label>label{color:#374151;font-weight:500}.login-button{font-size:16px;font-weight:500;height:44px;margin-top:8px}.login-footer{margin-top:16px;text-align:center}.forgot-password-link{color:#478a2f;font-weight:500;height:auto;padding:0}.forgot-password-link:hover{color:#478a2f}@media (max-width:480px){.login-container{padding:16px}.login-card{margin:0;max-width:100%}.login-title{font-size:24px}}.login-form .ant-input-focused,.login-form .ant-input-password-focused,.login-form .ant-input-password:focus,.login-form .ant-input:focus{border-color:#478a2f;box-shadow:0 0 0 2px #6366f11a}.login-button,.login-button.ant-btn-loading,.login-button:focus,.login-button:hover{background:#478a2f;border-color:#478a2f}.login-form .ant-form-item-has-error .ant-input{border-color:#ef4444}.login-form .ant-form-item-has-error .ant-input:focus{border-color:#ef4444;box-shadow:0 0 0 2px #ef44441a}.reset-password-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.reset-password-card{border:none;border-radius:12px;box-shadow:0 8px 32px #0000001a;max-width:400px;overflow:hidden;width:100%}.reset-password-header{margin-bottom:32px;text-align:center}.reset-password-title{color:#1f2937;font-weight:600;margin-bottom:8px!important}.reset-password-subtitle{color:#6b7280;font-size:14px}.reset-password-form{margin-top:24px}.reset-password-form .ant-form-item-label>label{color:#374151;font-weight:500}.reset-password-button{background:#6366f1;border-color:#6366f1;font-size:16px;font-weight:500;height:44px;margin-top:8px}.reset-password-button:focus,.reset-password-button:hover{background:#4f46e5;border-color:#4f46e5}.reset-password-footer{margin-top:24px;text-align:center}.back-to-login-link{color:#6366f1;font-weight:500;height:auto;padding:0}.back-to-login-link:hover{color:#4f46e5}@media (max-width:480px){.reset-password-container{padding:16px}.reset-password-card{margin:0;max-width:100%}.reset-password-title{font-size:24px}}.reset-password-form .ant-input-focused,.reset-password-form .ant-input-password-focused,.reset-password-form .ant-input-password:focus,.reset-password-form .ant-input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.reset-password-form .ant-form-item-has-error .ant-input{border-color:#ef4444}.reset-password-form .ant-form-item-has-error .ant-input:focus{border-color:#ef4444;box-shadow:0 0 0 2px #ef44441a}.reset-password-card .ant-result{padding:24px 0}.reset-password-card .ant-result-title{color:#1f2937;font-weight:600}.reset-password-card .ant-result-subtitle{color:#6b7280}