@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@500;600;700&display=swap";:root{--bg-canvas: #f7f4ee;--bg-canvas-strong: #f1ece3;--bg-panel: rgba(255, 253, 249, .94);--bg-panel-soft: #faf7f0;--bg-panel-muted: #f4efe6;--panel-border: #ddd6c8;--panel-border-strong: #cfc6b6;--text-primary: #1f2937;--text-secondary: #5f6c7b;--text-tertiary: #8a95a3;--accent-primary: #355f8c;--accent-primary-soft: #edf2f7;--accent-success: #2f7d57;--accent-warning: #c08431;--accent-danger: #b14f4d;--shadow-panel: 0 20px 48px rgba(34, 48, 70, .08);--shadow-soft: 0 12px 28px rgba(34, 48, 70, .05);--font-display: "Noto Serif SC", "Songti SC", serif;--font-body: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%}body{position:relative;overflow:hidden;font-family:var(--font-body);font-size:14px;line-height:1.6;color:var(--text-primary);background:radial-gradient(circle at top left,rgba(255,255,255,.9),transparent 32%),linear-gradient(180deg,#fbf8f2 0%,var(--bg-canvas) 58%,var(--bg-canvas-strong) 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before,body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1}body:before{background:linear-gradient(to right,rgba(207,198,182,.15) 1px,transparent 1px),linear-gradient(to bottom,rgba(207,198,182,.1) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.28),transparent 72%);mask-image:linear-gradient(180deg,rgba(0,0,0,.28),transparent 72%)}body:after{background:radial-gradient(circle at top,rgba(53,95,140,.06),transparent 42%)}#root{position:relative;overflow:auto}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}::selection{color:#fff;background:#355f8cd1}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#e1dace7a}::-webkit-scrollbar-thumb{background:#79889c52;border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#5f6c7b75;background-clip:padding-box}.tech-panel{position:relative;border:1px solid rgba(221,214,200,.92);border-radius:20px;background:var(--bg-panel);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tech-panel:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px #ffffffbf;pointer-events:none}.tech-panel--soft{background:var(--bg-panel-soft);box-shadow:var(--shadow-soft)}.tech-title,.page-title{margin:0;color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.02em}.page-title{font-size:clamp(32px,4vw,42px);font-weight:600;line-height:1.18}.page-kicker{margin:0 0 12px;color:var(--accent-primary);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.page-subtitle,.tech-subtitle{margin:14px 0 0;max-width:72ch;color:var(--text-secondary);line-height:1.8}.page-shell{display:flex;flex-direction:column;gap:24px;min-height:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.tech-chip{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 14px;border:1px solid rgba(214,205,191,.95);border-radius:999px;color:var(--text-secondary);background:#fffdf8;font-size:12px;font-weight:600;white-space:nowrap}.tech-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-success)}.tech-mono,pre,code{font-family:var(--font-mono)}.ant-app,.ant-layout{color:var(--text-primary);background:transparent}.ant-btn{border-radius:12px;font-weight:500;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,color .2s ease}.ant-btn:hover{transform:none}.ant-btn-primary{color:#fff!important;background:var(--accent-primary)!important;border-color:var(--accent-primary)!important}.ant-btn-primary:hover,.ant-btn-primary:focus{color:#fff!important;background:#284d75!important;border-color:#284d75!important}.ant-btn-default{color:var(--text-primary)!important;background:#fff!important}.ant-btn-text{color:var(--text-primary)!important}.ant-btn:focus-visible,.ant-input:focus,.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused{box-shadow:0 0 0 3px #355f8c24!important}.ant-input,.ant-input-affix-wrapper,.ant-input-group-addon,.ant-input-outlined,.ant-input-password{border-radius:14px!important}.ant-input,.ant-input-affix-wrapper{color:var(--text-primary)!important;background:#fff!important;border-color:#d9d1c5!important}.ant-input::placeholder,.ant-input-affix-wrapper input::placeholder{color:#8a95a3!important}.ant-input-prefix,.ant-input-password-icon{color:#90a0b4!important}.ant-menu{background:transparent!important;border-inline-end:none!important}.ant-menu-item,.ant-menu-submenu-title{margin-inline:0!important}.ant-segmented{padding:4px!important;border-radius:14px!important;border:1px solid #e1d9cc}.ant-collapse,.ant-collapse>.ant-collapse-item,.ant-collapse-content{border-radius:16px!important}.ant-collapse>.ant-collapse-item>.ant-collapse-header{align-items:center!important}.ant-tag{border-radius:999px;border:1px solid #dfd6c9;font-weight:500}.ant-avatar{box-shadow:0 6px 16px #2a374e14}.ant-empty-description,.ant-typography{color:inherit}.ant-message .ant-message-notice-content{color:var(--text-primary);border:1px solid var(--panel-border);border-radius:14px;background:#fff;box-shadow:var(--shadow-soft)}.ant-dropdown .ant-dropdown-menu{padding:8px;border:1px solid var(--panel-border);border-radius:16px;box-shadow:var(--shadow-soft);background:#fff}.ant-dropdown .ant-dropdown-menu-item{border-radius:10px}.surface-grid{display:grid;gap:16px}@media(max-width:1280px){body{overflow:auto}}.app-loading-shell{display:grid;place-items:center;min-height:100vh;padding:24px}.app-loading-shell__panel,.app-page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.app-loading-shell__panel{min-width:min(420px,100%);min-height:220px;padding:36px}.app-page-loading{min-height:320px;padding:32px}.app-loading-shell__text,.app-page-loading__text{color:var(--text-secondary);font-size:13px}
