#aksrt-admin-app, #aksrt-admin-app * { box-sizing: border-box; } #aksrt-admin-app { --aksrt-color-primary: #18A058; --aksrt-color-primary-hover: #36AD6A; --aksrt-color-primary-pressed: #0C7A43; --aksrt-color-primary-soft: #EAF7EF; --aksrt-color-canvas: #F5F7F6; --aksrt-color-surface: #FFFFFF; --aksrt-color-text: #1F2923; --aksrt-color-text-secondary: #465149; --aksrt-color-muted: #6F7A72; --aksrt-color-border: #E2E8E3; --aksrt-color-border-strong: #CCD7CE; --aksrt-shadow-card: 0 1px 2px rgba(31, 41, 35, .04); --aksrt-shadow-floating: 0 12px 32px rgba(31, 41, 35, .12); min-height: 100%; color: var(--aksrt-color-text); background: var(--aksrt-color-canvas); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; font-size: 14px; line-height: 1.6; } /* ==================== FA5 Icon in NaiveUI Menu ==================== */ #aksrt-admin-app .n-menu .n-menu-item-content i[class*="fa-"], #aksrt-admin-app .n-menu-item-content i[class*="fa-"] { font-size: 18px; width: 18px; text-align: center; display: inline-flex; align-items: center; justify-content: center; color: inherit; opacity: 0.75; transition: opacity 0.15s; } #aksrt-admin-app .n-menu-item-content--selected i[class*="fa-"], #aksrt-admin-app .n-menu-item-content:hover i[class*="fa-"] { opacity: 1; } #aksrt-admin-app .n-layout, #aksrt-admin-app .n-layout-sider { min-height: 100vh; } #aksrt-admin-app .aksrt-admin-layout { min-height: 100vh; background: var(--aksrt-color-canvas); } #aksrt-admin-app .aksrt-admin-sider { background: var(--aksrt-color-surface); border-right: 1px solid var(--aksrt-color-border); } #aksrt-admin-app .aksrt-admin-sider .n-layout-toggle-button { border: 1px solid var(--aksrt-color-border); background: var(--aksrt-color-surface); color: var(--aksrt-color-muted); box-shadow: var(--aksrt-shadow-card); } #aksrt-admin-app .aksrt-admin-sider .n-layout-toggle-button:hover { border-color: var(--aksrt-color-primary); color: var(--aksrt-color-primary); } #aksrt-admin-app .aksrt-admin-menu { padding: 10px 8px 18px; } #aksrt-admin-app .aksrt-admin-menu .n-menu-item-content { position: relative; border-radius: 8px; transition: color .16s ease, background-color .16s ease; } #aksrt-admin-app .aksrt-admin-menu .n-menu-item-content--selected::after { position: absolute; top: 9px; bottom: 9px; left: 0; width: 3px; border-radius: 0 3px 3px 0; background: var(--aksrt-color-primary); content: ''; } #aksrt-admin-app .aksrt-admin-menu .n-submenu-children { margin: 2px 0 6px; } #aksrt-admin-app .aksrt-admin-menu .n-menu-item-content-header { font-weight: 500; } #aksrt-admin-app .aksrt-menu-item--secondary .n-menu-item-content-header { color: var(--aksrt-color-muted); font-size: 12px; } #aksrt-admin-app .aksrt-admin-content { background: var(--aksrt-color-canvas); } #aksrt-admin-app .aksrt-schema-page, #aksrt-admin-app .aksrt-page-container, #aksrt-admin-app .content-page { width: 100%; max-width: 1180px; margin: 0 auto; } #aksrt-admin-app .aksrt-form-renderer__save-bar { right: 28px; left: auto; width: min(1180px, calc(100vw - 448px)); border: 1px solid var(--aksrt-color-border); border-bottom: 0; border-radius: 12px 12px 0 0; background: rgba(255, 255, 255, .96); box-shadow: var(--aksrt-shadow-floating); backdrop-filter: blur(12px); } #aksrt-admin-app .aksrt-form-renderer__save-bar__inner { max-width: 1180px; } #aksrt-admin-app .aksrt-form-renderer__save-bar .n-button--primary-type { box-shadow: 0 4px 12px rgba(24, 160, 88, .18); } #aksrt-admin-app :where(a, button, input, textarea, select, [tabindex]):focus-visible { outline: 2px solid var(--aksrt-color-primary); outline-offset: 2px; } #aksrt-admin-app .aksrt-page-title { margin: 0 0 12px; color: var(--aksrt-color-text); font-size: 22px; font-weight: 700; letter-spacing: -0.02em; } #aksrt-admin-app .aksrt-page-desc { margin: 0 0 24px; color: var(--aksrt-color-muted); font-size: 13px; line-height: 1.7; } #aksrt-admin-app .aksrt-section-card { margin-bottom: 18px; border-radius: 12px !important; border: 1px solid var(--aksrt-color-border) !important; background: var(--aksrt-color-surface); box-shadow: var(--aksrt-shadow-card); } #aksrt-admin-app .aksrt-section-card .n-card__content { padding: 18px 20px 20px !important; } #aksrt-admin-app .aksrt-section-card .n-card-header { padding: 18px 20px 0 !important; } #aksrt-admin-app .aksrt-section-header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; } #aksrt-admin-app .aksrt-section-header h3 { margin: 0; color: var(--aksrt-color-text); font-size: 15px; font-weight: 600; } #aksrt-admin-app .section-icon, #aksrt-admin-app .header-icon { font-size: 17px; opacity: 0.8; display: inline-flex; align-items: center; } #aksrt-admin-app .section-desc, #aksrt-admin-app .aksrt-hint-text { color: var(--aksrt-color-muted); font-size: 12px; line-height: 1.6; } #aksrt-admin-app .section-desc { margin: 0 0 14px; } #aksrt-admin-app .aksrt-form .n-form-item { margin-bottom: 18px; } #aksrt-admin-app .aksrt-form .n-form-item:last-child { margin-bottom: 0; } #aksrt-admin-app .aksrt-form .n-form-item-label { color: var(--aksrt-color-text-secondary) !important; font-size: 13px; font-weight: 500; } #aksrt-admin-app .aksrt-form .n-input, #aksrt-admin-app .aksrt-form .n-select .n-base-selection, #aksrt-admin-app .aksrt-form .n-input-number { min-height: 36px; --n-height: 36px !important; } #aksrt-admin-app .aksrt-form .n-input--textarea textarea { min-height: 84px; } #aksrt-admin-app .aksrt-form .n-switch { --n-rail-height: 26px !important; --n-rail-width: 48px !important; } #aksrt-admin-app .aksrt-form-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 24px 0 8px; margin-top: 28px; border-top: 1px solid var(--aksrt-color-border); } #aksrt-admin-app .aksrt-form-actions .n-button { min-width: 120px; height: 40px; font-weight: 500; } #aksrt-admin-app .aksrt-tabs .n-tabs-nav { margin-bottom: 20px !important; } #aksrt-admin-app .aksrt-tabs .n-tabs-tab { padding: 10px 20px !important; font-size: 14px !important; font-weight: 500; } #aksrt-admin-app .n-data-table { border-radius: 10px; overflow: hidden; } #aksrt-admin-app .n-data-table .n-data-table-th { background: #f7f9f7; } #aksrt-admin-app .n-empty { padding: 24px 0; } #aksrt-admin-app .aksrt-card-header-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; flex-wrap: wrap; } #aksrt-admin-app .aksrt-card-header-row__left { display: inline-flex; align-items: center; gap: 8px; min-width: 0; } #aksrt-admin-app .aksrt-card-header-row__title { font-weight: 600; } /* ==================== 卡片 header 行(标题 + 按钮) ==================== */ #aksrt-admin-app .aksrt-card-header-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; flex-wrap: wrap; } #aksrt-admin-app .aksrt-card-header-row__left { display: flex; align-items: center; gap: 8px; min-width: 0; } #aksrt-admin-app .aksrt-card-header-row__title { margin: 0; font-size: 15px; font-weight: 600; color: var(--aksrt-color-text); } /* ==================== 过渡 ==================== */ .fade-slide-enter-active, .fade-slide-leave-active { transition: opacity 0.24s ease, transform 0.24s ease; } .fade-slide-enter-from { opacity: 0; transform: translateY(12px); } .fade-slide-leave-to { opacity: 0; transform: translateY(-8px); } /* ==================== Modal 样式(弹层) ==================== */ .aksrt-modal-card { width: 100%; max-width: 520px; } @media (max-width: 960px) { #aksrt-admin-app .aksrt-form-renderer__save-bar { right: 0; left: 0; width: auto; border-right: 0; border-left: 0; border-radius: 0; } #aksrt-admin-app .aksrt-page-wrapper { width: 100%; } #aksrt-admin-app .aksrt-admin-menu { padding-top: 8px; } } /* ==================== 移动端适配 ==================== */ @media (max-width: 768px) { /* 容器 */ #aksrt-admin-app .aksrt-page-container, #aksrt-admin-app .content-page { max-width: 100%; padding: 0; } #aksrt-admin-app .aksrt-field__desc { margin: 2px 0 8px; } #aksrt-admin-app .aksrt-page-title { font-size: 18px; margin-bottom: 8px; } #aksrt-admin-app .aksrt-page-desc { font-size: 12px; margin-bottom: 14px; } /* 卡片紧凑 */ #aksrt-admin-app .aksrt-section-card { margin-bottom: 12px; border-radius: 10px !important; } #aksrt-admin-app .aksrt-section-card .n-card__content { padding: 14px !important; } #aksrt-admin-app .aksrt-section-card .n-card-header { padding: 14px 14px 0 !important; } #aksrt-admin-app .aksrt-section-header { margin-bottom: 10px; } /* 表单:label 改为顶部排列(覆盖 left 模式) */ #aksrt-admin-app .aksrt-form .n-form-item { margin-bottom: 14px; } #aksrt-admin-app .aksrt-form .n-form-item .n-form-item-label { text-align: left !important; padding: 0 0 6px !important; width: auto !important; height: auto !important; line-height: 1.5 !important; justify-content: flex-start !important; } #aksrt-admin-app .aksrt-form .n-form-item-blank { width: 100%; } /* 强制行内表单单列 */ #aksrt-admin-app .aksrt-form .n-form-item .n-form-item-label, #aksrt-admin-app .aksrt-form .n-form-item-row { display: block !important; } /* radio button 自动换行 */ #aksrt-admin-app .aksrt-form .n-radio-group { width: 100%; } #aksrt-admin-app .aksrt-form .n-radio-group .n-space { flex-wrap: wrap !important; gap: 6px 8px !important; } #aksrt-admin-app .aksrt-form .n-radio-button { flex: 1 1 auto; min-width: 0; } /* 输入组在窄屏堆叠 */ #aksrt-admin-app .aksrt-form .n-input-group { flex-wrap: wrap; gap: 6px; } #aksrt-admin-app .aksrt-form .n-input-group > .n-input, #aksrt-admin-app .aksrt-form .n-input-group > .n-button { border-radius: 6px !important; } /* 表单底部按钮区 */ #aksrt-admin-app .aksrt-form-actions { flex-direction: column-reverse; align-items: stretch; padding: 16px 0 8px; margin-top: 20px; gap: 8px; } #aksrt-admin-app .aksrt-form-actions .n-button { width: 100%; min-width: 0; height: 42px; } /* 卡片 header 行:换行排列 */ #aksrt-admin-app .aksrt-card-header-row { gap: 8px; } /* Naive 弹窗全屏 */ .n-modal-mask + .n-modal-body-wrapper .n-modal, .n-modal-body-wrapper > .n-modal { width: 100vw !important; max-width: 100vw !important; border-radius: 0 !important; margin: 0 !important; min-height: 100vh; } .aksrt-modal-card { max-width: 100vw !important; width: 100vw !important; min-height: 100vh; border-radius: 0 !important; } /* 数据表格隐藏次要列 */ .aksrt-table-mobile-hide, #aksrt-admin-app .n-data-table .aksrt-table-mobile-hide { display: none !important; } /* 表格内边距收紧 */ #aksrt-admin-app .n-data-table .n-data-table-td, #aksrt-admin-app .n-data-table .n-data-table-th { padding: 8px 10px !important; } /* tabs */ #aksrt-admin-app .aksrt-tabs .n-tabs-tab { padding: 8px 12px !important; font-size: 13px !important; } /* drawer 内菜单 */ .n-drawer .n-menu .n-menu-item-content { padding-left: 18px !important; } } /* ==================== 超窄设备(<= 480px)追加 ==================== */ @media (max-width: 480px) { #aksrt-admin-app .aksrt-section-card .n-card__content { padding: 12px !important; } #aksrt-admin-app .aksrt-section-card .n-card-header { padding: 12px 12px 0 !important; } } @media (prefers-reduced-motion: reduce) { #aksrt-admin-app *, #aksrt-admin-app *::before, #aksrt-admin-app *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }