html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}:root{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-active:#1e40af;--primary-soft:#eff6ff;--primary-soft-2:#dbeafe;--brand-grad-a:#3b82f6;--brand-grad-b:#2563eb;--app-bg:#f8fafc;--surface:#fff;--sider-bg:#fff;--app-border:#e2e8f0;--border-soft:#eef2f7;--text-1:#0f172a;--text-2:#475569;--text-3:#94a3b8;--success:#16a34a;--success-soft:#dcfce7;--warning:#d97706;--warning-soft:#fef3c7;--error:#dc2626;--error-soft:#fee2e2;--info:#2563eb;--info-soft:#dbeafe;--radius-sm:4px;--radius:6px;--radius-lg:10px;--radius-xl:12px;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 12px #0f172a0f, 0 2px 4px #0f172a0a;--shadow-lg:0 12px 32px #0f172a1a, 0 4px 8px #0f172a0d;--header-h:56px;--sider-w:228px;--content-pad:24px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace}html,body,#app{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--text-1);background:var(--app-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd5e1 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b8 padding-box content-box}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}.ant-btn:focus-visible,.ant-input:focus-visible,.ant-select:focus-visible{outline:none}.tabular,.ant-statistic-content,.ant-table-cell{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.hint{color:var(--text-3);margin-top:6px;font-size:12px}.app-layout{height:100vh;overflow:hidden}.app-sider{z-index:4;border-right:1px solid var(--app-border);height:100vh;position:sticky;top:0;overflow:hidden auto;box-shadow:1px 0 #0000;background:var(--sider-bg)!important}.app-sider .brand{height:var(--header-h);color:var(--text-1);letter-spacing:.2px;z-index:2;background:var(--sider-bg);border-bottom:1px solid var(--border-soft);align-items:center;gap:10px;padding:0 20px;font-size:15px;font-weight:600;display:flex;position:sticky;top:0}.brand-dot{background:linear-gradient(135deg, var(--brand-grad-a), var(--brand-grad-b));border-radius:6px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex;box-shadow:0 2px 6px #2563eb4d}.brand-dot:after{content:"";border-bottom:2px solid #fff;border-left:2px solid #fff;width:9px;height:5px;transform:rotate(-45deg)translate(1px,-1px)}.brand-name{white-space:nowrap}.sider-footer{border-top:1px solid var(--border-soft);background:var(--sider-bg);padding:8px;position:sticky;bottom:0}.app-sider .ant-menu-light{background:0 0;border-inline-end:none!important}.app-sider .ant-menu-item-group-title{color:var(--text-3);letter-spacing:.6px;text-transform:uppercase;padding:16px 20px 6px;font-size:11px;font-weight:600}.app-sider .ant-menu-item{border-radius:8px;transition:background .15s,color .15s;width:calc(100% - 16px)!important;height:38px!important;margin:2px 8px!important;line-height:38px!important}.app-sider .ant-menu-title-content{font-size:13.5px}.app-sider .ant-menu-item-selected{font-weight:600;background:var(--primary-soft)!important;color:var(--primary)!important}.app-sider .ant-menu-item-selected .anticon{color:var(--primary)}.app-sider.ant-layout-sider-collapsed .brand{justify-content:center;padding:0}.app-header{height:var(--header-h);line-height:var(--header-h);border-bottom:1px solid var(--app-border);box-shadow:var(--shadow-xs);z-index:3;flex:none;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0;background:var(--surface)!important}.header-left{align-items:center;gap:12px;min-width:0;display:flex}.header-right{align-items:center;gap:4px;display:flex}.crumb{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.crumb-sub{color:var(--text-3);margin-left:4px;font-size:13px;font-weight:400}.user-chip{align-items:center;gap:8px;display:flex}.user-chip .email{color:var(--text-2);font-size:13px}.tenant-chip{align-items:center;gap:6px;font-weight:500;display:inline-flex}.tenant-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.tenant-item{justify-content:space-between;align-items:center;gap:16px;display:flex}.app-content{padding:var(--content-pad);background:var(--app-bg);flex:auto;overflow:hidden auto}.page-content{max-width:1440px;margin:0 auto}.page{min-width:0}.section-label{letter-spacing:.4px;text-transform:uppercase;color:var(--text-3);margin:0 0 10px;font-size:12px;font-weight:600}.app-content .ant-card{border:1px solid var(--app-border);box-shadow:var(--shadow-xs);transition:box-shadow .2s,border-color .2s}.app-content .ant-card+.ant-card{margin-top:16px}.app-content .ant-card-head{border-bottom:1px solid var(--border-soft);min-height:50px;padding:0 20px}.app-content .ant-card-head-title{color:var(--text-1);padding:14px 0;font-size:15px;font-weight:600}.app-content .ant-card-body{padding:18px 20px}.app-content .ant-card-hoverable:hover{box-shadow:var(--shadow-md);border-color:var(--primary-soft-2)}.app-content .ant-table-thead>tr>th{color:var(--text-1);text-transform:none;white-space:nowrap;font-size:13px;font-weight:600;background:#f8fafc!important}.app-content .ant-table-tbody>tr>td{color:var(--text-1);font-size:13.5px}.app-content .ant-table-tbody>tr:hover>td{background:#f8fafc!important}.app-content .ant-table-cell{transition:background .15s}.app-content .ant-tabs-nav{margin:0 0 14px!important}.app-content .ant-btn{font-weight:500;transition:all .18s}.app-content .ant-btn-primary{box-shadow:0 1px 2px #2563eb33}.app-content .ant-btn-primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 10px #2563eb40}.app-content .ant-btn-primary:not(:disabled):active{transform:translateY(0)}.app-content .ant-tag{border-radius:var(--radius-sm);font-weight:500}.login-page{background:radial-gradient(1200px 600px at 15% -10%,#2563eb1a,#0000 60%),radial-gradient(900px 500px at 110% 110%,#0ea5e914,#0000 55%),linear-gradient(#f8fafc 0%,#eef2ff 100%);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex;position:relative;overflow:hidden}.login-card{width:400px;max-width:100%;box-shadow:var(--shadow-lg);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #e2e8f0cc}.login-card .ant-card-body{padding:32px 32px 28px}.brand-lg{color:var(--text-1);letter-spacing:-.2px;align-items:center;gap:12px;margin-bottom:6px;font-size:22px;font-weight:700;display:flex}.brand-lg .brand-dot{border-radius:9px;width:32px;height:32px}.brand-lg .brand-dot:after{border-width:2.5px;width:12px;height:7px}.subtitle{color:var(--text-2);margin:0 0 26px;font-size:13.5px;line-height:1.6}.fade-enter-active,.fade-leave-active{transition:opacity .18s,transform .18s}.fade-enter-from{opacity:0;transform:translateY(4px)}.fade-leave-to{opacity:0}.ant-modal{max-width:calc(100vw - 32px);padding-bottom:24px;top:48px}.ant-modal-body{max-height:calc(100vh - 220px);overflow:auto}.ant-modal .ant-modal-header{border-bottom:1px solid var(--border-soft);margin-bottom:0}.ant-modal .ant-modal-title{font-weight:600}@media (width<=768px){.ant-modal{top:0;max-width:100vw!important;margin:0!important}.ant-modal-content{border-radius:0;min-height:100vh}.ant-modal-body{max-height:calc(100vh - 108px)}}@media (width<=900px){.ant-modal{width:calc(100vw - 32px)!important}}.ant-modal .ant-form-vertical .ant-form-item{margin-bottom:14px}.ant-modal .ant-form-vertical .ant-form-item-label{padding:0 0 2px}.ant-modal .ant-form-vertical .ant-form-item-label>label{height:22px;font-size:13px;font-weight:500}.ant-modal .ant-form-item-explain,.ant-modal .ant-form-item-extra{min-height:0;margin-top:2px;font-size:12px}.ant-modal .ant-modal-body{padding:18px 22px}.ant-modal .ant-input,.ant-modal .ant-input-affix-wrapper,.ant-modal .ant-select,.ant-modal .ant-input-number,.ant-modal .ant-picker{width:100%}.ant-modal .ant-divider-horizontal{margin:14px 0 8px}@media (width>=780px){.modal-form-2col.ant-form-vertical{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.modal-form-2col.ant-form-vertical>.form-full,.modal-form-2col.ant-form-vertical>.ant-divider,.modal-form-2col.ant-form-vertical>.form-actions{grid-column:1/-1}}.danger,a.danger{color:var(--error)}a.danger:hover{color:#b91c1c}.log-line{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;font-size:12.5px;line-height:1.7}.level-info,.level-warn,.level-error,.level-debug{border-radius:var(--radius-sm);font-size:12px;font-weight:500;font-family:var(--font-sans);padding:1px 7px;display:inline-block}.level-info{background:var(--info-soft);color:var(--info)}.level-warn{background:var(--warning-soft);color:var(--warning)}.level-error{background:var(--error-soft);color:var(--error)}.level-debug{color:#64748b;background:#f1f5f9}
