/*!
 * SuperAIERP - 全局样式
 * 基础工具类（flex/gap/margin/padding/width/overflow/text-align 等）由 Bootstrap 提供：
 *   css/common/bootstrap-utils.css（仅工具类 + 栅格，不含组件，与 SepBase 无冲突）
 * 加载顺序：theme-tokens.css → bootstrap-utils.css → global.css
 */
/*!
 * SuperAIERP - 全局样式
 * 基础工具类（flex/gap/margin/padding/width/overflow/text-align 等）由 Bootstrap 提供：
 *   css/common/bootstrap-utils.css（仅工具类 + 栅格，不含组件，与 SepBase 无冲突）
 * 加载顺序：theme-tokens.css → bootstrap-utils.css → global.css
 */*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}body{background:var(--bg-body);color:var(--text-primary);font-family:PingFang SC,Microsoft YaHei,sans-serif;min-height:100vh;transition:background var(--transition-normal),color var(--transition-normal)}[data-sep-component="1"]:empty{display:none}html{scroll-behavior:smooth;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:3px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.font-mono{font-family:SF Mono,Consolas,Monaco,monospace}.stat-value{font-size:2rem;font-weight:700;background:var(--stat-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;transition:transform .3s ease}.stat-label{color:var(--text-secondary);font-size:.85rem;margin-top:.25rem}.progress-bar{height:8px;border-radius:4px;background:var(--border-color);overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .5s}.progress-fill-cpu{background:var(--stat-gradient)}.progress-fill-mem{background:linear-gradient(90deg,var(--accent-orange),var(--warning))}.progress-fill-disk{background:linear-gradient(90deg,var(--success),#4ADE80)}.progress-fill-blue{background:var(--stat-gradient)}.progress-fill-orange{background:linear-gradient(90deg,var(--accent-orange),var(--warning))}.info-box{padding:.6rem 1rem;border-radius:6px;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent);font-size:.82rem;color:var(--text-secondary)}.card{background:var(--bg-card-solid);border:1px solid var(--border-color);border-radius:16px;padding:1.25rem;margin-bottom:.75rem;box-shadow:0 2px 8px #00000026,0 1px 2px #0003,inset 0 1px #ffffff0a}.badge{display:inline-block;padding:.15rem .6rem;border-radius:20px;font-size:.75rem;font-weight:500}.badge-success{background:#22c55e1f;color:#22c55e;border:1px solid rgba(34,197,94,.25)}.badge-danger{background:#ff4d4f1f;color:#ff4d4f;border:1px solid rgba(255,77,79,.25)}[data-theme=dark] .badge-success{background:#22c55e26}[data-theme=dark] .badge-danger{background:#ff4d4f26}.tech-green{color:var(--success)}.tech-yellow{color:var(--warning)}.tech-red{color:var(--danger)}.btn{border:none;border-radius:8px;cursor:pointer;font-size:.85rem;padding:.5rem 1.2rem}.btn-primary{background:var(--primary);color:#fff;font-weight:500}.btn-cancel{background:var(--border-light);color:var(--text-secondary);border:1px solid var(--border-light)}.btn-sm{padding:.35rem .8rem;font-size:.75rem}.btn-xs{padding:.35rem .6rem;font-size:.7rem;border-radius:6px}.btn-icon{background:var(--border-light);color:var(--text-secondary);border:1px solid var(--border-light);cursor:pointer;transition:all .2s}.btn-icon:hover{background:var(--primary-bg);color:var(--primary);border-color:var(--primary)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.btn-secondary{background:var(--border-light);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-btn-icon);color:var(--text-primary)}.btn-blocked{background:#94a3b833;color:var(--text-muted);border:1px solid var(--border);cursor:not-allowed;opacity:.6}.btn-outline{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);border-radius:8px;padding:.35rem .8rem;cursor:pointer;font-size:.75rem;transition:all .2s}.btn-outline:hover{border-color:var(--primary-glow-strong);color:var(--primary-hover);background:var(--bg-hover)}.btn-outline-active{border-color:var(--primary-glow-strong)!important;color:var(--primary-hover)!important;background:var(--primary-bg)!important;box-shadow:0 0 8px var(--primary-glow-strong);animation:resetPulse 2s ease-in-out infinite}.btn-range-group{display:flex;background:var(--bg-card);border-radius:8px;overflow:hidden;border:1px solid var(--border-light)}.btn-range{border:none;padding:.35rem .8rem;cursor:pointer;font-size:.75rem;border-radius:0;border-left:1px solid var(--border-light);background:transparent;color:var(--text-secondary)}.btn-range:first-child{border-left:none}.btn-range.sep-btn-active,.btn-range-active{background:var(--primary);color:#fff}.modal-label{display:block;color:var(--text-secondary);font-size:.8rem;margin-bottom:.4rem}.modal-input{width:100%;padding:.6rem .8rem;background:var(--bg-input-solid);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.85rem;outline:none}.modal-input:focus{border-color:var(--primary)}.modal-textarea{width:100%;padding:.6rem .8rem;background:var(--bg-input-solid);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:.85rem;outline:none;resize:vertical}.modal-textarea:focus{border-color:var(--primary)}.modal-actions{display:flex;gap:.6rem;justify-content:flex-end}.modal-form-group{margin-bottom:1rem}.modal-form-group-last{margin-bottom:1.2rem}.expand-link{background:none;border:none;color:var(--primary-hover);cursor:pointer;font-size:.85rem;margin-left:.3rem;padding:0;line-height:1;transition:color .15s}.expand-link:hover{color:var(--primary-light)}.search-input{background:var(--bg-input);border:1px solid var(--border-input);border-radius:4px;color:var(--text-primary);font-size:.72rem;padding:.15rem .4rem;width:80px;outline:none;transition:border-color .15s}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--border-input-focus)}.filter-clear{cursor:pointer;color:var(--text-secondary);margin-left:.25rem;vertical-align:middle;transition:color .15s}.filter-clear:hover{color:var(--danger)}.data-table{width:100%;border-collapse:collapse;font-size:.82rem}.data-table thead tr{color:var(--text-secondary);text-align:left;border-bottom:2px solid var(--border-color);position:sticky;top:0;background:var(--bg-card-solid)}.data-table th,.data-table td{padding:.5rem}.data-table tbody tr{border-bottom:1px solid var(--border-color)}.data-table tbody tr:last-child{border-bottom:none}.data-table th.right,.data-table td.right{text-align:right}.data-table-fixed{table-layout:fixed;width:100%;min-width:900px}.table-scroll{max-height:360px;overflow:auto;border:1px solid var(--border-color);border-radius:8px}.table-scroll-sm{max-height:300px;overflow:auto;border:1px solid var(--border-color);border-radius:8px}.table-loading{padding:1.5rem;text-align:center;color:var(--text-secondary)}.table-compact{padding:.4rem .5rem!important}.wildcard-badge{font-size:10px;background:var(--bg-card);color:var(--muted);padding:1px 4px;border-radius:2px;border:1px solid var(--border);margin-left:4px}.mini-table{width:100%;border-collapse:collapse;font-size:.75rem}.mini-table thead tr{color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border-color)}.mini-table th{padding:.4rem .3rem}.mini-table td{padding:.35rem .3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-w-5{width:5%}.col-w-8{width:8%}.col-w-10{width:10%}.col-w-11{width:11%}.col-w-12{width:12%}.col-w-13{width:13%}.col-w-14{width:14%}.col-w-16{width:16%}.col-w-auto{width:auto}.col-w-60{width:60px}.flex-2{flex:2 1 0%}.min-w-160{min-width:160px}.min-w-200{min-width:200px}.stats-progress-row{display:flex;flex-direction:column;gap:.3rem;padding:.4rem .6rem;border-radius:4px}.stats-progress-header{display:flex;justify-content:space-between;align-items:center}.stats-progress-label{font-size:.82rem;font-weight:500}.stats-progress-value{font-size:.78rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.stats-progress-bar{width:100%}code{background:var(--bg-card);padding:.1rem .4rem;border-radius:3px;font-family:SF Mono,Consolas,Monaco,monospace;font-size:.82rem;color:var(--accent-cyan);border:1px solid var(--border)}.syn-tag{color:var(--primary)}.syn-attr{color:var(--warning)}.syn-val{color:var(--success)}.syn-kw{color:var(--primary);font-weight:600}.syn-str{color:var(--success)}.syn-cmt{color:var(--text-muted);font-style:italic}.syn-num{color:var(--warning)}.syn-fn{color:var(--info)}.syn-var{color:var(--primary, #3B82F6)}.syn-op{color:var(--text-secondary)}.syn-this{color:var(--primary);font-style:italic}.syn-bool,.syn-null{color:var(--primary)}.theme-toggle-btn{position:relative;background:transparent;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:1.3rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;transition:all .35s cubic-bezier(.34,1.56,.64,1);color:var(--text-secondary);box-shadow:none}.sep-btn.theme-toggle-btn{background:transparent;border:none;color:var(--text-secondary);font-size:1.3rem;line-height:1;padding:0;width:32px;height:32px;gap:0;transition:all .35s cubic-bezier(.34,1.56,.64,1);box-shadow:none}.sep-btn.theme-toggle-btn:hover{border-color:transparent;color:var(--text-primary);transform:scale(1.12);box-shadow:none;animation:none}.sep-btn.theme-toggle-btn:active{border-color:transparent;transform:scale(.92);transition:all .1s}.sep-btn.theme-toggle-btn:focus-visible{box-shadow:var(--shadow-subtle),0 0 0 1px var(--highlight);outline:none}.nav-blur .sep-btn.theme-toggle-btn{width:26px;height:26px;font-size:1rem}.sep-btn.theme-toggle-btn.sep-btn-active,.sep-btn.theme-toggle-btn.sep-btn-active:hover,.sep-btn.theme-toggle-btn.sep-btn-active:focus{background:transparent;border-color:transparent;color:var(--text-secondary)}.sep-btn.theme-toggle-btn.sep-btn-active:hover{color:var(--text-primary);transform:scale(1.12);box-shadow:none}.theme-toggle-btn .tt-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.sep-btn.theme-toggle-btn .sep-btn-icon svg{width:1.1em;height:1.1em;fill:currentColor}.theme-toggle-btn .tt-sun{transform:translateY(0)}.theme-toggle-btn .tt-moon{transform:translateY(-.02em)}.theme-toggle-btn:before{content:"";position:absolute;inset:-10px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,var(--tt-glow, rgba(255, 215, 0, .5)) 0%,var(--tt-glow-soft, rgba(255, 200, 0, .2)) 40%,transparent 70%);opacity:.3;animation:ringBreathe 3.5s ease-in-out infinite}.theme-toggle-btn:after{display:none}.theme-toggle-btn:hover{color:var(--text-primary);transform:scale(1.12);box-shadow:none;animation:none}.theme-toggle-btn:active{transform:scale(.92);transition:all .1s}[data-theme=light] .theme-toggle-btn,[data-theme=light] .sep-btn.theme-toggle-btn,[data-theme=light] .sep-btn.theme-toggle-btn.sep-btn-active{color:gold;--tt-glow: rgba(255, 180, 0, .6);--tt-glow-soft: rgba(255, 160, 0, .25)}[data-theme=dark] .theme-toggle-btn,[data-theme=dark] .sep-btn.theme-toggle-btn,[data-theme=dark] .sep-btn.theme-toggle-btn.sep-btn-active{color:#fff3cd;--tt-glow: rgba(255, 240, 180, .6);--tt-glow-soft: rgba(255, 220, 140, .25)}[data-accent=spring] .theme-toggle-btn,[data-accent=spring] .sep-btn.theme-toggle-btn,[data-accent=spring] .sep-btn.theme-toggle-btn.sep-btn-active{--tt-glow: rgba(34, 197, 94, .55);--tt-glow-soft: rgba(34, 197, 94, .2)}[data-accent=summer] .theme-toggle-btn,[data-accent=summer] .sep-btn.theme-toggle-btn,[data-accent=summer] .sep-btn.theme-toggle-btn.sep-btn-active{--tt-glow: rgba(14, 165, 233, .55);--tt-glow-soft: rgba(14, 165, 233, .2)}[data-accent=autumn] .theme-toggle-btn,[data-accent=autumn] .sep-btn.theme-toggle-btn,[data-accent=autumn] .sep-btn.theme-toggle-btn.sep-btn-active{--tt-glow: rgba(249, 115, 22, .55);--tt-glow-soft: rgba(249, 115, 22, .2)}[data-accent=winter] .theme-toggle-btn,[data-accent=winter] .sep-btn.theme-toggle-btn,[data-accent=winter] .sep-btn.theme-toggle-btn.sep-btn-active{--tt-glow: rgba(99, 102, 241, .55);--tt-glow-soft: rgba(99, 102, 241, .2)}.sep-accent-picker{position:relative;display:inline-block}.accent-picker-btn{position:relative;background:transparent;border:none;border-radius:50%;width:26px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;color:var(--text-secondary);transition:all .3s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}.accent-picker-btn:hover{color:var(--text-primary);transform:scale(1.1)}.accent-picker-btn svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.accent-panel{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-6px) scale(.96);background:var(--bg-card-solid);border:1px solid var(--border-color);border-radius:10px;padding:10px;box-shadow:var(--shadow-lg);z-index:1000;display:flex;flex-direction:column;gap:8px;min-width:140px;opacity:0;visibility:hidden;transition:all .2s ease}.sep-accent-top .accent-panel{top:auto;bottom:calc(100% + 8px);transform:translate(-50%) translateY(6px) scale(.96)}.accent-panel.is-open{opacity:1;visibility:visible;transform:translate(-50%) translateY(0) scale(1)}.accent-panel-title{font-size:.72rem;color:var(--text-muted);padding:0 4px 2px;white-space:nowrap}.accent-dots{display:flex;gap:8px;justify-content:space-between}.accent-dot{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .2s ease;position:relative;padding:0}.accent-dot:hover{transform:scale(1.15)}.accent-dot.is-active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-card-solid)}.accent-dot[data-accent-value=default]{background:#165dff}.accent-dot[data-accent-value=spring]{background:#22c55e}.accent-dot[data-accent-value=summer]{background:#0ea5e9}.accent-dot[data-accent-value=autumn]{background:#f97316}.accent-dot[data-accent-value=winter]{background:#6366f1}.page-loading{position:fixed;inset:0;z-index:99999;background:var(--bg-body, #0f172a);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;transition:opacity .3s}.page-loading.hide{opacity:0;pointer-events:none}.page-loading-spinner{width:48px;height:48px;border:3px solid var(--primary-bg, rgba(59,130,246,.15));border-top-color:var(--primary, #3b82f6);border-radius:50%;animation:page-loading-spin .8s linear infinite}.page-loading-text{font-size:.9rem;color:var(--text-secondary, #94a3b8)}@keyframes valueUp{0%{transform:scale(1)}25%{transform:scale(1.2);color:var(--danger);text-shadow:0 0 12px rgba(239,68,68,.6)}to{transform:scale(1)}}.value-up{animation:valueUp .6s cubic-bezier(.34,1.56,.64,1)}@keyframes valueDown{0%{transform:scale(1)}25%{transform:scale(1.2);color:var(--success);text-shadow:0 0 12px rgba(34,197,94,.6)}to{transform:scale(1)}}.value-down{animation:valueDown .6s cubic-bezier(.34,1.56,.64,1)}@keyframes valueChanged{0%{transform:scale(1)}50%{transform:scale(1.15);color:var(--primary-hover);text-shadow:0 0 10px rgba(96,165,250,.5)}to{transform:scale(1)}}.value-changed{animation:valueChanged .5s cubic-bezier(.34,1.56,.64,1)}@keyframes barPulse{0%{filter:brightness(1)}50%{filter:brightness(1.6)}to{filter:brightness(1)}}.bar-changed{animation:barPulse .5s ease}.refresh-dot{width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes btnBreathe{0%,to{box-shadow:var(--shadow-subtle)}50%{box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.1))}}@keyframes ringBreathe{0%,to{opacity:.3}50%{opacity:.8}}@keyframes outerGlow{0%,to{opacity:.05}50%{opacity:.2}}@keyframes page-loading-spin{to{transform:rotate(360deg)}}@keyframes resetPulse{0%,to{box-shadow:0 0 8px var(--primary-glow-strong)}50%{box-shadow:0 0 16px var(--primary-glow-intense)}}#footerArea{position:relative;z-index:1;padding:2.5rem 1.5rem 2rem;margin-top:2rem;text-align:center;font-size:.8rem;line-height:1.8;color:var(--text-secondary);background:transparent;border-top:none}#footerArea:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:60px;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);border-radius:1px;opacity:.5}#footerArea .footer-p{margin:.4rem 0;font-size:.8rem;line-height:1.7}#footerArea .footer-p:first-child{color:var(--text-primary);font-weight:500}#footerArea .beian-link{position:relative;text-decoration:none;color:var(--text-secondary);transition:color .25s ease}#footerArea .beian-link:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--primary);transition:width .25s ease}#footerArea .beian-link:hover{color:var(--primary)}#footerArea .beian-link:hover:after{width:100%}#footerArea .footer-p img{vertical-align:middle;margin-right:2px}[data-theme=dark] #footerArea{color:#94a3b8}[data-theme=dark] #footerArea .footer-p:first-child{color:#e2e8f0}[data-theme=light] #footerArea{color:#64748b}[data-theme=light] #footerArea .footer-p:first-child{color:#1e293b}@media(max-width:768px){#footerArea{padding:1.5rem 1rem;font-size:.72rem}#footerArea .footer-p{font-size:.72rem}}@media(max-width:767px){.search-input{width:auto;flex:1 1 55px;min-width:40px;font-size:.6rem;padding:.1rem .2rem}.expand-link{font-size:.75rem;margin-left:0;flex-shrink:0}.mini-table{font-size:.7rem}.mini-table th,.mini-table td{padding:.3rem .2rem}.table-scroll{max-height:280px;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table-fixed{min-width:550px}}
