.layout{min-height:100vh}.sidebar{background:var(--gradient-dark)!important;transition:all var(--transition-normal);border-right:none!important;overflow:hidden}.sidebar .ant-sider-children{height:100%;display:flex;flex-direction:column}.logo{height:64px;display:flex;align-items:center;justify-content:flex-start;padding:0 20px;border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff05}.logo-icon{font-size:28px;margin-right:12px;flex-shrink:0;filter:drop-shadow(0 2px 8px rgba(0,0,0,.2))}.logo-text{font-size:17px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.5px}.sidebar-menu{margin-top:16px;flex:1;overflow-y:auto;padding:0 8px}.sidebar-menu.ant-menu-dark{background:transparent!important}.sidebar-menu .ant-menu-item,.sidebar-menu .ant-menu-submenu-title{margin:4px 0!important;border-radius:10px!important;height:44px!important;line-height:44px!important;padding-inline:12px!important;transition:all var(--transition-fast)}.sidebar-menu .ant-menu-item .anticon,.sidebar-menu .ant-menu-submenu-title .anticon{font-size:18px}.sidebar-menu .ant-menu-item-selected{background:linear-gradient(135deg,#667eea,#764ba2)!important;box-shadow:0 4px 12px #667eea59}.sidebar-menu .ant-menu-item:hover:not(.ant-menu-item-selected){background:#ffffff14!important}.header{background:var(--color-bg-primary);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:64px;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-left{display:flex;align-items:center;gap:16px;flex:1;min-width:0}.menu-toggle{font-size:20px;color:var(--color-gray-600);padding:8px;border-radius:10px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.menu-toggle:hover{background:var(--color-gray-100);color:var(--color-primary)}.header-left .app-title{font-size:18px;font-weight:600;color:var(--color-gray-800);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-right{display:flex;align-items:center;gap:12px}.user-info{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 16px;border-radius:12px;transition:all var(--transition-fast)}.user-info:hover{background:var(--color-gray-100)}.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}.user-icon{font-size:18px;color:var(--color-gray-500)}.user-name{font-size:14px;color:var(--color-gray-700);font-weight:500;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-icon{font-size:12px;color:var(--color-gray-400);transition:transform var(--transition-fast)}.user-info:hover .dropdown-icon{transform:translateY(2px)}.content{padding:24px;background:var(--color-bg-secondary);min-height:calc(100vh - 64px);overflow-y:auto}.dropdown-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;border-radius:8px;transition:background var(--transition-fast)}.dropdown-item:hover{background:var(--color-gray-100)}.item-icon{font-size:16px;width:20px;text-align:center}@media(max-width:1024px){.content{padding:20px}}@media(max-width:768px){.layout{font-size:14px}.sidebar{position:fixed;left:0;top:0;height:100vh;z-index:1000;box-shadow:2px 0 8px #00000026}.logo{padding:0 16px}.logo-text{font-size:15px}.header{padding:0 16px;height:56px}.header-left{gap:12px}.header-left .app-title{font-size:16px}.header-right{gap:8px}.user-info{gap:8px;padding:6px 12px}.user-name{display:none}.user-avatar{width:32px;height:32px;font-size:13px}.content{padding:16px}.mobile-sidebar-drawer .ant-drawer-body{padding:0}}@media(max-width:480px){.header{padding:0 12px}.header-left .app-title{font-size:15px}.content{padding:12px}.menu-toggle{padding:6px}}@media(min-width:769px)and (max-width:1024px){.header{padding:0 20px}.header-left .app-title{font-size:17px}.content{padding:20px}}.home-page{max-width:1200px;margin:0 auto}.welcome-card{margin-bottom:24px;border-radius:16px;overflow:hidden}.welcome-card .ant-card-body{padding:0}.welcome-content{padding:32px}.welcome-header{display:flex;align-items:center;justify-content:space-between;gap:32px}.welcome-text{flex:1}.welcome-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:var(--color-primary-bg);border-radius:100px;margin-bottom:16px}.welcome-icon{font-size:16px}.welcome-badge span{font-size:14px;font-weight:500;color:var(--color-primary)}.welcome-title{font-size:32px;font-weight:700;color:var(--color-gray-800);margin:0 0 12px;letter-spacing:-.5px}.welcome-description{font-size:16px;color:var(--color-gray-600);margin:0;line-height:1.6}.welcome-illustration{width:180px;height:180px;position:relative;flex-shrink:0}.illustration-main{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:80px;z-index:2}.illustration-shape{position:absolute;border-radius:50%;opacity:.6}.illustration-shape.shape-1{width:120px;height:120px;background:var(--color-primary-200);top:10px;left:10px}.illustration-shape.shape-2{width:100px;height:100px;background:var(--color-secondary-200);bottom:10px;right:10px}.stats-section{margin-bottom:24px}.stat-card{border-radius:12px;transition:all var(--transition-normal)}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.stat-card .ant-statistic-title{font-size:14px;color:var(--color-gray-600);margin-bottom:4px}.stat-card .ant-statistic-content{font-size:28px;font-weight:700}.feature-grid{margin-top:0}.feature-card{border-radius:16px;overflow:hidden;transition:all var(--transition-normal)}.feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl)}.feature-card .ant-card-body{padding:0}.feature-cover{height:140px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.feature-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 100%)}.feature-cover .feature-icon{font-size:48px;color:#fff;z-index:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.2))}.feature-body{padding:20px}.feature-title{font-size:18px;font-weight:600;color:var(--color-gray-800);margin:0 0 12px}.feature-description{font-size:14px;color:var(--color-gray-600);margin:0 0 20px;line-height:1.6}.feature-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--color-primary);transition:all var(--transition-fast);text-decoration:none}.feature-link:hover{color:var(--color-primary-hover);gap:10px}.feature-link svg{transition:transform var(--transition-fast)}.feature-link:hover svg{transform:translate(4px)}@media(max-width:1024px){.welcome-content{padding:24px}.welcome-header{gap:24px}.welcome-illustration{width:150px;height:150px}.illustration-main{font-size:64px}}@media(max-width:768px){.home-page{padding:0}.welcome-content{padding:20px}.welcome-header{flex-direction:column;text-align:center}.welcome-text{width:100%}.welcome-title{font-size:24px}.welcome-description{font-size:14px}.welcome-illustration{width:120px;height:120px}.illustration-main{font-size:52px}.stat-card .ant-statistic-content{font-size:24px}.feature-cover{height:120px}.feature-cover .feature-icon{font-size:40px}.feature-body{padding:16px}}@media(max-width:480px){.welcome-content{padding:16px}.welcome-title{font-size:22px}.welcome-illustration{width:100px;height:100px}.illustration-main{font-size:44px}.feature-title{font-size:16px}.feature-description{font-size:13px}}.notification-page{min-height:100%}.notification-card{border-radius:16px;border:none;box-shadow:var(--shadow-sm)}.notification-card .ant-card-body{padding:24px}.page-title:before{content:"🔔";font-size:24px}.unread-alert{margin-bottom:20px;border-radius:12px;border:none}.notification-table{width:100%}.notification-table .ant-table-thead>tr>th{background:var(--color-gray-50);font-weight:600;color:var(--color-gray-700);border-bottom:1px solid var(--color-border)}.notification-table .ant-table-tbody>tr{transition:background var(--transition-fast)}.notification-table .ant-table-tbody>tr:hover>td{background:var(--color-primary-bg)}.notification-title{cursor:pointer;color:var(--color-primary);font-weight:500;transition:color var(--transition-fast);line-height:1.4}.notification-title:hover{color:var(--color-primary-hover);text-decoration:underline}.notification-detail{padding:8px 0}.detail-modal{max-width:90vw;width:600px}.notification-cards{display:flex;flex-direction:column;gap:16px}.notification-card-mobile{border-radius:12px;transition:all var(--transition-normal);border:1px solid var(--color-border-light)}.notification-card-mobile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.unread-card{border-left:4px solid var(--color-warning);background:linear-gradient(90deg,rgba(245,158,11,.05) 0%,transparent 100%)}.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.type-tag{flex-shrink:0}.card-time{font-size:13px;color:var(--color-gray-500)}.card-content{font-size:14px;color:var(--color-gray-600);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.snooze-modal{max-width:90vw;width:500px}.snooze-content{padding:8px 0}.snooze-info{margin-bottom:12px;line-height:1.5}.snooze-info strong{display:inline-block;width:70px;color:var(--color-gray-600);font-weight:500}.snooze-select{margin-top:20px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.snooze-select label{color:var(--color-gray-800);font-weight:500}@media(max-width:1024px){.notification-card .ant-card-body{padding:20px}.card-header{margin-bottom:20px}.page-title{font-size:20px}}@media(max-width:768px){.notification-card .ant-card-body{padding:16px}.card-header{flex-direction:column;align-items:flex-start;gap:12px}.header-actions{width:100%}.header-actions>*{flex:1;min-width:0}.page-title{font-size:18px}.unread-alert{margin-bottom:16px}.detail-modal{max-width:95vw;width:100%}.notification-detail{padding:4px 0}.detail-item strong{min-width:70px}.card-header-mobile,.card-actions{padding:12px}}@media(max-width:480px){.notification-card .ant-card-body{padding:12px}.card-header{margin-bottom:16px}.page-title{font-size:17px}.header-actions{gap:8px}.detail-item strong{display:block;margin-bottom:4px}.snooze-select label{width:100%}.snooze-select .ant-select{width:100%;margin-left:0!important}}.webhook-url-page{min-height:100%}.webhook-url-card{border-radius:16px;border:none;box-shadow:var(--shadow-sm)}.webhook-url-card .ant-card-body{padding:24px}.page-title:before{content:"🔗";font-size:24px}.webhook-url-table{width:100%}.webhook-url-table .ant-table-thead>tr>th{background:var(--color-gray-50);font-weight:600;color:var(--color-gray-700);border-bottom:1px solid var(--color-border)}.webhook-url-table .ant-table-tbody>tr{transition:background var(--transition-fast)}.webhook-url-table .ant-table-tbody>tr:hover>td{background:var(--color-primary-bg)}.url-text{font-family:var(--font-family-mono);font-size:13px;color:var(--color-gray-700)}.created-webhook-info{padding:8px 0}.info-item{margin-bottom:20px}.info-label{display:block;font-size:14px;font-weight:500;color:var(--color-gray-700);margin-bottom:8px}.url-display{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-gray-50);border-radius:10px;border:1px solid var(--color-border-light)}.url-display code{flex:1;font-family:var(--font-family-mono);font-size:13px;color:var(--color-gray-800);word-break:break-all;background:transparent;padding:0}@media(max-width:1024px){.webhook-url-card .ant-card-body{padding:20px}.card-header{margin-bottom:20px}.page-title{font-size:20px}}@media(max-width:768px){.webhook-url-card .ant-card-body{padding:16px}.card-header{flex-direction:column;align-items:flex-start;gap:12px}.page-title{font-size:18px}.url-display{flex-direction:column;align-items:flex-start}.url-display code,.url-display .ant-btn{width:100%}}@media(max-width:480px){.webhook-url-card .ant-card-body{padding:12px}.card-header{margin-bottom:16px}.page-title{font-size:17px}}.page-container{min-height:100%}.page-card{border-radius:16px;border:none;box-shadow:var(--shadow-sm)}.page-card .ant-card-body{padding:24px}.page-title .title-icon{font-size:24px}.page-table{width:100%}.page-table .ant-table-thead>tr>th{background:var(--color-gray-50);font-weight:600;color:var(--color-gray-700);border-bottom:1px solid var(--color-border)}.page-table .ant-table-tbody>tr{transition:background var(--transition-fast)}.page-table .ant-table-tbody>tr:hover>td{background:var(--color-primary-bg)}.page-pagination{margin-top:24px;display:flex;justify-content:flex-end}.page-alert{margin-bottom:20px;border-radius:12px}.page-modal .ant-modal-header{border-bottom:1px solid var(--color-border-light);padding:20px 24px}.page-modal .ant-modal-title{font-size:18px;font-weight:600}.page-modal .ant-modal-body{padding:24px}.page-modal .ant-modal-footer{border-top:1px solid var(--color-border-light);padding:16px 24px}.modal-form .ant-form-item{margin-bottom:20px}.modal-form .ant-form-item-label>label{font-weight:500}.form-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.detail-content{padding:8px 0}.detail-item strong{display:inline-block;min-width:90px;color:var(--color-gray-600);font-weight:500}.mobile-card-list{display:flex;flex-direction:column;gap:16px}.mobile-card{border-radius:12px;transition:all var(--transition-normal)}.mobile-card:hover{box-shadow:var(--shadow-md)}.mobile-card .ant-card-body{padding:16px}.mobile-card-header{margin-bottom:12px}.mobile-card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.mobile-card-title{font-size:16px;font-weight:600;color:var(--color-gray-800);margin:0;flex:1;line-height:1.4}.mobile-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.mobile-card-tag{flex-shrink:0}.mobile-card-time{font-size:13px;color:var(--color-gray-500)}.mobile-card-content{font-size:14px;color:var(--color-gray-600);margin:0;line-height:1.5}.mobile-card-footer{padding-top:12px;border-top:1px solid var(--color-border-light);display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.tag-primary{background:var(--color-primary-bg);color:var(--color-primary);border:1px solid var(--color-primary-border)}.tag-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.tag-warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.tag-error{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error-border)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.status-dot.active{background:var(--color-success);box-shadow:0 0 8px #22c55e66}.status-dot.inactive{background:var(--color-gray-400)}@media(max-width:1024px){.page-card .ant-card-body{padding:20px}.card-header{margin-bottom:20px}.page-title{font-size:20px}}@media(max-width:768px){.page-card .ant-card-body{padding:16px}.card-header{flex-direction:column;align-items:flex-start;gap:12px}.header-actions{width:100%}.header-actions>*{flex:1;min-width:0}.page-title{font-size:18px}.detail-item strong{min-width:70px}.page-alert{margin-bottom:16px}}@media(max-width:480px){.page-card .ant-card-body{padding:12px}.card-header{margin-bottom:16px}.page-title{font-size:17px}.header-actions{gap:8px}.detail-item strong{display:block;margin-bottom:4px}.page-modal .ant-modal-body{padding:16px}.page-modal .ant-modal-header,.page-modal .ant-modal-footer{padding-left:16px;padding-right:16px}}.mobile-page{min-height:100%}.mobile-card{border-radius:16px;border:none;box-shadow:var(--shadow-sm)}.mobile-card .ant-card-body{padding:24px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.page-title{font-size:22px;font-weight:700;color:var(--color-gray-800);margin:0;display:flex;align-items:center;gap:12px}.page-title:before{content:"📱";font-size:24px}.header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-select{min-width:120px}.action-button{display:inline-flex;align-items:center;gap:6px}.device-table{width:100%}.device-table .ant-table-thead>tr>th{background:var(--color-gray-50);font-weight:600;color:var(--color-gray-700);border-bottom:1px solid var(--color-border)}.device-table .ant-table-tbody>tr{transition:background var(--transition-fast)}.device-table .ant-table-tbody>tr:hover>td{background:var(--color-primary-bg)}.device-detail{padding:8px 0}.detail-item{margin-bottom:16px;line-height:1.6}.detail-item:last-child{margin-bottom:0}.detail-item strong{display:inline-block;min-width:100px;color:var(--color-gray-600);font-weight:500}.device-cards{display:flex;flex-direction:column;gap:16px}.device-card-mobile{border-radius:12px;transition:all var(--transition-normal);border:1px solid var(--color-border-light)}.device-card-mobile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.connected-card{border-left:4px solid var(--color-success);background:linear-gradient(90deg,rgba(34,197,94,.05) 0%,transparent 100%)}.disconnected-card{border-left:4px solid var(--color-error);background:linear-gradient(90deg,rgba(239,68,68,.03) 0%,transparent 100%)}.card-header-mobile{padding:16px}.card-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.card-title{font-size:16px;font-weight:600;color:var(--color-gray-800);margin:0;flex:1;line-height:1.4}.status-tag{flex-shrink:0}.card-meta{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.meta-item{font-size:13px;color:var(--color-gray-600)}.card-times{display:flex;flex-direction:column;gap:4px}.time-item{font-size:12px;color:var(--color-gray-500)}.card-actions{padding:12px 16px;border-top:1px solid var(--color-border-light);display:flex;justify-content:flex-end;gap:8px}@media(max-width:1024px){.mobile-card .ant-card-body{padding:20px}.card-header{margin-bottom:20px}.page-title{font-size:20px}}@media(max-width:768px){.mobile-card .ant-card-body{padding:16px}.card-header{flex-direction:column;align-items:flex-start;gap:12px}.header-actions{width:100%}.header-actions>*{flex:1;min-width:0}.page-title{font-size:18px}.detail-modal{max-width:95vw;width:100%}.device-detail{padding:4px 0}.detail-item strong{min-width:80px}.card-header-mobile,.card-actions{padding:12px}}@media(max-width:480px){.mobile-card .ant-card-body{padding:12px}.card-header{margin-bottom:16px}.page-title{font-size:17px}.header-actions{gap:8px}.detail-item strong{display:block;margin-bottom:4px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);position:relative;overflow:hidden;padding:20px}.bg-decoration{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.shape{position:absolute;border-radius:50%;opacity:.1;background:#fff}.shape-1{width:600px;height:600px;top:-200px;right:-150px;animation:float 8s ease-in-out infinite}.shape-2{width:400px;height:400px;bottom:-100px;left:-100px;animation:float 10s ease-in-out infinite reverse}.shape-3{width:300px;height:300px;top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse 6s ease-in-out infinite}.login-container{width:100%;max-width:440px;position:relative;z-index:1}.logo-section{text-align:center;margin-bottom:32px}.logo-wrapper{width:80px;height:80px;background:#fff;border-radius:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:var(--shadow-xl)}.logo-icon-main{font-size:40px}.logo-section .app-title{font-size:28px;font-weight:700;color:#fff;margin:0 0 8px;letter-spacing:1px}.logo-section .app-subtitle{font-size:14px;color:#fffc;margin:0;font-weight:400;letter-spacing:2px}.login-card{border-radius:20px;box-shadow:var(--shadow-2xl);overflow:hidden}.login-card .ant-card-body{padding:32px}.login-tabs{margin-bottom:8px}.login-tabs .ant-tabs-nav{margin-bottom:24px}.login-tabs .ant-tabs-nav-list{width:100%}.login-tabs .ant-tabs-tab{flex:1;padding:12px 16px;font-size:15px;font-weight:500}.tab-label{display:flex;align-items:center;gap:8px}.tab-icon{font-size:16px}.login-form .ant-form-item{margin-bottom:20px}.login-form .ant-form-item-label>label{font-weight:500;color:var(--color-gray-700);font-size:14px}.input-icon{color:var(--color-gray-400)}.login-btn{height:48px;font-size:16px;font-weight:600;letter-spacing:.5px;margin-top:8px;background:var(--gradient-primary);border:none;box-shadow:0 4px 14px #4f46e566;transition:all var(--transition-normal)}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4f46e580;background:var(--gradient-primary)}.login-btn:active{transform:translateY(0)}.test-account{text-align:center;padding:16px;background:var(--color-gray-50);border-radius:12px;margin-top:24px}.test-label{font-weight:500;color:var(--color-gray-700);font-size:13px}.test-text{color:var(--color-gray-600);font-size:13px;font-family:var(--font-family-mono)}.login-footer{text-align:center;margin-top:24px}.login-footer p{color:#ffffffb3;font-size:13px;margin:0}@media(max-width:768px){.login-page{padding:16px}.logo-wrapper{width:70px;height:70px;border-radius:20px}.logo-icon-main{font-size:34px}.logo-section .app-title{font-size:24px}.logo-section .app-subtitle{font-size:12px}.login-card .ant-card-body{padding:24px}.shape-1{width:400px;height:400px;top:-150px;right:-100px}.shape-2{width:300px;height:300px}}@media(max-width:480px){.login-container{max-width:100%}.logo-wrapper{width:64px;height:64px;border-radius:16px}.logo-icon-main{font-size:30px}.logo-section .app-title{font-size:22px}.login-card .ant-card-body{padding:20px}.login-form .ant-form-item{margin-bottom:16px}.test-account{padding:12px}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;color:#333;font-size:14px;line-height:1.5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:#1890ff;text-decoration:none;transition:color .3s ease}a:hover{color:#40a9ff;text-decoration:underline}.button-link,.button-link:hover{color:#fff;text-decoration:none}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media(max-width:768px){body{font-size:13px}}@media(max-width:480px){body{font-size:12px}}:root{--color-primary-50: #f0f4ff;--color-primary-100: #e0e8ff;--color-primary-200: #c7d6ff;--color-primary-300: #a4b8ff;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #4f46e5;--color-primary-700: #4338ca;--color-primary-800: #3730a3;--color-primary-900: #312e81;--color-secondary-50: #faf5ff;--color-secondary-100: #f3e8ff;--color-secondary-200: #e9d5ff;--color-secondary-300: #d8b4fe;--color-secondary-400: #c084fc;--color-secondary-500: #a855f7;--color-secondary-600: #9333ea;--color-secondary-700: #7e22ce;--color-secondary-800: #6b21a8;--color-secondary-900: #581c87;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-300: #86efac;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-success-800: #166534;--color-success-900: #14532d;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-200: #fde68a;--color-warning-300: #fcd34d;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-warning-800: #92400e;--color-warning-900: #78350f;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-200: #fecaca;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-error-800: #991b1b;--color-error-900: #7f1d1d;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-primary: var(--color-primary-600);--color-primary-hover: var(--color-primary-500);--color-primary-active: var(--color-primary-700);--color-primary-bg: var(--color-primary-50);--color-secondary: var(--color-secondary-600);--color-secondary-hover: var(--color-secondary-500);--color-success: var(--color-success-600);--color-warning: var(--color-warning-500);--color-error: var(--color-error-600);--color-info: var(--color-primary-600);--color-text-primary: var(--color-gray-900);--color-text-secondary: var(--color-gray-600);--color-text-tertiary: var(--color-gray-400);--color-text-disabled: var(--color-gray-300);--color-text-white: #ffffff;--color-bg-primary: #ffffff;--color-bg-secondary: var(--color-gray-50);--color-bg-tertiary: var(--color-gray-100);--color-bg-disabled: var(--color-gray-100);--color-border: var(--color-gray-200);--color-border-light: var(--color-gray-100);--color-border-dark: var(--color-gray-300);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-primary-light: linear-gradient(135deg, #a4b8ff 0%, #d8b4fe 100%);--gradient-success: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);--gradient-warning: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);--gradient-error: linear-gradient(135deg, #f87171 0%, #ef4444 100%);--gradient-dark: linear-gradient(135deg, #1f2937 0%, #111827 100%);--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-none: none;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-slower: .5s cubic-bezier(.4, 0, .2, 1);--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--size-xs: 1.5rem;--size-sm: 2rem;--size-md: 2.5rem;--size-lg: 3rem;--size-xl: 3.5rem;--header-height: 4rem;--sidebar-width: 16rem;--sidebar-width-collapsed: 5rem;--content-padding: 1.5rem}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full);transition:background var(--transition-normal)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.text-ellipsis-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-column{display:flex;flex-direction:column}.flex-1{flex:1}.m-0{margin:0}.m-1{margin:var(--spacing-xs)}.m-2{margin:var(--spacing-sm)}.m-3{margin:var(--spacing-md)}.m-4{margin:var(--spacing-lg)}.m-5{margin:var(--spacing-xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.p-5{padding:var(--spacing-xl)}.card-hover{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-shine{position:relative;overflow:hidden}.btn-shine:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left var(--transition-slow)}.btn-shine:hover:before{left:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fadeIn{animation:fadeIn var(--transition-normal) ease-out}.animate-slideUp{animation:slideUp var(--transition-normal) ease-out}.animate-slideDown{animation:slideDown var(--transition-normal) ease-out}.animate-scaleIn{animation:scaleIn var(--transition-normal) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-float{animation:float 3s ease-in-out infinite}@media(max-width:1440px){html{font-size:15px}}@media(max-width:1024px){html{font-size:14px}}@media(max-width:768px){html{font-size:14px}}@media(max-width:480px){html{font-size:13px}}
