.sidebar-footer[data-v-64378053]{display:flex;flex-direction:column;gap:10px}.sidebar-user[data-v-64378053]{display:flex;align-items:center;gap:8px;min-width:0}.user-avatar[data-v-64378053]{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff;background:var(--sidebar-active)}.user-name[data-v-64378053]{color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-actions[data-v-64378053]{display:flex;gap:14px}.link-btn[data-v-64378053]{padding:0;border:none;background:transparent;color:var(--sidebar-text);font-size:12px;font-family:inherit;cursor:pointer;transition:color var(--transition)}.link-btn[data-v-64378053]:hover{color:#fff}.cloud-image[data-v-cc1c14ce]{display:block;width:100%;height:100%;object-fit:cover;background:#f5f6f8}.cloud-image-fallback[data-v-cc1c14ce]{position:relative;width:100%;height:100%;background:#f5f6f8;overflow:hidden}.cat-tabs[data-v-4dd214cf]{flex:none;background:#fff;border-bottom:1px solid var(--border-light);padding:12px 20px 0}.cat-tabs-inner[data-v-4dd214cf]{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}.cat-tabs-inner[data-v-4dd214cf]::-webkit-scrollbar{height:0}.cat-tab[data-v-4dd214cf]{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;font-size:13px;font-family:inherit;color:var(--text-regular);background:#f5f7fa;border:1px solid transparent;border-radius:15px;cursor:pointer;white-space:nowrap;transition:all var(--transition)}.cat-tab[data-v-4dd214cf]:hover{color:var(--primary);background:#ecf5ff}.cat-tab.is-active[data-v-4dd214cf]{color:#fff;background:var(--primary)}.cat-tab-off[data-v-4dd214cf]{padding:0 5px;font-size:11px;line-height:15px;border-radius:8px;color:#b88230;background:#fdf3e6}.cat-tab.is-active .cat-tab-off[data-v-4dd214cf]{color:#fff;background:#ffffff40}.cat-tab-count[data-v-4dd214cf]{font-size:12px;opacity:.7}.grid[data-v-4dd214cf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.tpl-card[data-v-4dd214cf]{overflow:hidden;display:flex;flex-direction:column;transition:transform var(--transition),box-shadow var(--transition)}.tpl-card[data-v-4dd214cf]:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.tpl-cover[data-v-4dd214cf]{position:relative;height:168px;overflow:hidden;background:#f5f6f8;border-bottom:1px solid var(--border-light)}.cover-badge[data-v-4dd214cf]{position:absolute;top:10px;left:10px}.cover-size[data-v-4dd214cf]{position:absolute;right:10px;bottom:8px;padding:2px 8px;font-size:11px;color:#fff;background:#00000073;border-radius:10px}.tpl-info[data-v-4dd214cf]{padding:12px 14px 6px}.tpl-name[data-v-4dd214cf]{font-size:15px;font-weight:600;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tpl-meta[data-v-4dd214cf]{margin-top:6px;font-size:12px;color:var(--text-secondary);display:flex;gap:6px}.tpl-category[data-v-4dd214cf]{margin-top:6px;font-size:12px;color:var(--primary)}.tpl-actions[data-v-4dd214cf]{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 14px}.upload-box[data-v-4dd214cf]{height:170px;border:1px dashed var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#fafbfc;transition:border-color var(--transition),background var(--transition)}.upload-box[data-v-4dd214cf]:hover{border-color:var(--primary);background:#f5faff}.upload-box img[data-v-4dd214cf]{width:100%;height:100%;object-fit:contain}.upload-tip[data-v-4dd214cf]{text-align:center;color:var(--text-secondary);font-size:13px}.upload-icon[data-v-4dd214cf]{font-size:26px;color:#c0c4cc;margin-bottom:6px}.cat-manage-head[data-v-4dd214cf],.cat-manage-row[data-v-4dd214cf]{display:flex;align-items:center;gap:10px;padding:6px 0}.cat-manage-head[data-v-4dd214cf]{font-size:12px;color:var(--text-secondary)}.cm-name[data-v-4dd214cf]{flex:1;min-width:0}.cm-sort[data-v-4dd214cf],.cm-status[data-v-4dd214cf]{width:84px;flex:none}.cm-actions[data-v-4dd214cf]{width:132px;flex:none;text-align:right}.cat-manage-row>.input[data-v-4dd214cf]:first-child{flex:1;min-width:0}.cat-manage-row>.input[type=number][data-v-4dd214cf]{width:84px;flex:none}.cat-manage-row>.select[data-v-4dd214cf]{width:84px;flex:none}.cm-row-actions[data-v-4dd214cf]{width:132px;flex:none;display:flex;justify-content:flex-end;gap:8px}.cat-manage-add[data-v-4dd214cf]{display:flex;gap:10px;align-items:center}.cat-manage-add>.input[data-v-4dd214cf]:first-child{flex:1;min-width:0}.cat-add-sort[data-v-4dd214cf]{width:84px;flex:none}:root{--sidebar-bg: #304156;--sidebar-bg-deep: #263445;--sidebar-text: #bfcbd9;--sidebar-active: #409eff;--header-h: 60px;--sidebar-w: 210px;--bg-page: #f0f2f5;--bg-card: #ffffff;--border: #e4e7ed;--border-light: #ebeef5;--text-main: #303133;--text-regular: #606266;--text-secondary: #909399;--primary: #409eff;--primary-dark: #337ecc;--success: #67c23a;--warning: #e6a23c;--danger: #f56c6c;--radius: 8px;--radius-sm: 6px;--shadow-card: 0 2px 12px rgba(0, 0, 0, .06);--shadow-pop: 0 8px 32px rgba(0, 0, 0, .18);--transition: .2s ease}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,PingFang SC,Arial,sans-serif;font-size:14px;color:var(--text-main);background:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--sidebar-bg);display:flex;flex-direction:column;color:var(--sidebar-text);transition:width var(--transition)}.sidebar-logo{height:var(--header-h);display:flex;align-items:center;gap:8px;padding:0 18px;font-size:17px;font-weight:600;color:#fff;letter-spacing:.5px;background:var(--sidebar-bg-deep);white-space:nowrap}.sidebar-logo .dot{width:10px;height:10px;border-radius:3px;background:var(--sidebar-active);box-shadow:0 0 8px #409effcc}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;height:46px;padding:0 18px;color:var(--sidebar-text);cursor:pointer;font-size:14px;border-left:3px solid transparent;transition:background var(--transition),color var(--transition);-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--sidebar-bg-deep);color:#fff}.nav-item.is-active{background:var(--sidebar-bg-deep);color:#fff;border-left-color:var(--sidebar-active)}.nav-icon{width:18px;text-align:center;font-size:15px}.sidebar-footer{padding:12px 18px;font-size:12px;color:#7f8fa4;border-top:1px solid rgba(255,255,255,.06)}.main-area{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:var(--header-h);flex:0 0 var(--header-h);background:#fff;border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:0 20px;gap:14px;z-index:20}.topbar-title{font-size:16px;font-weight:600}.topbar-sub{color:var(--text-secondary);font-size:13px}.topbar-spacer{flex:1}.page{flex:1;overflow-y:auto;padding:20px}.page-plain{flex:1;overflow:hidden;display:flex;flex-direction:column}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;font-size:13px;font-family:inherit;color:var(--text-regular);background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){color:var(--primary);border-color:#c6e2ff;background:#ecf5ff}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:#fff;background:var(--primary);border-color:var(--primary)}.btn-primary:hover:not(:disabled){color:#fff;background:var(--primary-dark);border-color:var(--primary-dark)}.btn-success{color:#fff;background:var(--success);border-color:var(--success)}.btn-success:hover:not(:disabled){color:#fff;background:#5daf34;border-color:#5daf34}.btn-danger{color:#fff;background:var(--danger);border-color:var(--danger)}.btn-danger:hover:not(:disabled){color:#fff;background:#f78989;border-color:#f78989}.btn-text{border-color:transparent;background:transparent;padding:0 8px}.btn-text:hover:not(:disabled){background:#ecf5ff}.btn-sm{height:28px;padding:0 10px;font-size:12px}.btn-lg{height:40px;padding:0 20px;font-size:14px}.btn-block{width:100%}.field{margin-bottom:12px}.field-label{display:block;margin-bottom:6px;font-size:12px;color:var(--text-secondary)}.input,.select,.textarea{width:100%;height:34px;padding:0 10px;font-size:13px;font-family:inherit;color:var(--text-main);background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.textarea{height:auto;min-height:68px;padding:8px 10px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #409eff26}.input[type=color]{padding:2px;cursor:pointer}.field-row{display:flex;gap:10px}.field-row>*{flex:1;min-width:0}.checkbox{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:var(--text-regular);-webkit-user-select:none;user-select:none}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-light)}.card-title{font-size:15px;font-weight:600}.card-body{padding:20px}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px;border-radius:11px;font-size:12px;line-height:1;white-space:nowrap}.badge-draft{color:#909399;background:#f4f4f5}.badge-published{color:#529b2e;background:#eaf7e3}.badge-offline{color:#b88230;background:#fdf3e6}.skeleton{background:linear-gradient(90deg,#f2f3f5 25%,#e9ebef 37%,#f2f3f5 63%);background-size:400% 100%;animation:skeleton-loading 1.3s ease infinite;border-radius:var(--radius-sm)}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.empty{padding:70px 20px;text-align:center;color:var(--text-secondary)}.empty-icon{font-size:44px;line-height:1;margin-bottom:12px;opacity:.6}.empty-title{font-size:15px;color:var(--text-regular);margin-bottom:6px}.empty-desc{font-size:13px;margin-bottom:18px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fade-in .16s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{width:480px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);display:flex;flex-direction:column;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-pop);animation:modal-pop .18s ease;overflow:hidden}@keyframes modal-pop{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal-header{display:flex;align-items:center;padding:16px 20px;font-size:15px;font-weight:600;border-bottom:1px solid var(--border-light)}.modal-body{padding:20px;overflow-y:auto;font-size:14px;color:var(--text-regular);line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-light)}.toast-host{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;max-width:460px;padding:10px 16px;font-size:13px;border-radius:var(--radius-sm);background:#fff;box-shadow:0 4px 16px #00000029;border:1px solid var(--border-light);animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.toast-info{color:var(--text-main);border-color:#d9ecff;background:#edf6ff}.toast-success{color:#529b2e;border-color:#d7f0c8;background:#f0f9eb}.toast-error{color:#c45656;border-color:#fbdcdc;background:#fef0f0}.muted{color:var(--text-secondary)}.text-sm{font-size:12px}.row{display:flex;align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.spacer{flex:1}.mt-12{margin-top:12px}.mb-12{margin-bottom:12px}.divider{height:1px;background:var(--border-light);margin:14px 0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#c9ccd4;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8adb8}::-webkit-scrollbar-track{background:transparent}
