/*!
 * SuperAIERP - 仪表盘专用样式（header / 统计图标 / 服务器 / 图表 / 登录 / 编辑模式）
 * 通用样式（按钮、表格、徽章、进度条、动画、工具类）已迁移至 css/common/global.css
 * 登录/星空业务变量定义在 css/common/login-sky.css，theme-tokens.css 仅保留通用变量
 * Copyright (c) 2025 SuperAIERP. All rights reserved.
 * https://www.superaierp.com
 */
/*!
 * SuperAIERP - 仪表盘专用样式（header / 统计图标 / 服务器 / 图表 / 登录 / 编辑模式）
 * 通用样式（按钮、表格、徽章、进度条、动画、工具类）已迁移至 css/common/global.css
 * 登录/星空业务变量定义在 css/common/login-sky.css，theme-tokens.css 仅保留通用变量
 * Copyright (c) 2025 SuperAIERP. All rights reserved.
 * https://www.superaierp.com
 */.body-watermark{position:fixed;inset:0;pointer-events:none;z-index:9999;background-repeat:repeat}#mainContent{position:relative;z-index:1;display:none;max-width:1200px;margin:0 auto;padding:.3rem .1rem 0}#dashboardContainer{display:flex;flex-direction:column;gap:.5rem}.header-notice-badge{display:inline-flex;align-items:center;gap:.35rem;margin-top:.2rem;padding:.15rem .65rem;font-size:.7rem;color:var(--text-muted);background:var(--bg-hover);border:1px solid var(--border-color);border-left:3px solid var(--text-muted);border-radius:4px;white-space:nowrap;transition:background .2s,border-color .2s;line-height:1.5}.header-notice-badge i,.header-notice-badge .header-notice-icon{color:var(--text-muted);font-size:.75rem;flex-shrink:0;opacity:.7}.header-notice-badge .header-notice-icon svg{width:1em;height:1em;display:block}.header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;gap:.5rem}.header-left{flex:1;min-width:0;display:flex;align-items:center;gap:1rem}.header-left>div{min-width:0;overflow:hidden}.header-logo{width:56px;height:56px;border-radius:14px;flex-shrink:0}.header-link{color:var(--text-secondary);text-decoration:none}.header-link:hover{color:var(--primary-hover)}.header-link-danger:hover{color:var(--danger)}.header-mobile-status-bar{display:flex;align-items:center;gap:.3rem;color:var(--text-secondary);font-size:.7rem;white-space:nowrap;flex-shrink:0;margin-right:.5rem}.header-right{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.8rem}.header-right>*{animation:btnStaggerIn .5s ease-out both}.header-right>*:nth-child(1){animation-delay:.05s}.header-right>*:nth-child(2){animation-delay:.1s}.header-right>*:nth-child(3){animation-delay:.15s}.header-right>*:nth-child(4){animation-delay:.2s}.header-right>*:nth-child(5){animation-delay:.25s}.header-right>*:nth-child(6){animation-delay:.3s}.header-right>*:nth-child(7){animation-delay:.35s}.header-divider{margin:0 .5rem;color:var(--border-color)}.header-title{font-size:1.75rem;font-weight:700}.header-subtitle{color:var(--text-secondary);font-size:.9rem;margin-top:.3rem}.version-bar{text-align:center;color:var(--text-very-muted);font-size:.75rem;padding:1rem 0}.section-title{font-size:1rem;padding:.1rem;margin-left:.5rem;margin-bottom:.3rem;color:var(--text-primary);text-align:left;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.section-title>i,.section-title>.stat-icon-blue,.section-title>.stat-icon-amber,.section-title>.stat-icon-red{flex-shrink:0}.section-title:before{flex-shrink:0}.section-title .expand-link{flex-shrink:0;display:inline-flex;align-items:center}.section-title .search-input,.section-title .filter-clear{flex-shrink:0}.section-count{font-size:.7rem;color:var(--text-secondary);background:var(--bg-hover);padding:.15rem .5rem;border-radius:10px}.section-title-flex{display:flex;align-items:center;gap:.5rem}.pages-title{font-size:.75rem;color:var(--text-secondary)}.card-section-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}.stat-icon{margin-right:.4rem}.stat-icon svg,.stat-icon-blue svg,.stat-icon-amber svg,.stat-icon-red svg{width:1em;height:1em;display:block}.stat-icon-blue{margin-right:.4rem;color:var(--primary)}.stat-icon-amber{margin-right:.4rem;color:var(--warning)}.stat-icon-red{margin-right:.4rem;color:var(--danger)}.stat-card-compact-bar{margin-top:.5rem}.sep-statistic-card{display:flex;flex-direction:column}.sep-statistic-card .sep-statistic-prefix{display:flex;align-items:center;justify-content:center}.network-stat-card .sep-statistic-content-wrap{align-self:stretch}.network-stat-card .sep-statistic-value{display:block;text-align:left}.network-stat-card .sep-statistic-extra{text-align:left;font-size:1.35rem;font-weight:700;color:var(--warning, #F59E0B)}.stat-card-chart{position:absolute;top:.6rem;right:.6rem;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;color:var(--text-muted);font-size:.8rem;transition:all .35s cubic-bezier(.34,1.56,.64,1);opacity:0;transform:scale(.5) rotate(-30deg);animation:chartBtnIn .6s cubic-bezier(.34,1.56,.64,1) forwards;z-index:1}.stat-card-chart:before{content:"";position:absolute;inset:-3px;border-radius:11px;background:conic-gradient(from 0deg,var(--primary),var(--primary-light),var(--primary));opacity:0;transition:opacity .35s;z-index:-1;animation:chartBtnSpin 4s linear infinite;animation-play-state:paused}.stat-card-chart:after{content:"";position:absolute;inset:1px;background:var(--bg-card);border-radius:7px;z-index:-1}.stat-card:hover .stat-card-chart,.sep-statistic-card:hover .stat-card-chart{opacity:1;transform:scale(1.1) rotate(0)}.stat-card:hover .stat-card-chart:before,.sep-statistic-card:hover .stat-card-chart:before{opacity:.6;animation-play-state:running}.stat-card-chart:hover{background:var(--primary-bg);color:var(--primary);transform:scale(1.25) rotate(0)}.stat-card-chart:hover:before{opacity:1;animation-play-state:running}.stat-card:nth-child(1) .stat-card-chart,.sep-statistic-card:nth-child(1) .stat-card-chart{animation-delay:.15s}.stat-card:nth-child(2) .stat-card-chart,.sep-statistic-card:nth-child(2) .stat-card-chart{animation-delay:.3s}.stat-card:nth-child(3) .stat-card-chart,.sep-statistic-card:nth-child(3) .stat-card-chart{animation-delay:.45s}.card-section{margin-bottom:.5rem;padding:.5rem .7rem}.card-section-header{display:flex;align-items:center;margin-bottom:.8rem;flex-wrap:wrap;gap:.5rem}.card-section-actions{display:flex;align-items:center;gap:.5rem}.card-section-title{font-size:.95rem;font-weight:600;color:var(--text-primary);white-space:nowrap;display:flex;align-items:center;gap:.35rem}.top-procs-controls{display:flex;align-items:center;gap:.3rem;margin-right:.5rem}.btn-top-sort{background:var(--bg-card-solid);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:.68rem;font-weight:600;padding:2px 8px;cursor:pointer;outline:none;transition:all .2s;min-width:32px}.btn-top-sort:hover{border-color:var(--primary);color:var(--text-primary)}.stats-refresh-bar{display:flex;align-items:center;gap:.4rem;padding:0 .2rem}.refresh-countdown{font-size:.65rem;color:var(--success);font-variant-numeric:tabular-nums;min-width:28px;display:inline-block}.refresh-countdown .sep-statistic-title{margin-bottom:0}.server-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem}.server-card{background:var(--bg-card-solid);border:1px solid var(--bg-btn-cancel);border-radius:12px;padding:1rem}.server-card-offline{background:var(--bg-error);border-color:var(--border-error)}.server-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.server-card-title{font-weight:600;font-size:.85rem;color:var(--text-primary)}.server-card-actions{display:flex;align-items:center;gap:.5rem}.server-status-badge{font-size:.68rem}.server-status-dot{font-size:.4rem;margin-right:.3rem;vertical-align:middle;display:inline-flex;align-items:center}.server-status-dot svg{width:1em;height:1em}.server-action-icon{color:var(--text-muted);cursor:pointer;font-size:.8rem;margin-right:.3rem;display:inline-flex;align-items:center;vertical-align:middle}.server-action-icon svg{width:1em;height:1em}.server-action-icon-chart{color:var(--success);cursor:pointer;font-size:.8rem;margin-right:.3rem;display:inline-flex;align-items:center;vertical-align:middle}.server-action-icon-chart svg{width:1em;height:1em}.server-info{font-size:.62rem;color:var(--text-muted);margin-bottom:.3rem;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.cpu-core-badge{display:inline-flex;align-items:center;padding:.12rem .45rem;font-size:.65rem;font-weight:700;color:var(--primary);background:var(--primary-bg);border:1px solid var(--primary-glow);border-radius:10px;letter-spacing:.02em;white-space:nowrap}[data-theme=dark] .cpu-core-badge{color:var(--primary-light);background:#165dff26;border-color:#165dff4d}.server-desc{font-size:.68rem;color:var(--text-secondary);margin-bottom:.5rem;font-style:italic}.server-metrics{font-size:.72rem;color:var(--text-secondary);margin-bottom:.6rem}.server-metric-row{display:flex;justify-content:space-between;margin-bottom:.25rem}.server-metric-icon{width:1rem;margin-right:.3rem;display:inline-flex;align-items:center;vertical-align:middle}.server-metric-icon svg{width:1em;height:1em}.device-icon{color:var(--text-muted);font-size:.85em;margin-right:.25rem}.server-metric-value{font-weight:600;display:inline-block}.server-metric-row-sm{display:flex;justify-content:space-between;margin-bottom:.25rem;font-size:.65rem}.server-progress,.server-progress-sm{margin-bottom:.4rem}.server-footer{display:flex;justify-content:space-between;align-items:center;font-size:.68rem;color:var(--text-muted)}.server-footer-sub{font-size:.65rem;color:var(--text-muted);margin-top:.3rem;display:flex;gap:.5rem}.server-footer-between{font-size:.65rem;color:var(--text-muted);margin-top:.3rem;display:flex;justify-content:space-between}.server-footer-ip{font-size:.65rem;color:var(--text-muted);margin-top:.15rem;display:flex;gap:.8rem}.server-empty{color:var(--text-secondary);font-size:.8rem;padding:1rem;text-align:center}.server-error{color:var(--danger);font-size:.8rem;padding:1rem;text-align:center}.server-top-procs{margin-top:.5rem;border-top:1px solid var(--bg-btn-cancel);padding-top:.4rem}.server-top-procs-title{font-size:.62rem;color:var(--text-muted);margin-bottom:.3rem;font-weight:600}.server-top-procs-table{width:100%;font-size:.6rem;border-collapse:collapse}.server-top-procs-th{text-align:left;padding:2px 4px;font-weight:500;color:var(--text-secondary)}.server-top-procs-th-r{text-align:right;padding:2px 4px;font-weight:500;color:var(--text-secondary)}.server-top-procs-td{padding:2px 4px;color:var(--text-primary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-top:1px solid rgba(148,163,184,.15)}.server-top-procs-td-r{text-align:right;padding:2px 4px;color:var(--text-secondary);border-top:1px solid rgba(148,163,184,.15)}.server-top-procs-empty{font-size:.6rem;color:var(--text-muted);padding:.3rem 0;text-align:center}.profile-modal-overlay{position:fixed;inset:0;background:var(--modal-overlay-heavy);z-index:10000;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.profile-modal{background:var(--bg-card-solid);border-radius:12px;width:95vw;height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080;border:1px solid var(--border-color)}.profile-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-input-solid);border-bottom:1px solid var(--bg-btn-cancel);color:var(--text-primary);font-size:.9rem;font-weight:600;flex-shrink:0}.profile-modal-header>div{display:flex;align-items:center;gap:8px}.profile-start-btn{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:5px 14px;font-size:.8rem;cursor:pointer;font-weight:600;transition:background .2s}.profile-start-btn:hover{filter:brightness(.85)}.profile-start-btn:disabled{background:var(--text-very-muted);cursor:not-allowed}.profile-close-btn{background:transparent;color:var(--text-secondary);border:none;font-size:1.1rem;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.profile-close-btn:hover{background:#ffffff1a;color:var(--text-primary)}.profile-modal-body{flex:1;overflow:hidden;position:relative}.profile-modal-body iframe{width:100%;height:100%;border:none;background:#fff}.profile-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.profile-placeholder-icon{font-size:3rem;margin-bottom:16px;opacity:.3}.profile-placeholder p{font-size:1rem;margin:4px 0}.profile-placeholder-hint{font-size:.8rem!important;opacity:.6}.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-primary)}.profile-loading-spinner{width:48px;height:48px;border:3px solid var(--primary-bg);border-top-color:var(--primary);border-radius:50%;animation:profile-spin .8s linear infinite;margin-bottom:16px}.profile-loading p{font-size:.9rem}.profile-loading-seconds{font-size:2rem!important;font-weight:700;color:var(--primary);margin:8px 0!important}#chartModalContent{min-height:600px;background:var(--bg-card, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chart-header-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.chart-header-actions{display:flex;align-items:center;gap:.5rem}.pvuv-chart-body .chart-container{height:300px;margin-bottom:1rem}.pvuv-chart-body .chart-container:last-child{margin-bottom:0}#pvuvModalContainer .sep-modal-icon{color:var(--success, #10B981)}.chart-container{width:100%;height:200px;margin-bottom:1rem}.chart-wrap{position:relative}.chart-wrap .chart-container{margin-bottom:0}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.chart-grid+.chart-grid{margin-top:1rem}.chart-half{width:100%;height:200px}.chart-net{width:100%;height:180px}.chart-expand-btn{position:absolute;top:2px;right:2px;z-index:99;background:var(--bg-btn-icon);border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;font-size:13px;padding:1px 6px;border-radius:4px;opacity:0;transition:opacity .15s;line-height:1.4}.chart-wrap:hover .chart-expand-btn{opacity:1}.chart-backdrop{display:none}.sep-modal-box.sep-modal-maximized .chart-container,.sep-modal-box.sep-modal-maximized .chart-half{height:260px}.sep-modal-box.sep-modal-maximized .chart-net{height:220px}.single-chart-modal{display:none;position:fixed;inset:0;z-index:10005;align-items:center;justify-content:center}.single-chart-backdrop{position:absolute;inset:0;background:#000000bf}.single-chart-content{position:relative;z-index:1;background:var(--bg-card-solid);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;width:95vw;max-width:1200px}.modal-auth-result{display:none;margin-bottom:1rem;padding:.8rem;background:var(--primary-bg);border:1px solid rgba(var(--primary-rgb),.3);border-radius:8px}.auth-key-label{color:var(--text-secondary);font-size:.75rem;margin-bottom:.4rem}.auth-key-row{display:flex;gap:.5rem;align-items:center}.auth-key-code{flex:1;background:var(--bg-input-solid);padding:.4rem .6rem;border-radius:4px;color:var(--accent-cyan);font-size:.72rem;word-break:break-all}.browser-stats,.device-stats{display:flex;flex-direction:column;gap:.5rem}.table-modal-limit-wrap{display:inline-block;width:100px;vertical-align:middle}.sep-card-edit-mode .sep-card-header-extra,.sep-card-edit-mode .stats-refresh-bar,.sep-card-edit-mode .section-title,.sep-card-edit-mode .chart-header-title,.sep-card-edit-mode .panel-controls{display:none}.layout-edit-banner{display:none;text-align:center;padding:.6rem 1rem;margin-bottom:1rem;background:var(--bg-hover);border:1px solid rgba(var(--primary-rgb),.2);border-radius:10px;color:var(--primary-light);font-size:.85rem}.dashboard-edit-mode .layout-edit-banner{display:block}.layout-edit-done{display:none;position:fixed;bottom:90px;right:28px;z-index:9998;flex-direction:column;align-items:flex-end;gap:10px}.layout-edit-done.show{display:flex}.layout-edit-done button{width:48px;height:48px;border-radius:50%;font-size:1.1rem;box-shadow:0 4px 20px rgba(var(--primary-rgb),.35);display:flex;align-items:center;justify-content:center;padding:0;white-space:nowrap}.layout-edit-done .layout-edit-reset-wrap{position:relative;border-radius:14px;padding:3px}.layout-edit-done .layout-edit-reset-wrap:before{content:"";position:absolute;inset:-3px;background:conic-gradient(from 0deg,var(--primary),var(--primary-light),var(--primary));border-radius:17px;opacity:.25;animation:spin 4s linear infinite;z-index:-1}.layout-edit-done .layout-edit-reset{width:56px;height:56px;border-radius:14px;padding:0;font-size:.7rem;font-weight:600;letter-spacing:.02em;gap:3px;flex-direction:column;border:1.5px solid var(--primary-glow-strong);background:var(--bg-card-solid);color:var(--primary);position:relative;z-index:1;transition:all .25s}.layout-edit-done .layout-edit-reset i{font-size:1rem}.layout-edit-done .layout-edit-reset:hover{border-color:var(--primary);background:var(--primary-bg);transform:translateY(-1px)}.tech-section{margin-bottom:1.5rem;padding:1rem 1.2rem}.tech-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;font-size:.75rem;color:var(--text-secondary);line-height:1.65}.tech-label{font-weight:700;font-size:.82rem;padding:.2rem .5rem;border-radius:6px;margin-bottom:.3rem}.tech-label-rust{color:var(--warning);background:#f59e0b1f;border:1px solid rgba(245,158,11,.25)}.tech-label-dotnet{color:var(--accent-purple)}.tech-label-node{color:var(--accent-cyan)}.tech-current{background:var(--success);color:#fff;font-size:.6rem;padding:.1rem .35rem;border-radius:3px;font-weight:600}.tech-compare-table{width:100%;margin-top:.3rem;font-size:.72rem;border-collapse:collapse}.tech-compare-table td{padding:.15rem 0}.tech-compare-table td:first-child{color:var(--text-muted)}.tech-compare-table td:last-child{text-align:right}.tech-summary{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border-light);font-size:.72rem;color:var(--text-muted);display:flex;gap:1.5rem;flex-wrap:wrap}.tech-grid-mt{margin-top:.8rem}#appStats tr[data-app],#pageStats tr[data-page]{transition:background .15s}#appStats tr[data-app]:hover,#pageStats tr[data-page]:hover{background:var(--bg-hover-row)!important}@keyframes btnStaggerIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes chartBtnIn{0%{opacity:0;transform:scale(.5) rotate(-30deg)}to{opacity:.45;transform:scale(1) rotate(0)}}@keyframes chartBtnSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes profile-spin{to{transform:rotate(360deg)}}@media(max-width:768px){body{padding:1rem;max-width:100vw;overflow-x:hidden}.header-notice-badge{white-space:normal;display:block;font-size:.62rem;padding:.15rem .5rem;line-height:1.35;margin-top:.3rem}.header-notice-badge i,.header-notice-badge .header-notice-icon{font-size:.65rem;margin-right:.25rem}.header-left>div{overflow:visible}.profile-modal{width:100vw;height:100vh;border-radius:0}.profile-modal-header{font-size:.8rem;padding:10px 12px}.profile-modal-header>div{gap:4px}.profile-start-btn{padding:4px 10px;font-size:.75rem}}@media(max-width:767px){body{padding:.1rem;margin:0}#mainContent{margin:0 auto;padding:.8rem .1rem 0}.card-section-header{justify-content:flex-start;gap:.5rem}.card-section-header .btn-xs{margin-left:0}.header-row{margin-bottom:1rem;padding:.5rem}.header-title{font-size:1.25rem;line-height:1.4}.header-subtitle{font-size:.78rem;margin-top:.25rem;line-height:1.3}.header-logo{width:42px;height:42px;border-radius:12px}.section-title{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.85rem;margin-bottom:.5rem;row-gap:.4rem}.section-title .stat-icon-blue,.section-title .stat-icon-amber,.section-title .stat-icon-red{flex-shrink:0;margin-right:0}.section-title .btn-sm{white-space:nowrap;flex-shrink:0}.limit-select{float:none;font-size:.6rem;padding:.1rem .2rem;margin-top:0;flex-shrink:0}}
