:root{--primary-color: #1890ff;--primary-hover: #40a9ff;--primary-active: #096dd9;--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #fafafa;--text-primary: #262626;--text-secondary: #595959;--text-tertiary: #8c8c8c;--border-color: #d9d9d9;--border-light: #f0f0f0;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;min-width:320px;min-height:100vh;background-color:var(--bg-secondary);color:var(--text-primary);overflow-x:hidden}#root{width:100%;min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}a,button,input,select,textarea{transition:all var(--transition-fast)}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.login-container{height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb,#4facfe,#00f2fe);background-size:400% 400%;animation:gradientShift 15s ease infinite;position:relative;overflow:hidden}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.login-overlay{position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.login-card{width:100%;max-width:420px;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #1f268726,0 0 0 1px #ffffff2e;border-radius:16px;z-index:10;padding:32px 24px;animation:floatIn .6s ease-out;transition:all var(--transition-base)}@keyframes floatIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.login-card:hover{box-shadow:0 12px 48px #1f268733,0 0 0 1px #ffffff40;transform:translateY(-4px)}.login-header{text-align:center;margin-bottom:32px}.login-header h2{font-weight:700;letter-spacing:-.5px;margin-bottom:8px!important;background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header .ant-typography{color:var(--text-secondary);font-size:14px}.login-card .ant-form-item{margin-bottom:20px}.login-card .ant-input,.login-card .ant-input-password{height:45px;border-radius:8px;border:1px solid #e0e0e0;transition:all var(--transition-fast);font-size:15px}.login-card .ant-input:hover,.login-card .ant-input-password:hover{border-color:#1890ff}.login-card .ant-input:focus,.login-card .ant-input-password:focus,.login-card .ant-input-focused,.login-card .ant-input-password-focused{border-color:#1890ff;box-shadow:0 0 0 3px #1890ff1a}.login-card .ant-input-prefix{margin-right:12px;font-size:16px}.login-card .ant-btn-primary{height:45px;font-size:16px;font-weight:600;border-radius:8px;background:linear-gradient(135deg,#1890ff,#40a9ff);border:none;box-shadow:0 4px 12px #1890ff4d;transition:all var(--transition-fast)}.login-card .ant-btn-primary:hover{background:linear-gradient(135deg,#40a9ff,#1890ff);box-shadow:0 6px 16px #1890ff66;transform:translateY(-2px)}.login-card .ant-btn-primary:active{transform:translateY(0)}.login-card.sso-only{text-align:center;padding:48px 32px}.sso-content{margin:40px 0;animation:fadeIn .8s ease-out}.sso-welcome{margin-bottom:32px}.sso-welcome h4{font-weight:600;margin-bottom:4px!important;color:#262626}.sso-button{height:54px!important;font-size:17px!important;font-weight:600!important;border-radius:12px!important;background:linear-gradient(135deg,#1890ff,#4facfe)!important;border:none!important;box-shadow:0 8px 20px #1890ff40!important;transition:all .3s cubic-bezier(.2,.8,.4,1)!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:12px}.sso-button:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 30px #1890ff59!important;filter:brightness(1.1)}.login-footer{margin-top:32px;padding-top:24px;border-top:1px solid rgba(0,0,0,.04)}@media(max-width:480px){.login-card.sso-only{padding:32px 20px}.sso-button{height:48px!important;font-size:15px!important}}.dashboard-page{animation:fadeIn .3s ease-in-out;padding:24px}@media(max-width:768px){.dashboard-page{padding:16px}}@media(max-width:576px){.dashboard-page{padding:12px}}.dashboard-page .ant-typography{margin-bottom:var(--spacing-lg)}.dashboard-page .ant-card{transition:all var(--transition-base);border:1px solid var(--border-light);overflow:hidden;position:relative}.dashboard-page .ant-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#1890ff,#40a9ff);opacity:0;transition:opacity var(--transition-fast)}.dashboard-page .ant-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#1890ff}.dashboard-page .ant-card:hover:before{opacity:1}.dashboard-page .ant-statistic{padding:8px 0}.dashboard-page .ant-statistic-title{font-size:14px;color:var(--text-secondary);font-weight:500;margin-bottom:8px}.dashboard-page .ant-statistic-content{font-size:28px;font-weight:700;color:var(--text-primary)}.dashboard-page .ant-statistic-content-prefix{margin-right:12px;font-size:24px}.dashboard-page .ant-typography-success,.dashboard-page .ant-typography-danger{display:inline-flex;align-items:center;gap:4px;font-weight:600}.dashboard-page .ant-card .ant-card-head{background:linear-gradient(135deg,#f5f7fa,#fff);border-bottom:2px solid #f0f0f0}.dashboard-page .ant-card .ant-card-head-title{font-weight:600;font-size:16px;color:var(--text-primary)}.dashboard-page .ant-table{font-size:14px}.dashboard-page .ant-table-thead>tr>th{background:#fafafa;font-weight:600;color:var(--text-primary);border-bottom:2px solid #f0f0f0}.dashboard-page .ant-table-tbody>tr{transition:all var(--transition-fast)}.dashboard-page .ant-table-tbody>tr:hover{background:#f5f9ff!important;transform:scale(1.01)}.dashboard-page .ant-table-tbody>tr>td{border-bottom:1px solid #f5f5f5}.dashboard-page .ant-tag{border-radius:12px;padding:2px 12px;font-weight:500;border:none}.dashboard-page .ant-empty{padding:40px 0}.dashboard-page .ant-empty-description{color:var(--text-tertiary);font-size:14px}.dashboard-page .ant-spin{color:var(--primary-color)}@media(max-width:768px){.dashboard-page .ant-statistic-content{font-size:24px}.dashboard-page .ant-card{margin-bottom:16px}}.system-users-page{animation:fadeIn .3s ease-in-out;padding:24px}@media(max-width:768px){.system-users-page{padding:16px}}@media(max-width:576px){.system-users-page{padding:12px}}.system-users-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.system-users-page .ant-typography{margin:0}.system-users-page .ant-btn-primary{box-shadow:0 2px 8px #1890ff4d;transition:all var(--transition-fast)}.system-users-page .ant-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1890ff66}.system-users-page .ant-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.system-users-page .ant-table{font-size:14px}.system-users-page .ant-table-thead>tr>th{background:linear-gradient(135deg,#f5f7fa,#fff);font-weight:600;color:var(--text-primary);border-bottom:2px solid #f0f0f0;padding:16px}.system-users-page .ant-table-tbody>tr{transition:all var(--transition-fast)}.system-users-page .ant-table-tbody>tr:hover{background:#f5f9ff!important;box-shadow:0 2px 8px #1890ff1a}.system-users-page .ant-table-tbody>tr>td{padding:16px;border-bottom:1px solid #f5f5f5}.system-users-page .ant-switch{transition:all var(--transition-fast)}.system-users-page .ant-switch-checked{background:linear-gradient(135deg,#52c41a,#73d13d)}.system-users-page .ant-btn-link{transition:all var(--transition-fast);font-weight:500}.system-users-page .ant-btn-link:hover{transform:translate(2px)}.system-users-page .ant-btn-link.ant-btn-dangerous{color:#ff4d4f}.system-users-page .ant-btn-link.ant-btn-dangerous:hover{color:#ff7875}.system-users-page .ant-modal-header{background:linear-gradient(135deg,#f5f7fa,#fff);border-bottom:2px solid #f0f0f0}.system-users-page .ant-modal-title{font-weight:600;font-size:18px;color:var(--text-primary)}.system-users-page .ant-modal-content{border-radius:var(--radius-lg);overflow:hidden}.system-users-page .ant-modal-footer{border-top:1px solid #f0f0f0;padding:16px 24px}.system-users-page .ant-form-item-label>label{font-weight:500;color:var(--text-primary)}.system-users-page .ant-input,.system-users-page .ant-input-password{border-radius:var(--radius-sm);transition:all var(--transition-fast)}.system-users-page .ant-input:hover,.system-users-page .ant-input-password:hover{border-color:var(--primary-hover)}.system-users-page .ant-input:focus,.system-users-page .ant-input-password:focus,.system-users-page .ant-input-focused,.system-users-page .ant-input-password-focused{border-color:var(--primary-color);box-shadow:0 0 0 2px #1890ff1a}.ant-popconfirm .ant-popconfirm-message-title{font-weight:500}.system-users-page .ant-spin{color:var(--primary-color)}@media(max-width:768px){.system-users-page .page-header{flex-direction:column;align-items:flex-start;gap:16px}.system-users-page .ant-table{font-size:13px}.system-users-page .ant-table-thead>tr>th,.system-users-page .ant-table-tbody>tr>td{padding:12px 8px}}.tenants-page{padding:24px;animation:fadeIn .3s ease-in-out}.tenants-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.tenants-page .page-header h2{margin:0}.tenants-page .ant-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.tenants-page .ant-table{font-size:14px}.tenants-page .ant-table-thead>tr>th{background:linear-gradient(135deg,#f5f7fa,#fff);font-weight:600;color:var(--text-primary);border-bottom:2px solid #f0f0f0}.tenants-page .ant-table-tbody>tr{transition:all var(--transition-fast)}.tenants-page .ant-table-tbody>tr:hover{background:#f5f9ff!important;box-shadow:0 2px 8px #1890ff1a}.tenants-page .ant-tag{border-radius:12px;padding:2px 12px;font-weight:500;border:none}.tenants-page .ant-btn-link{transition:all var(--transition-fast);font-weight:500}.tenants-page .ant-btn-link:hover{transform:translate(2px)}.tenants-page .ant-btn-primary{box-shadow:0 2px 8px #1890ff4d;transition:all var(--transition-fast)}.tenants-page .ant-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1890ff66}.tenants-page .ant-modal-header{background:linear-gradient(135deg,#f5f7fa,#fff);border-bottom:2px solid #f0f0f0}.tenants-page .ant-modal-title{font-weight:600;font-size:18px}.tenants-page .ant-form-item-label>label{font-weight:500}.tenants-page .ant-input,.tenants-page .ant-input-number,.tenants-page .ant-select-selector{border-radius:var(--radius-sm);transition:all var(--transition-fast)}.tenants-page .ant-input:hover,.tenants-page .ant-select-selector:hover{border-color:var(--primary-hover)}.tenants-page .ant-input:focus,.tenants-page .ant-input-focused{border-color:var(--primary-color);box-shadow:0 0 0 2px #1890ff1a}.tenants-page .ant-row{margin-bottom:16px}@media(max-width:768px){.tenants-page{padding:16px}.tenants-page .page-header{flex-direction:column;align-items:flex-start;gap:16px}.tenants-page .page-header h2{font-size:20px}.tenants-page .ant-table,.tenants-page .ant-btn{font-size:13px}}@media(max-width:576px){.tenants-page{padding:12px}.tenants-page .page-header h2{font-size:18px}.tenants-page .ant-space{flex-direction:column;align-items:flex-start}}.subscriptions-page{padding:24px;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.subscriptions-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.subscriptions-page .page-header h2{margin:0}.subscriptions-page .ant-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.subscriptions-page .ant-table{font-size:14px}.subscriptions-page .ant-table-thead>tr>th{background:linear-gradient(135deg,#f5f7fa,#fff);font-weight:600;color:var(--text-primary);border-bottom:2px solid #f0f0f0}.subscriptions-page .ant-table-tbody>tr{transition:all var(--transition-fast)}.subscriptions-page .ant-table-tbody>tr:hover{background:#f5f9ff!important;box-shadow:0 2px 8px #1890ff1a}.subscriptions-page .ant-tag{border-radius:12px;padding:2px 12px;font-weight:500;border:none}.subscriptions-page .ant-btn-link{transition:all var(--transition-fast);font-weight:500}.subscriptions-page .ant-btn-link:hover{transform:translate(2px)}.subscriptions-page .ant-btn-primary{box-shadow:0 2px 8px #1890ff4d;transition:all var(--transition-fast)}.subscriptions-page .ant-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1890ff66}.subscriptions-page .ant-modal-header{background:linear-gradient(135deg,#f5f7fa,#fff);border-bottom:2px solid #f0f0f0}.subscriptions-page .ant-modal-title{font-weight:600;font-size:18px}.subscriptions-page .ant-form-item-label>label{font-weight:500}.subscriptions-page .ant-input,.subscriptions-page .ant-input-number,.subscriptions-page .ant-select-selector,.subscriptions-page .ant-picker{border-radius:var(--radius-sm);transition:all var(--transition-fast)}.subscriptions-page .ant-input:hover,.subscriptions-page .ant-select-selector:hover,.subscriptions-page .ant-picker:hover{border-color:var(--primary-hover)}.subscriptions-page .ant-input:focus,.subscriptions-page .ant-input-focused{border-color:var(--primary-color);box-shadow:0 0 0 2px #1890ff1a}@media(max-width:768px){.subscriptions-page{padding:16px}.subscriptions-page .page-header{flex-direction:column;align-items:flex-start;gap:16px}.subscriptions-page .page-header h2{font-size:20px}.subscriptions-page .ant-table,.subscriptions-page .ant-btn{font-size:13px}}@media(max-width:576px){.subscriptions-page{padding:12px}.subscriptions-page .page-header h2{font-size:18px}}.resources-page .ant-card-meta-title{margin-bottom:8px!important}.resources-page .filter-card .ant-card-body{padding:16px 24px}.resources-page .ant-list-grid .ant-col{margin-bottom:16px!important}.resources-page .ant-image{width:100%;display:flex;justify-content:center}.main-layout{min-height:100vh;background-color:#f5f5f5}.main-content{padding:0}.main-sider{box-shadow:2px 0 12px #1d232914;z-index:10;display:flex;flex-direction:column;transition:all var(--transition-base)}.logo{height:64px;display:flex;justify-content:center;align-items:center;gap:12px;background:linear-gradient(135deg,#f5f7fa,#fff);border-bottom:1px solid #f0f0f0;padding:0 16px}.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,#1890ff,#40a9ff);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;box-shadow:0 2px 8px #1890ff4d}.logo-text{font-weight:700;background:linear-gradient(135deg,#1890ff,#40a9ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:18px;letter-spacing:-.5px}.main-menu{flex:1;border-inline-end:none!important;padding:8px 0}.main-menu .ant-menu-item{margin:4px 8px!important;transition:all var(--transition-fast)}.main-menu .ant-menu-item:hover{background:linear-gradient(135deg,#e6f7ff,#f0f9ff)!important;transform:translate(4px)}.main-menu .ant-menu-item-selected{background:linear-gradient(135deg,#1890ff,#40a9ff)!important;color:#fff!important;box-shadow:0 2px 8px #1890ff4d}.main-menu .ant-menu-item-selected .ant-menu-item-icon,.main-menu .ant-menu-item-selected span{color:#fff!important}.sider-footer{padding:16px;border-top:1px solid #f0f0f0;background:#fafafa}.logout-btn{color:#ff4d4f!important;font-weight:500;transition:all var(--transition-fast)}.logout-btn:hover{background-color:#fff1f0!important;transform:translateY(-2px);box-shadow:0 2px 8px #ff4d4f33}.main-header{display:flex;justify-content:space-between;align-items:center;padding-right:24px!important;background:linear-gradient(135deg,#fff,#f5f7fa)!important;box-shadow:0 2px 8px #00152914;z-index:1}.collapse-btn{font-size:18px;width:64px;height:64px;transition:all var(--transition-fast)}.collapse-btn:hover{background-color:#f0f9ff!important;color:#1890ff}.header-right{display:flex;align-items:center;gap:16px}.user-profile-btn{display:flex;align-items:center;padding:8px 16px!important;height:auto!important;border-radius:8px;transition:all var(--transition-fast)}.user-profile-btn:hover{background-color:#f0f9ff!important}.user-email{font-weight:500;color:var(--text-primary)}.main-sider ::-webkit-scrollbar{width:6px}.main-sider ::-webkit-scrollbar-track{background:transparent}.main-sider ::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px}.main-sider ::-webkit-scrollbar-thumb:hover{background:#bfbfbf}@media(max-width:992px){.main-sider{position:fixed!important;left:0;top:0;bottom:0;height:100vh;z-index:1000;transition:transform .3s cubic-bezier(.78,.14,.15,.86)}.main-sider.ant-layout-sider-collapsed{transform:translate(-100%)}.main-sider:not(.ant-layout-sider-collapsed){transform:translate(0)}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}}@media(max-width:768px){.user-email{display:none}.main-header{padding-right:12px!important}.collapse-btn{width:52px;height:64px;font-size:16px}}@media(max-width:576px){.logo-text{font-size:15px}.collapse-btn{width:48px;font-size:14px}.logo-icon{width:32px;height:32px;font-size:16px}}.dark-mode.main-layout{background-color:#000}.dark-mode .logo{background:#141414;border-bottom:1px solid #303030}.dark-mode .main-header{background:#1f1f1f!important;border-bottom:1px solid #303030}.dark-mode .sider-footer{background:#141414;border-top:1px solid #303030}.dark-mode .collapse-btn{color:#ffffffd9}.dark-mode .collapse-btn:hover{background-color:#ffffff14!important}.dark-mode .user-email{color:#ffffffd9}.dark-mode .user-profile-btn:hover{background-color:#ffffff14!important}#root{width:100%;margin:0;padding:0}body{margin:0;padding:0}
