.app-layout{min-height:100vh;background:var(--color-bg-canvas)}.app-sider{background:var(--color-bg-canvas)!important;border-right:1px solid var(--border);display:flex;flex-direction:column;transition:all var(--duration-normal) var(--ease-out-expo);position:relative}.app-sider:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:url(/cloud-decoration.png) center bottom / contain no-repeat;opacity:.06;pointer-events:none}.app-sider .ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.app-sider .ant-menu{background:transparent!important;border-inline-end:0!important;padding:8px 10px}.app-sider .ant-menu-item{height:40px;margin:3px 0;border-radius:var(--radius-md);color:var(--text-secondary)}.app-sider .ant-menu-item:after{display:none}.app-sider .ant-menu-item:hover{color:var(--text-primary)!important;background:var(--color-bg-hover)!important}.app-sider .ant-menu-item-selected{color:var(--color-brand-ink)!important;background:var(--color-brand-ink-soft)!important;font-weight:600}.app-sider-toggle{margin-top:auto;padding:12px;border-top:1px solid var(--border);display:flex;justify-content:center}.sider-toggle-btn{color:var(--text-muted)!important;width:100%;background:transparent!important;border:1px solid var(--border)!important}.sider-toggle-btn:hover{color:var(--text-primary)!important;background:var(--color-bg-hover)!important;border-color:var(--border-hover)!important}.app-logo{display:flex;align-items:center;gap:10px;padding:20px 24px;color:var(--text-primary);font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.08em}.app-main-layout{min-width:0;background:var(--color-bg-canvas)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;background:var(--color-bg-panel)!important;border-bottom:none;padding:0 24px!important;position:sticky;top:0;z-index:20}.app-header:after{content:"";position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-border-subtle) 15%,var(--color-border-subtle) 85%,transparent 100%)}.app-header-left{min-width:0;display:flex;align-items:center;gap:16px}.app-header-title{min-width:0;color:var(--text-primary);font-family:var(--font-display);font-size:16px;font-weight:600;line-height:1.3}.app-header-title .ant-typography{color:var(--text-muted);font-size:12px;font-weight:400}.app-header-actions{display:flex;align-items:center;gap:8px}.app-content{min-height:calc(100vh - 56px);background:var(--color-bg-canvas);overflow-y:auto}@media (max-width: 768px){.app-header{padding:0 14px!important}.app-header-title .ant-typography,.user-section{display:none}}.admin-layout{min-height:100vh;background:var(--color-bg-canvas)}.admin-sider{background:var(--color-bg-panel)!important;border-right:1px solid var(--border)}.admin-sider .ant-menu{background:transparent!important;border-inline-end:0!important;padding:8px 10px}.admin-sider .ant-menu-item{height:40px;margin:3px 0;border-radius:var(--radius-md);color:var(--text-secondary)}.admin-sider .ant-menu-item:after{display:none}.admin-sider .ant-menu-item:hover{color:var(--text-primary)!important;background:var(--color-bg-hover)!important}.admin-sider .ant-menu-item-selected{color:var(--color-brand-primary)!important;background:var(--color-brand-soft)!important;font-weight:500}.admin-logo{padding:20px 24px;color:var(--text-primary);font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.08em}.admin-main-layout{min-width:0;background:var(--color-bg-canvas)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding:0 24px;background:var(--color-bg-panel);border-bottom:none;position:sticky;top:0;z-index:20}.admin-header:after{content:"";position:absolute;bottom:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-border-subtle) 15%,var(--color-border-subtle) 85%,transparent 100%)}.admin-header-left{min-width:0;display:flex;align-items:center;gap:16px}.admin-header-title{min-width:0;color:var(--text-primary);font-family:var(--font-display);font-size:16px;font-weight:600;line-height:1.3}.admin-header-title span{display:block;color:var(--text-muted);font-size:12px;font-weight:400}.admin-content{min-height:calc(100vh - 56px);background:var(--color-bg-canvas);padding:24px;overflow-y:auto}.admin-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.admin-page-title.ant-typography{color:var(--text-primary);font-family:var(--font-display);margin:0 0 4px}.admin-page-desc{color:var(--text-secondary)}.channel-model-label{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}@media (max-width: 768px){.admin-header{padding:0 14px}.admin-header-title span,.user-section{display:none}.admin-content{padding:16px}}.brand-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px}.brand-loader--inline{flex-direction:row;gap:10px;padding:0}.brand-loader-ring{position:relative;width:48px;height:48px;color:var(--color-brand-primary)}.brand-loader--sm .brand-loader-ring{width:28px;height:28px}.brand-loader--lg .brand-loader-ring{width:64px;height:64px}.brand-loader-ring svg{width:100%;height:100%;animation:brand-spin 1.2s cubic-bezier(.5,0,.5,1) infinite}.brand-loader-ring circle{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0}.brand-loader-text{font-size:13px;color:var(--text-secondary);font-weight:500;min-height:20px;text-align:center;animation:brand-fade .4s ease}.brand-loader--sm .brand-loader-text{font-size:12px}.brand-loader-progress{width:120px;height:3px;background:#3c322814;border-radius:2px;overflow:hidden}.brand-loader--sm .brand-loader-progress{width:80px;height:2px}.brand-loader-progress-bar{height:100%;background:var(--gradient-cta);border-radius:2px;transition:width var(--duration-slow) var(--ease-out-ios)}.brand-loader-progress-bar--indeterminate{width:40%!important;animation:brand-progress-slide 1.5s ease-in-out infinite}@keyframes brand-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes brand-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes brand-progress-slide{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(350%)}}@media (prefers-reduced-motion: reduce){.brand-loader-ring svg,.brand-loader-text,.brand-loader-progress-bar--indeterminate{animation:none}}:root{--color-bg-canvas: #f4efe6;--color-bg-base: #faf7f1;--color-bg-panel: #faf7f1;--color-bg-elevated: #fefdfb;--color-bg-hover: rgba(60, 50, 40, .04);--color-bg-muted: #ede7dc;--color-bg-editor: #ede7dc;--color-bg-slide-preview: #ede7dc;--color-text-primary: #2d2520;--color-text-secondary: #6b5e54;--color-text-muted: #a89b90;--color-text-tertiary: #cdc3b8;--color-text-inverse: #ffffff;--color-brand-primary: #c45040;--color-brand-accent: #c45040;--color-brand-hover: #b33d2e;--color-brand-deep: #9a3024;--color-brand-glow: rgba(196, 80, 64, .08);--color-brand-soft: rgba(196, 80, 64, .06);--color-brand-ink: #4a3f36;--color-brand-ink-soft: rgba(74, 63, 54, .08);--color-border-subtle: rgba(60, 50, 40, .08);--color-border-strong: rgba(60, 50, 40, .15);--color-border-focus: rgba(196, 80, 64, .5);--color-border-hover: rgba(60, 50, 40, .2);--color-success: #4a7a52;--color-success-bg: rgba(74, 122, 82, .08);--color-warning: #b07d2a;--color-warning-bg: rgba(176, 125, 42, .08);--color-danger: #b83a2a;--color-danger-bg: rgba(184, 58, 42, .06);--color-info: #5b8a72;--color-info-bg: rgba(91, 138, 114, .06);--color-ink-wash: rgba(74, 63, 54, .06);--color-stone-cyan: #5b8a72;--color-stone-cyan-soft: rgba(91, 138, 114, .08);--color-stone-cyan-hover: #4d7a64;--gradient-cta: #c45040;--gradient-cta-hover: #b33d2e;--gradient-warm: linear-gradient(135deg, rgba(74, 63, 54, .03), rgba(240, 236, 231, .5));--gradient-canvas: var(--color-bg-canvas);--glass-bg: rgba(250, 247, 241, .88);--glass-bg-strong: rgba(250, 247, 241, .95);--glass-border: rgba(60, 50, 40, .08);--glass-highlight: rgba(255, 255, 255, .5);--glass-blur: 16px;--glass-shadow: 0 4px 16px rgba(60, 50, 40, .06);--depth-shadow-sm: 0 1px 3px rgba(60, 50, 40, .06), 0 1px 2px rgba(60, 50, 40, .03);--depth-shadow-md: 0 4px 14px rgba(60, 50, 40, .07), 0 1px 3px rgba(60, 50, 40, .04);--depth-shadow-lg: 0 12px 40px rgba(60, 50, 40, .09), 0 4px 12px rgba(60, 50, 40, .04);--font-display: "Noto Serif SC", "Songti SC", STSong, serif;--font-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", "Fira Code", monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-ios: cubic-bezier(.25, .46, .45, .94);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .35s;--bg-primary: var(--color-bg-panel);--bg-secondary: var(--color-bg-canvas);--bg-tertiary: var(--color-bg-muted);--bg-hover: var(--color-bg-hover);--bg-elevated: var(--color-bg-elevated);--bg-editor: var(--color-bg-editor);--bg-panel: var(--color-bg-panel);--bg-slide-preview: var(--color-bg-slide-preview);--border: var(--color-border-subtle);--border-primary: var(--color-border-subtle);--border-hover: var(--color-border-hover);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--text-muted: var(--color-text-muted);--text-tertiary: var(--color-text-tertiary);--text-danger: var(--color-danger);--text-success: var(--color-success);--accent: var(--color-brand-primary);--primary: var(--color-brand-primary);--primary-rgb: 196, 80, 64;--accent-deep: var(--color-brand-deep);--accent-hover: var(--color-brand-hover);--accent-bg: var(--color-brand-soft);--brand-ink: var(--color-brand-ink);--green: var(--color-success);--yellow: var(--color-warning);--purple: var(--color-brand-ink);--red: var(--color-danger);--danger: var(--color-danger);--divider-subtle: rgba(60, 50, 40, .06);--glow-primary: var(--color-brand-soft);--glow-secondary: rgba(60, 50, 40, .03);--shadow-lg: var(--depth-shadow-lg)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;background:var(--color-bg-canvas)}body{font-family:var(--font-body);background:var(--color-bg-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}#root{min-height:100vh}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#3c32281f;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#3c322838}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}button,a,[role=button]{-webkit-tap-highlight-color:transparent}button:not(:disabled),a[href],[role=button]{cursor:pointer}button:disabled,.ant-btn:disabled{cursor:not-allowed}.ant-btn{border-radius:var(--radius-md)!important;transition:all var(--duration-fast) var(--ease-out-expo)!important}.ant-btn:active:not(:disabled){transform:scale(.98)!important}.ant-btn-sm{border-radius:var(--radius-sm)!important}.ant-btn-primary{box-shadow:0 1px 2px #c4504026!important}.ant-btn-primary:hover:not(:disabled){box-shadow:0 2px 8px #c4504033!important}.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-select-selector,.ant-picker,.ant-input-textarea .ant-input{border-radius:var(--radius-md)!important}.ant-card,.ant-modal-content,.ant-dropdown-menu,.ant-popover-inner{border-radius:var(--radius-lg)!important}.ant-modal-mask{backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#3c322808!important}[style*=overflow],.ant-modal-body{-webkit-overflow-scrolling:touch}.surface-base,.surface-panel,.surface-elevated,.surface-glass,.surface-glass-strong,.glass-card{border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.surface-base{background:var(--color-bg-base)}.surface-panel{background:var(--color-bg-panel);box-shadow:var(--depth-shadow-sm)}.surface-elevated{background:var(--color-bg-elevated);box-shadow:var(--depth-shadow-md)}.surface-glass,.glass-card{background:var(--glass-bg);box-shadow:var(--depth-shadow-sm)}.surface-glass-strong{background:var(--glass-bg-strong);box-shadow:var(--depth-shadow-sm)}.surface-interactive{transition:border-color var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo)}.surface-interactive:hover{border-color:var(--color-border-hover);box-shadow:var(--depth-shadow-md)}.btn-gradient,.btn-brand{background:var(--color-brand-primary)!important;border:none!important;color:var(--color-text-inverse)!important;font-weight:600;border-radius:var(--radius-md)!important;box-shadow:0 1px 3px #c4504026;transition:all var(--duration-normal) var(--ease-out-expo)}.btn-gradient:hover,.btn-gradient:focus,.btn-brand:hover,.btn-brand:focus{background:var(--color-brand-hover)!important;box-shadow:0 2px 8px #c4504033}.btn-gradient:active,.btn-brand:active{transform:scale(.98)}.btn-brand-subtle{color:var(--color-brand-primary)!important;background:var(--color-brand-soft)!important;border:1px solid rgba(196,80,64,.12)!important}.btn-ghost-premium{color:var(--text-secondary)!important;background:transparent!important;border:1px solid var(--border)!important}.btn-ghost-premium:hover{color:var(--color-brand-ink)!important;border-color:var(--border-hover)!important;background:var(--color-brand-ink-soft)!important}.btn-capsule{border-radius:var(--radius-pill)!important;padding:6px 18px!important;font-weight:500}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);color:var(--text-secondary);background:var(--color-bg-muted);border:1px solid var(--border);font-size:12px;font-weight:600}.status-pill--active{color:var(--color-brand-primary);background:var(--color-brand-soft);border-color:#c4504026}.status-pill--success{color:var(--color-success);background:var(--color-success-bg);border-color:#3d7a4a26}.status-pill--warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:#b07d2a26}.status-pill--danger{color:var(--color-danger);background:var(--color-danger-bg);border-color:#b83a2a26}.status-pill--muted{color:var(--text-muted)}.section-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--radius-pill);background:var(--color-bg-muted);border:1px solid var(--border)}.toggle-btn{border:0;border-radius:var(--radius-pill);padding:6px 14px;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);background:transparent;font-size:13px;font-weight:500;transition:all var(--duration-fast) var(--ease-out-expo)}.toggle-btn:hover{color:var(--text-primary);background:#3c32280a}.toggle-btn.active{color:var(--color-text-inverse);background:var(--color-brand-ink);box-shadow:0 1px 3px #4a3f3633}.user-btn{display:flex;align-items:center;gap:8px;min-height:36px;color:var(--text-primary)!important;background:transparent!important;border:1px solid var(--border)!important;border-radius:var(--radius-pill)!important;padding-inline:14px!important}.user-btn:hover{border-color:var(--border-hover)!important;background:var(--color-bg-hover)!important}.user-section{color:var(--text-muted);font-size:12px}.user-dropdown-arrow{color:var(--text-muted);font-size:10px}.user-menu-header{min-width:130px;padding:8px 0}.user-menu-name{font-size:14px;font-weight:600;color:var(--text-primary)}.user-menu-role{font-size:12px;color:var(--text-muted)}.text-tertiary{color:var(--text-muted)}@media (max-width: 900px){.section-toggle{display:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #c4504000;opacity:.85}50%{box-shadow:0 0 12px #c4504026;opacity:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
