@charset "UTF-8";:root,html.theme-light{--color-blue: #3B6A94;--color-blue-dark: #31597C;--color-blue-rgb: 59, 106, 148;--color-text-rgb: 31, 42, 51;--color-bg-rgb: 255, 255, 255;--color-blue-soft: rgba(59, 106, 148, .1);--color-blue-soft-2: rgba(59, 106, 148, .06);--color-blue-ring: rgba(59, 106, 148, .18);--color-text: #1f2a33;--color-text-muted: rgba(31, 42, 51, .55);--color-border: rgba(0, 0, 0, .1);--color-border-md: rgba(0, 0, 0, .14);--color-bg: #ffffff;--color-bg-soft: #fafbfc;--color-bg-row: #f7f9fc;--color-overlay: rgba(0, 0, 0, .45);--shadow-card: 0 4px 14px rgba(0, 0, 0, .05);--shadow-dialog: 0 24px 60px rgba(0, 0, 0, .2);--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .08);--color-danger: #ef4444;--color-danger-2: #dc2626;--color-danger-bg: rgba(239, 68, 68, .06);--color-danger-bd: rgba(239, 68, 68, .15);--color-warn: #d97706;--color-warn-bg: rgba(217, 119, 6, .08);--page-bg: #f3f5f8;--color-accent: #fcc613}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:Roboto,Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;color:var(--color-text);background:var(--page-bg);-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-md);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#00000040}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px 14px;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0}.page-header .page-header-left{display:flex;align-items:center;gap:14px;min-width:0}.page-header .page-header-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:13px;background:var(--color-blue-soft);border:1px solid rgba(var(--color-blue-rgb),.2);flex-shrink:0}.page-header .page-header-icon i{font-size:1.35rem;color:var(--color-blue)}.page-header .page-header-text{display:flex;flex-direction:column;gap:3px;min-width:0}.page-header .page-title{margin:0;font-size:1.3rem;font-weight:800;color:var(--color-text);letter-spacing:.2px;line-height:1.15}.page-header .page-subtitle{margin:0;font-size:.78rem;color:var(--color-text-muted);font-weight:400;line-height:1.3}.page-header .page-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.page-header .page-header-search{display:flex;align-items:center;gap:8px;padding:8px 13px;background:var(--color-bg-soft);border:1px solid var(--color-border-md);border-radius:10px;width:220px;transition:border-color .15s,box-shadow .15s,width .2s}.page-header .page-header-search:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 3px var(--color-blue-ring);width:260px}.page-header .page-header-search i{color:var(--color-text-muted);font-size:.88rem;flex-shrink:0}.page-header .page-header-search i.ph-clear{cursor:pointer;transition:color .12s}.page-header .page-header-search i.ph-clear:hover{color:var(--color-danger)}.page-header .page-header-search input{flex:1;border:none;outline:none;background:transparent;color:var(--color-text);font-size:.83rem;font-family:inherit;min-width:0}.page-header .page-header-search input::placeholder{color:var(--color-text-muted)}.page-header .btn-header-action{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;border-radius:9px;border:none;background:var(--color-blue);color:#fff;font-size:.85rem;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s,box-shadow .15s;white-space:nowrap}.page-header .btn-header-action i{font-size:.9rem}.page-header .btn-header-action:hover{background:var(--color-blue-dark);box-shadow:0 4px 14px rgba(var(--color-blue-rgb),.32)}@media(max-width:768px){.page-header{flex-wrap:wrap;gap:10px}.page-header .page-header-right{width:100%;justify-content:flex-end}.page-header .page-header-search{width:100%;flex:1}.page-header .page-title{font-size:1.1rem}}h1,h2,h3,h4,h5,h6,.page-title,.section-title,.dialog-title{color:var(--color-text)}
