*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,Helvetica Neue,Arial,sans-serif;background:#f7f7f8;-webkit-font-smoothing:antialiased}:root{--console-bg: #f7f7f8;--console-panel: #ffffff;--console-ink: #202123;--console-muted: #6e6e73;--console-line: #e5e5e7;--console-accent: #111827}.admin-shell{min-height:100vh;background:var(--console-bg)}.admin-sider{background:#f1f1f2!important;border-right:1px solid var(--console-line);position:sticky!important;top:0;height:100vh}.brand-wrap{padding:18px 14px 14px}.admin-brand{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:11px;padding:7px 8px;border-radius:10px;cursor:pointer;text-align:left;color:var(--console-ink)}.admin-brand:hover{background:#e7e7e9}.admin-brand:focus-visible{outline:3px solid rgba(17,24,39,.2);outline-offset:2px}.admin-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#111827;color:#fff;font-weight:900}.admin-brand b,.admin-brand small{display:block}.admin-brand b{font-size:14px;letter-spacing:.04em}.admin-brand small{color:var(--console-muted);font-size:11px;margin-top:1px}.side-menu{background:transparent!important;border-inline-end:0!important;padding:2px 10px}.side-menu .ant-menu-item{margin:3px 0;width:100%;border-radius:9px;color:#52525b}.side-menu .ant-menu-item-selected{background:#dedee1!important;color:#18181b!important;font-weight:650}.side-foot{position:absolute;bottom:18px;left:18px;right:18px;padding-top:14px;border-top:1px solid var(--console-line)}.side-foot a{color:var(--console-muted);font-size:12px;text-decoration:none}.admin-header{height:64px;padding:0 24px!important;background:#ffffffeb!important;border-bottom:1px solid var(--console-line);display:flex;align-items:center;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-title{font-weight:650;color:var(--console-ink);flex:1}.user-button{height:42px!important}.mobile-menu{display:none;margin-right:8px}.admin-content{background:var(--console-bg);min-width:0}.page{max-width:1360px;padding:30px 32px 48px}.page-title{font-size:26px;letter-spacing:-.025em;color:var(--console-ink)}.page-sub{color:var(--console-muted);margin-top:5px}.ant-card{border-color:var(--console-line);box-shadow:none}.ant-table-wrapper .ant-table{border:1px solid var(--console-line)}html{scrollbar-color:#b8b8bd transparent;scrollbar-width:thin}@media(max-width:991px){.mobile-menu{display:inline-flex}.admin-header{padding:0 14px!important}.page{padding:22px 16px 36px}.header-title{font-size:14px}.user-button span:last-child{display:none}}.page{padding:20px 24px 32px;max-width:1280px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-title{margin:0;font-size:20px;font-weight:700;color:#1c2437}.page-sub{color:#8a91a5;font-size:13px;margin-top:2px}.project-card{transition:transform .18s ease,box-shadow .18s ease;cursor:pointer;border:1px solid #eef0f6}.project-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #1f2d5a1a}.project-icon{width:56px;height:56px;border-radius:14px;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:26px;background:linear-gradient(135deg,#dbe6ff,#eef3ff);color:#2563eb;box-shadow:0 4px 10px #2563eb26}.project-icon img{width:100%;height:100%;border-radius:14px;object-fit:cover}.stat-item{color:#6b7280;font-size:12px}.stat-item b{color:#1c2437;font-weight:600;font-size:13px}.code-block{background:#0f172a;color:#dbeafe;border-radius:10px;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto;margin:0;white-space:pre}.code-block .hl{color:#7dd3fc}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1000px 500px at 10% -10%,rgba(37,99,235,.16),transparent 60%),radial-gradient(800px 400px at 110% 110%,rgba(79,124,255,.14),transparent 55%),#f5f8ff;padding:20px}.login-card{width:400px;max-width:100%;background:#fff;border-radius:18px;padding:36px 34px 28px;box-shadow:0 18px 48px #1f2d5a24}.login-logo{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#4f7cff);color:#fff;font-size:28px;margin:0 auto 14px;box-shadow:0 10px 22px #2563eb59}.login-title{text-align:center;font-size:20px;font-weight:700;color:#1c2437;margin:0 0 4px}.login-desc{text-align:center;color:#8a91a5;font-size:13px;margin-bottom:24px}.hover-card{transition:box-shadow .18s ease}.hover-card:hover{box-shadow:0 8px 24px #1f2d5a14}.ant-table-wrapper .ant-table{border-radius:12px}.text-muted{color:#8a91a5}.text-nowrap{white-space:nowrap}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cdd5e3;border-radius:4px}::-webkit-scrollbar-track{background:transparent}
