*{box-sizing:border-box}html{background:#f5fbfb;min-height:100%}body{color:#172033;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f5fbfb;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#root{min-height:100vh}button,input,textarea,select{font:inherit}.app-error-boundary{color:#142033;background:radial-gradient(circle at 0 0,#14b8a61f,#0000 36%),linear-gradient(135deg,#eefaf8 0%,#f8fbff 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.app-error-boundary-card{background:#ffffffeb;border:1px solid #14b8a638;border-radius:24px;width:min(560px,100%);padding:32px;box-shadow:0 24px 70px #0f172a1f}.app-error-boundary-tag{color:#0f9f8d;background:#14b8a61f;border-radius:999px;align-items:center;height:28px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.app-error-boundary-card h1{margin:18px 0 10px;font-size:26px;line-height:1.3}.app-error-boundary-card p{color:#526173;margin:0;line-height:1.8}.app-error-boundary-card pre{color:#7a4650;white-space:pre-wrap;background:#f6f8fb;border-radius:14px;margin:18px 0 0;padding:12px 14px;overflow:auto}.app-error-boundary-actions{gap:12px;margin-top:22px;display:flex}.app-error-boundary-actions button{color:#142033;cursor:pointer;background:#fff;border:1px solid #cfe3e7;border-radius:999px;height:40px;padding:0 18px;font-weight:700}.app-error-boundary-actions button:first-child{color:#fff;background:#14b8a6;border-color:#14b8a6;box-shadow:0 12px 28px #14b8a63d}:root{--app-bg:#f5fbfb;--app-panel:#fff;--app-panel-solid:#fff;--app-panel-muted:#f8fcfd;--app-text:#172033;--app-muted:#475569;--app-border:#dce8ee;--app-border-soft:#edf4f7;--app-border-strong:#c7d9e2;--app-control-bg:#f8fbfd;--app-primary:#16b8a6;--app-primary-soft:#e8fbf7;--app-primary-strong:#0f9b8c;--app-primary-hover:#0c8c7f;--app-accent:#4f7cff;--app-violet:#8b72f6;--app-warm:#ffb23f;--app-sidebar-bg:#fff;--app-sidebar-border:#eef3f6;--app-sidebar-text:#334155;--app-sidebar-muted:#64748b;--app-focus-ring:#16b8a624;--app-scrollbar:#16b8a63d;--app-shadow:0 12px 32px #243a4e14;--app-shadow-soft:0 8px 20px #243a4e0f;--app-inner-line:none;--app-radius:18px}.app-loading{background:var(--app-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.app-loading .ant-spin{border:1px solid var(--app-border);border-radius:var(--app-radius);background:var(--app-panel);min-width:168px;box-shadow:var(--app-shadow);padding:28px 30px}.app-shell{background:var(--app-bg);min-height:100vh;color:var(--app-text);position:relative}.app-shell:before{display:none}.app-shell .ant-layout{background:radial-gradient(circle at 22% 0,#16b8a621,#0000 30%),radial-gradient(circle at 88% 6%,#4f7cff14,#0000 28%),linear-gradient(#f1fbfa 0%,#f7fbfd 56%,#fff 100%);min-width:0}.app-sider{border-right:1px solid var(--app-sidebar-border);z-index:2;position:relative;box-shadow:10px 0 28px #243a4e09;background:var(--app-sidebar-bg)!important}.app-sider:after{display:none}.app-logo{min-height:82px;color:var(--app-text);border-bottom:1px solid var(--app-border-soft);align-items:center;gap:12px;padding:19px 22px;display:flex;position:relative}.app-logo-mark{color:#fff;background:linear-gradient(135deg,#1d3b76 0%,#16b8a6 100%);border:1px solid #16b8a624;border-radius:13px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;font-weight:900;display:inline-flex;box-shadow:0 10px 24px #16b8a629}.app-logo-text{flex-direction:column;gap:2px;min-width:0;font-size:18px;font-weight:900;line-height:1.2;display:flex}.app-logo-text small{color:var(--app-sidebar-muted);font-size:12px;font-weight:600}.app-menu.ant-menu{padding:12px 14px;background:0 0!important;border-inline-end:0!important}.app-menu.ant-menu .ant-menu-item{height:48px;color:var(--app-sidebar-text);border-radius:14px;margin-block:6px;margin-inline:0;font-size:15px;font-weight:700;line-height:48px;transition:all .18s}.app-menu.ant-menu .ant-menu-item:hover{transform:none;color:var(--app-primary-strong)!important;background:#f1fbf9!important}.app-menu.ant-menu .ant-menu-item-selected{box-shadow:inset 3px 0 0 var(--app-primary), 0 8px 18px #16b8a614;color:var(--app-primary-strong)!important;background:#e9fbf7!important}.app-menu.ant-menu .ant-menu-item-selected:after{opacity:0}.app-header{border-bottom:1px solid var(--app-border-soft);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);height:auto;min-height:80px;box-shadow:none;z-index:1;background:#ffffffeb;border-radius:0;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:14px 28px;line-height:1.4;display:flex;position:static}.app-header-title{color:var(--app-text);letter-spacing:-.01em;font-size:22px;font-weight:900}.app-header-subtitle{color:var(--app-muted);margin-top:2px;font-size:12px}.app-user-button{border:1px solid var(--app-border);min-height:34px;color:var(--app-text);box-shadow:var(--app-shadow-soft);background:#f8fbfd;border-radius:999px;font-weight:800}.app-content{background:0 0;min-width:0;padding:28px;overflow:auto}.app-content::-webkit-scrollbar{width:8px}.app-content::-webkit-scrollbar-thumb{background:var(--app-scrollbar);border-radius:999px}.app-shell .ant-layout-sider-children{flex-direction:column;display:flex}@media (width<=900px){.app-sider{flex:0 0 76px!important;width:76px!important;min-width:76px!important;max-width:76px!important}.app-logo{justify-content:center;padding-inline:10px}.app-logo-text{display:none}.app-menu.ant-menu .ant-menu-item{justify-content:center;display:flex;padding-inline:0!important}.app-menu.ant-menu .ant-menu-title-content{display:none}.app-header{border-radius:20px;margin:12px 14px 0;padding:12px 16px}.app-header-subtitle{display:none}.app-content{padding:16px}}@media (width<=640px){.app-header{position:static}}.app-sider{flex-direction:column;display:flex}.app-logo{align-items:center;gap:12px;display:flex}.app-sider-trigger{width:32px;height:32px;color:var(--app-sidebar-text);border:1px solid var(--app-border);background:#f8fbfd;border-radius:10px;margin-inline-start:auto}.app-sider-trigger:hover{color:var(--app-primary-strong);background:#edfafa;border-color:#b7ebe4}.app-sider-collapsed .app-logo{justify-content:center;gap:0;padding-inline:10px}.app-sider-collapsed .app-logo-text{display:none}.app-sider-collapsed .app-sider-trigger{margin-inline-start:0}.app-sider-collapsed .app-menu.ant-menu .ant-menu-item{justify-content:center;display:flex;padding-inline:0!important}.app-sider-collapsed .app-menu.ant-menu .ant-menu-title-content{display:none}.app-content-sider-collapsed{padding:24px}.page-shell,.tools-page{max-width:1640px;margin:0 auto}.page-panel.ant-card,.app-content>.ant-card,.tools-page>.ant-card,.settings-page>.ant-card{border:1px solid var(--app-border);background:var(--app-panel);box-shadow:var(--app-shadow);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:20px;position:relative;overflow:hidden}.page-panel.ant-card:before,.app-content>.ant-card:before,.tools-page>.ant-card:before,.settings-page>.ant-card:before{display:none}.page-panel.ant-card>.ant-card-body,.app-content>.ant-card>.ant-card-body,.tools-page>.ant-card>.ant-card-body,.settings-page>.ant-card>.ant-card-body{padding:22px}.tools-page .ant-card-small,.settings-page .ant-card-small{border:1px solid var(--app-border);box-shadow:none;background:#fbfefe;border-radius:16px}.tools-page .ant-card-head-title,.settings-page .ant-card-head-title,.app-content>.ant-card .ant-card-head-title{white-space:normal;color:var(--app-text);font-weight:850}.tools-page .ant-card-head,.settings-page .ant-card-head,.app-content>.ant-card .ant-card-head{border-bottom:1px solid var(--app-border-soft);background:var(--app-panel)}.tools-page .ant-form,.settings-page .ant-form{max-width:100%}.tools-page .ant-form-item-label>label,.settings-page .ant-form-item-label>label,.app-content .ant-form-item-label>label{color:#253247;white-space:normal;height:auto;font-weight:750}.tools-page .ant-input,.tools-page .ant-input-affix-wrapper,.tools-page .ant-input-number,.tools-page .ant-picker,.tools-page .ant-select-selector,.settings-page .ant-input,.settings-page .ant-input-affix-wrapper,.settings-page .ant-picker,.settings-page .ant-select-selector,.app-content>.ant-card .ant-input,.app-content>.ant-card .ant-input-affix-wrapper,.app-content>.ant-card .ant-input-number,.app-content>.ant-card .ant-select-selector{border-color:var(--app-border);background:var(--app-control-bg);border-radius:10px;transition:border-color .18s,box-shadow .18s,background .18s}.tools-page .ant-input:hover,.tools-page .ant-input-affix-wrapper:hover,.tools-page .ant-input-number:hover,.tools-page .ant-picker:hover,.settings-page .ant-input:hover,.settings-page .ant-input-affix-wrapper:hover,.settings-page .ant-picker:hover,.app-content>.ant-card .ant-input:hover,.app-content>.ant-card .ant-input-affix-wrapper:hover,.app-content>.ant-card .ant-input-number:hover{background:#fff;border-color:#b9cbd6}.tools-page .ant-input:focus,.tools-page .ant-input-focused,.tools-page .ant-input-affix-wrapper-focused,.settings-page .ant-input:focus,.settings-page .ant-input-focused,.settings-page .ant-input-affix-wrapper-focused,.app-content>.ant-card .ant-input:focus,.app-content>.ant-card .ant-input-focused,.app-content>.ant-card .ant-input-affix-wrapper-focused{border-color:var(--app-primary);background:var(--app-panel);box-shadow:0 0 0 3px var(--app-focus-ring)}.tools-page .ant-btn,.settings-page .ant-btn,.app-content>.ant-card .ant-btn,.login-card .ant-btn{border-radius:12px;font-weight:750;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.tools-page .ant-btn:hover,.settings-page .ant-btn:hover,.app-content>.ant-card .ant-btn:hover,.login-card .ant-btn:hover{transform:none}.tools-page .ant-btn-primary,.settings-page .ant-btn-primary,.app-content>.ant-card .ant-btn-primary,.login-card .ant-btn-primary{background:linear-gradient(135deg, var(--app-primary) 0%, var(--app-primary-strong) 100%);border:0;box-shadow:0 10px 22px #16b8a62e}.tools-page .ant-btn-primary:hover,.settings-page .ant-btn-primary:hover,.app-content>.ant-card .ant-btn-primary:hover,.login-card .ant-btn-primary:hover{background:linear-gradient(135deg,#0f9b8c 0%,#0c8c7f 100%)}.tools-page .ant-upload-list,.settings-page .ant-upload-list{max-width:min(100%,560px)}.tools-page .ant-upload-list-item,.settings-page .ant-upload-list-item{border-radius:12px}.tools-page .ant-upload-list-item-name,.settings-page .ant-upload-list-item-name{white-space:normal}.tools-page .upload-selection-hint,.tools-page .ant-form-item-extra .upload-selection-hint{border:1px solid var(--app-border-soft);width:fit-content;max-width:100%;color:var(--app-muted);background:#f8fbfd;border-radius:999px;margin-top:8px;padding:7px 11px;font-size:13px;line-height:1.5}.tools-page .upload-selection-hint-ok{color:var(--app-primary-strong);background:#e9fbf7;border-color:#c6f3eb}.tools-page .keyword-cell-full{white-space:normal;word-break:break-word;max-width:100%;line-height:1.45;display:inline-block}.tools-page .ant-space,.settings-page .ant-space,.app-content>.ant-card .ant-space,.tools-page .ant-btn,.settings-page .ant-btn,.app-content>.ant-card .ant-btn,.tools-page .ant-table-wrapper,.settings-page .ant-table-wrapper,.app-content>.ant-card .ant-table-wrapper{max-width:100%}.tools-page .ant-table,.settings-page .ant-table,.app-content>.ant-card .ant-table{background:var(--app-panel);border-radius:18px;overflow:hidden}.tools-page .ant-table-thead>tr>th,.settings-page .ant-table-thead>tr>th,.app-content>.ant-card .ant-table-thead>tr>th{background:var(--app-control-bg);color:#253247;font-weight:800}.tools-page .ant-table-tbody>tr:hover>td,.settings-page .ant-table-tbody>tr:hover>td,.app-content>.ant-card .ant-table-tbody>tr:hover>td{background:#f2fbf9}.tools-page .ant-tag,.settings-page .ant-tag,.app-content>.ant-card .ant-tag,.app-header .ant-tag{border-radius:999px;font-weight:750}.tools-page pre,.settings-page pre{white-space:pre-wrap;word-break:break-word;border:1px solid var(--app-border-soft);border-radius:14px;box-shadow:inset 0 1px #ffffff80}@media (width<=640px){.page-panel.ant-card>.ant-card-body,.app-content>.ant-card>.ant-card-body,.tools-page>.ant-card>.ant-card-body,.settings-page>.ant-card>.ant-card-body{padding:18px}}
