:root{--app-bg: #f6f8fb;--app-surface: #fff;--app-surface-soft: #f8fafc;--app-surface-muted: #eef2f7;--app-border: #e5eaf2;--app-border-soft: #edf0f4;--app-text: #172033;--app-text-strong: #111827;--app-text-muted: #7a8597;--app-text-subtle: #64748b;--app-primary: #18b981;--app-primary-strong: #0f6f55;--app-primary-soft: #eefbf6;--app-shadow: 0 10px 28px rgba(15,23,42,.045);color:var(--app-text);background:var(--app-bg);font-family:Microsoft YaHei,Segoe UI,Arial,sans-serif;font-size:15px}:root[data-theme=dark]{color-scheme:dark;--app-bg: #0f141b;--app-surface: #171e27;--app-surface-soft: #111821;--app-surface-muted: #202a36;--app-border: #2a3544;--app-border-soft: #24303d;--app-text: #d9e2ef;--app-text-strong: #f4f7fb;--app-text-muted: #94a3b8;--app-text-subtle: #a8b3c3;--app-primary: #21c48d;--app-primary-strong: #58d7ab;--app-primary-soft: rgba(33,196,141,.14);--app-shadow: 0 14px 32px rgba(0,0,0,.24)}*{box-sizing:border-box}body{margin:0;background:var(--app-bg);color:var(--app-text);font-size:15px;line-height:1.6}.n-form-item-blank:has(>.field-tip),.n-form-item-blank:has(>.field-help){flex-direction:column;align-items:stretch}.n-form-item-blank>.field-tip,.n-form-item-blank>.field-help,.field-stack>.field-tip,.field-stack>.field-help{display:block;width:100%;margin-top:6px;line-height:1.5}.eyebrow{margin:0 0 10px;color:var(--app-primary-strong);font-weight:800}h1{margin:0;font-size:28px;letter-spacing:0}.summary{margin:16px 0 0;color:var(--app-text-muted);line-height:1.8}.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px}.auth-card{width:min(420px,100%)}.admin-shell{min-height:100vh}.admin-sider{background:var(--app-surface)!important;box-shadow:var(--app-shadow)}.admin-sider .n-layout-sider-scroll-container{display:flex;flex-direction:column;height:100vh;overflow-y:auto;overflow-x:hidden!important;overscroll-behavior-x:none}.brand{height:78px;display:flex;align-items:center;gap:12px;padding:16px 18px;flex:0 0 78px;overflow:hidden;white-space:nowrap;color:var(--app-text-strong)}.brand-mark{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;color:#fff;background:linear-gradient(135deg,#12c486,#18b981);border-radius:8px;font-weight:900;box-shadow:0 10px 20px #12c4863d}.brand-copy{flex:0 0 156px;min-width:0;overflow:hidden;white-space:nowrap;opacity:1;transition:opacity .14s ease .16s}.brand--collapsed .brand-copy{opacity:0;transition-delay:0s;pointer-events:none}.brand-copy strong{display:block;overflow:hidden;font-size:18px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.brand-copy span{display:block;overflow:hidden;margin-top:4px;color:var(--app-text-muted);font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.admin-shell :deep(.n-menu){--n-item-text-color: var(--app-text-muted);--n-item-text-color-active:var(--app-primary-strong);--n-item-color-active:var(--app-primary);--n-item-color-active-hover:var(--app-primary);--n-item-color-hover:var(--app-primary-soft);padding:4px 12px 12px}.admin-shell :deep(.n-menu-item-content){height:44px;margin:4px 0;border-radius:8px;font-size:15px;font-weight:700}.admin-shell :deep(.n-menu-item-content--selected){color:#fff!important;box-shadow:0 10px 22px #18c98747}.admin-shell :deep(.n-menu-item-content--selected .n-menu-item-content__icon),.admin-shell :deep(.n-menu-item-content--selected .n-menu-item-content-header a){color:#fff!important}.admin-shell :deep(.n-menu-item-content-header a){color:inherit;text-decoration:none}.menu-icon{display:inline-grid;width:18px;place-items:center;color:inherit;font-size:16px}.sidebar-bottom{margin-top:4px;padding:0 12px 14px;min-width:0;overflow:hidden;flex:0 0 auto}.builder-license-status{display:flex;align-items:flex-start;gap:8px;margin-bottom:42px;padding:12px 14px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface-soft)}.builder-license-status__dot{width:7px;height:7px;margin-top:5px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e1f}.builder-license-status strong,.builder-license-status small{display:block;line-height:1.45}.builder-license-status strong{font-size:12px;color:var(--app-text-strong)}.builder-license-status small{margin-top:2px;color:var(--app-text-muted);font-size:10px;white-space:nowrap}.sidebar-action{width:100%;min-width:0;height:42px;padding:0 28px!important;justify-content:flex-start!important;overflow:hidden;white-space:nowrap;color:var(--app-text-muted)}.admin-sider.n-layout-sider--collapsed .sidebar-action{padding:0!important;justify-content:center!important}.rotated{transform:rotate(180deg)}.topbar{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 24px;background:color-mix(in srgb,var(--app-surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden;border-bottom:1px solid var(--app-border-soft)}.license-alert{margin:0;border-radius:0}.breadcrumb{display:flex;align-items:center;gap:8px;min-width:0;max-width:520px;overflow:hidden;white-space:nowrap;color:var(--app-text-muted);font-size:14px;font-weight:700}.breadcrumb span,.breadcrumb strong,.breadcrumb-link{min-width:0;overflow:hidden;text-overflow:ellipsis}.breadcrumb-link{color:var(--app-text-muted);text-decoration:none;transition:color .15s ease}.breadcrumb-link:hover{color:var(--app-primary);text-decoration:underline;text-underline-offset:4px}.breadcrumb strong{color:var(--app-text-strong)}.user-pill{display:flex;align-items:center;gap:10px;min-width:172px}.user-avatar{display:grid;place-items:center;width:34px;height:34px;color:#fff;background:linear-gradient(135deg,#1dbf83,#2489e8);border-radius:50%;font-weight:800}.user-name strong,.user-name small{display:block;line-height:1.2}.user-name small{margin-top:3px;color:var(--app-text-muted);font-size:12px}.content{min-height:calc(100vh - 64px);padding:18px 28px 32px;background:var(--app-bg)}.content--builder{padding:10px 10px 18px}.admin-shell--builder .topbar{min-height:54px;height:54px;padding-block:6px}.admin-shell--builder .admin-sider .n-layout-sider-scroll-container{overflow-y:hidden}.admin-shell--builder .admin-sider .n-menu{padding:3px 7px 8px}.admin-shell--builder .admin-sider .n-menu-item-content{height:38px;margin:1px 0;border-radius:6px;font-size:13px;font-weight:500}.admin-shell--builder .sidebar-bottom{margin-top:auto;padding-right:16px;padding-left:8px}.admin-shell--builder .sidebar-action{height:38px;padding-left:18px!important}.mobile-menu-button,.mobile-sider-scrim{display:none}.content .n-card:has(.eyebrow){display:none}.section-tabs-shell{display:flex;flex-direction:column;gap:8px;margin:0 0 16px;padding:7px 10px;background:var(--app-surface);border:1px solid var(--app-border-soft);border-radius:10px;box-shadow:0 8px 20px #0f172a0a}.section-tabs-shell--builder{flex-direction:row;align-items:center;gap:4px;min-height:40px;margin:0 0 8px;padding:4px 8px;border-radius:8px;box-shadow:none}.section-tabs-shell--builder .section-tabs{flex-wrap:nowrap;gap:2px}.section-tabs-shell--builder .section-tab{min-height:30px;padding-inline:12px;border-radius:6px;font-size:12px}@media(max-width:900px){.admin-sider.admin-sider--mobile-open{position:fixed!important;inset:0 auto 0 0;z-index:1001;height:100vh}.mobile-sider-scrim{display:block;position:fixed;inset:0 0 0 228px;z-index:1000;width:auto;height:100%;padding:0;border:0;background:#0f172a6b}.mobile-menu-button{display:inline-flex;flex:0 0 auto;min-width:44px;min-height:44px}.topbar{min-height:60px;gap:8px;padding:8px 12px}.topbar>.n-space{gap:4px!important;flex:0 0 auto}.topbar-button-label,.user-name{display:none}.user-pill{min-width:44px;min-height:44px}.breadcrumb{flex:1 1 auto;max-width:none}.content{min-height:calc(100vh - 60px);padding:14px 14px 24px}}.section-tabs{display:flex;align-items:center;gap:6px;min-height:34px;overflow-x:auto;scrollbar-width:none}.section-tabs::-webkit-scrollbar{display:none}.section-tabs--stacked{min-height:36px;padding-bottom:6px;border-bottom:1px solid var(--app-border-soft)}.section-subtabs{display:flex;align-items:center;gap:8px;min-height:34px;overflow-x:auto;scrollbar-width:none}.section-subtabs::-webkit-scrollbar{display:none}.section-tab-group{display:flex;align-items:center;gap:6px;flex:0 0 auto;padding:0;background:transparent;cursor:default}.section-tab-group+.section-tab-group,.section-tab-group+.section-tab,.section-tab+.section-tab-group{margin-left:22px}.section-tab-group-label{position:relative;display:flex;align-items:center;height:34px;padding:0 4px;color:var(--app-text);font-size:13px;font-weight:900;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none}.section-tab-group:hover .section-tab-group-label{color:var(--app-text)}.section-tab-group-label:after{content:"";width:1px;height:14px;margin-left:9px;background:var(--app-border);border-radius:999px}.section-tab-group--active .section-tab-group-label{color:var(--app-text-strong)}.section-tab-group--active .section-tab-group-label:before{content:"";position:absolute;left:4px;right:14px;bottom:1px;height:3px;background:var(--app-primary);border-radius:999px}.section-tab{flex:0 0 auto;height:34px;padding:0 14px!important;border-radius:999px!important;font-size:13px!important;font-weight:800!important;color:var(--app-text-muted)!important;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.section-tab:hover{color:var(--app-text-strong)!important;background:var(--app-surface-muted)!important}.section-tab.n-button--primary-type{color:#fff!important;background:linear-gradient(135deg,#17c58a,#1fbd8c)!important;box-shadow:0 8px 16px #18b9812e}.section-tab.n-button--primary-type:hover{transform:translateY(-1px)}.section-tab.n-button--primary-type:after{display:none}.section-tab--group{position:relative;color:var(--app-text)!important;font-weight:900!important}.section-tab--child{height:32px;font-weight:700!important}.section-tab--group.n-button--primary-type:after{content:"";display:block;position:absolute;left:14px;right:14px;bottom:-7px;height:3px;border-radius:999px;background:var(--app-primary)}.admin-guide{margin-bottom:12px}.admin-filter-bar{padding:10px 12px;margin-bottom:12px;background:var(--app-surface-soft);border:1px solid var(--app-border-soft);border-radius:8px}.admin-filter-bar .n-input,.admin-filter-bar .n-select{max-width:100%}.filter-keyword{width:220px}.n-card{border-radius:8px!important;box-shadow:var(--app-shadow)}.n-button--primary-type{--n-color:#1fbd8c!important;--n-color-hover:#18a979!important;--n-color-pressed:#128b64!important;--n-border:#1fbd8c!important}:root[data-theme=dark] .n-card{background-color:var(--app-surface)!important;border-color:var(--app-border)!important}:root[data-theme=dark] .n-layout,:root[data-theme=dark] .n-layout-scroll-container{background:var(--app-bg)!important}:root[data-theme=dark] .section-tabs{background:transparent}:root[data-theme=dark] .section-tabs--stacked{border-bottom-color:var(--app-border)}:root[data-theme=dark] .section-tabs-shell{background:color-mix(in srgb,var(--app-surface) 92%,transparent);border-color:var(--app-border)}:root[data-theme=dark] .section-tab{color:var(--app-text-subtle)!important}:root[data-theme=dark] .section-tab--group{color:var(--app-text-muted)!important}:root[data-theme=dark] .section-tab-group{background:transparent}:root[data-theme=dark] .section-tab-group-label{color:var(--app-text-muted)}:root[data-theme=dark] .section-tab-group:hover .section-tab-group-label,:root[data-theme=dark] .section-tab-group--active .section-tab-group-label{color:var(--app-text-strong)}:root[data-theme=dark] .section-tab-group-label:after{background:var(--app-border)}:root[data-theme=dark] .section-tab:hover{background:var(--app-surface-muted)!important;color:var(--app-text-strong)!important}:root[data-theme=dark] .section-tab.n-button--primary-type{color:#071a13!important;box-shadow:0 10px 24px #21c48d2e}:root[data-theme=dark] .admin-filter-bar{background:var(--app-surface-soft);border-color:var(--app-border)}:root[data-theme=dark] .n-data-table{--n-td-color: var(--app-surface);--n-td-color-hover: var(--app-surface-soft);--n-th-color: var(--app-surface-soft);--n-border-color: var(--app-border);--n-merged-td-color: var(--app-surface);--n-merged-th-color: var(--app-surface-soft);--n-merged-border-color: var(--app-border)}:root[data-theme=dark] .n-data-table .n-data-table-wrapper,:root[data-theme=dark] .n-data-table .n-data-table-base-table,:root[data-theme=dark] .n-data-table .n-data-table-base-table-body,:root[data-theme=dark] .n-data-table .n-data-table-table,:root[data-theme=dark] .n-data-table .n-data-table-empty{background-color:var(--app-surface)!important;color:var(--app-text)!important}:root[data-theme=dark] .n-data-table .n-data-table-th{background-color:var(--app-surface-soft)!important;color:var(--app-text-strong)!important;border-color:var(--app-border)!important}:root[data-theme=dark] .n-data-table .n-data-table-td{background-color:var(--app-surface)!important;color:var(--app-text)!important;border-color:var(--app-border)!important}:root[data-theme=dark] .n-data-table .n-data-table-tr:hover .n-data-table-td{background-color:var(--app-surface-soft)!important}:root[data-theme=dark] .n-alert{--n-color: rgba(59, 130, 246, .14)!important;--n-border: 1px solid rgba(96, 165, 250, .34)!important;--n-title-text-color: var(--app-text-strong)!important;--n-content-text-color: var(--app-text)!important;--n-icon-color: #60a5fa!important}:root[data-theme=dark] .n-alert.n-alert--success-type{--n-color: rgba(33, 196, 141, .12)!important;--n-border: 1px solid rgba(33, 196, 141, .32)!important;--n-icon-color: var(--app-primary)!important}:root[data-theme=dark] .n-alert.n-alert--warning-type{--n-color: rgba(245, 166, 35, .13)!important;--n-border: 1px solid rgba(245, 166, 35, .34)!important;--n-icon-color: #f5a623!important}:root[data-theme=dark] .n-alert.n-alert--error-type{--n-color: rgba(229, 72, 72, .13)!important;--n-border: 1px solid rgba(229, 72, 72, .34)!important;--n-icon-color: #ff7b7b!important}:root[data-theme=dark] .n-modal .n-card,:root[data-theme=dark] .n-drawer,:root[data-theme=dark] .n-dropdown-menu{background:var(--app-surface)!important}:root[data-theme=dark] .resource-card,:root[data-theme=dark] .property-summary div,:root[data-theme=dark] .property-section,:root[data-theme=dark] .page-preview-state,:root[data-theme=dark] .image-item,:root[data-theme=dark] .chat-session-item,:root[data-theme=dark] .reply-item,:root[data-theme=dark] .module-resource-editor,:root[data-theme=dark] .rich-text-editor,:root[data-theme=dark] .rich-toolbar,:root[data-theme=dark] .rich-markdown,:root[data-theme=dark] .rich-source,:root[data-theme=dark] .rich-preview-card,:root[data-theme=dark] .attachment-item,:root[data-theme=dark] .editor-shell,:root[data-theme=dark] .editor-toolbar,:root[data-theme=dark] .editor-content{background:var(--app-surface-soft)!important;border-color:var(--app-border)!important;color:var(--app-text)!important}:root[data-theme=dark] .rich-markdown .n-input,:root[data-theme=dark] .rich-source .n-input,:root[data-theme=dark] .rich-markdown .n-input-wrapper,:root[data-theme=dark] .rich-source .n-input-wrapper,:root[data-theme=dark] .rich-markdown textarea,:root[data-theme=dark] .rich-source textarea{background:transparent!important;color:var(--app-text)!important;border-color:var(--app-border)!important}:root[data-theme=dark] .rich-toolbar .n-button:not(.n-button--primary-type),:root[data-theme=dark] .rich-toolbar .n-button:not(.n-button--primary-type) .n-button__content{color:var(--app-text)!important}:root[data-theme=dark] .resource-card strong,:root[data-theme=dark] .module-card-head strong,:root[data-theme=dark] .property-summary strong,:root[data-theme=dark] .property-section-title,:root[data-theme=dark] .image-name,:root[data-theme=dark] .editor-content{color:var(--app-text-strong)!important}:root[data-theme=dark] .resource-card span,:root[data-theme=dark] .module-card-meta,:root[data-theme=dark] .property-summary span,:root[data-theme=dark] .page-preview-note,:root[data-theme=dark] .image-size,:root[data-theme=dark] .editor-placeholder{color:var(--app-text-subtle)!important}:root[data-theme=dark] .image-name,:root[data-theme=dark] .module-order,:root[data-theme=dark] .page-preview-viewport{background:var(--app-surface-muted)!important;border-color:var(--app-border)!important}:root[data-theme=dark] .canvas-dropzone.is-resource-over,:root[data-theme=dark] .module-sort-indicator{background:var(--app-primary-soft)!important;border-color:var(--app-primary)!important;color:var(--app-primary-strong)!important}:root[data-theme=dark] .page-preview-device,:root[data-theme=dark] .page-preview-frame{background:#fff!important}
