.topbar[data-v-79e15380]{height:66px;display:flex;align-items:center;gap:28px;padding:0 26px;background:var(--paper-2);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;min-width:0}.brand[data-v-79e15380]{display:flex;align-items:baseline;gap:10px;min-width:220px;-webkit-user-select:none;user-select:none}.brand b[data-v-79e15380]{font-size:16px;letter-spacing:2px;font-weight:600;color:var(--ink)}.brand span[data-v-79e15380]{font-size:10px;letter-spacing:2px;color:var(--ink-3)}.tabs[data-v-79e15380]{display:flex;gap:6px}.tab[data-v-79e15380]{display:flex;align-items:center;gap:7px;padding:8px 18px;border-radius:var(--radius-full);border:1px solid transparent;color:var(--ink-3);font-size:13px;transition:all .2s ease}.tab i[data-v-79e15380]{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block;opacity:.6}.tab[data-v-79e15380]:hover{color:var(--ink-2)}.tab.active[data-v-79e15380]{background:var(--paper);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}.tab.active i[data-v-79e15380]{background:var(--accent);opacity:1}.top-right[data-v-79e15380]{margin-left:auto;display:flex;align-items:center;gap:12px}.guest-text[data-v-79e15380]{font-size:12px;color:var(--ink-3);letter-spacing:1px}.search[data-v-79e15380]{display:flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--radius-full);background:var(--paper);border:1px solid var(--line);width:210px;color:var(--ink-3);font-size:12px}.search svg[data-v-79e15380]{flex:none;opacity:.6;color:var(--ink-2)}.search input[data-v-79e15380]{border:0;outline:none;background:transparent;width:100%;font-size:12px;color:var(--ink)}.search input[data-v-79e15380]::placeholder{color:var(--ink-3)}.btn[data-v-79e15380]{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .2s ease}.btn-primary[data-v-79e15380]{background:var(--accent);color:var(--paper);font-weight:500}.btn-primary[data-v-79e15380]:hover{background:var(--accent-deep)}.user-menu-container[data-v-79e15380]{position:relative;display:flex;align-items:center}.avatar[data-v-79e15380]{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--soft);color:var(--accent-deep);font-size:13px;display:grid;place-items:center;font-family:var(--serif);font-weight:600;-webkit-user-select:none;user-select:none;cursor:pointer;transition:border-color .2s}.avatar[data-v-79e15380]:hover{border-color:var(--accent)}.avatar img[data-v-79e15380]{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.avatar-caret[data-v-79e15380]{width:14px;height:32px;margin-left:1px;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;color:var(--ink-3)}.avatar-caret[data-v-79e15380]:hover{color:var(--accent)}.menu-dropdown[data-v-79e15380]{position:absolute;top:calc(100% + 8px);right:0;width:220px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:12px 0 8px;z-index:100;animation:fadeIn-79e15380 .15s ease-out}@keyframes fadeIn-79e15380{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-user-info[data-v-79e15380]{padding:0 16px 10px;display:flex;flex-direction:column;gap:4px}.user-email-text[data-v-79e15380]{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role-tag[data-v-79e15380]{display:inline-block;align-self:flex-start;font-size:11px;padding:1px 6px;border-radius:4px;font-weight:500}.role-admin[data-v-79e15380]{background:var(--soft);color:var(--accent-deep)}.role-user[data-v-79e15380]{background:var(--paper-2);color:var(--ink-3);border:1px solid var(--line)}.menu-divider[data-v-79e15380]{height:1px;background:var(--line-soft);margin:4px 0}.menu-items[data-v-79e15380]{display:flex;flex-direction:column}.menu-item[data-v-79e15380]{width:100%;height:36px;padding:0 16px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink);text-align:left;cursor:pointer;transition:background .15s}.menu-item svg[data-v-79e15380]{color:var(--ink-3);flex:none}.menu-item[data-v-79e15380]:hover{background:var(--paper-2);color:var(--accent-deep)}.menu-item:hover svg[data-v-79e15380]{color:var(--accent)}.logout-item[data-v-79e15380]{color:var(--red)}.logout-item svg[data-v-79e15380]{color:var(--red)}.logout-item[data-v-79e15380]:hover{background:var(--red-soft);color:var(--red)}.logout-item:hover svg[data-v-79e15380]{color:var(--red)}@media (max-width: 1200px){.app-header[data-v-79e15380]{gap:16px;padding:0 16px}.brand[data-v-79e15380]{min-width:0}.brand span[data-v-79e15380]{display:none}.search[data-v-79e15380]{width:180px}}@media (max-width: 900px){.search[data-v-79e15380]{display:none}.tab[data-v-79e15380]{padding:8px 12px}}.toast-container[data-v-df8c2210]{position:fixed;top:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:9999;pointer-events:none}.toast-item[data-v-df8c2210]{pointer-events:auto;min-width:280px;max-width:480px;padding:10px 16px;border-radius:var(--radius-sm);background:var(--paper);border:1px solid var(--line);box-shadow:0 4px 18px #281e141f;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}.toast-icon[data-v-df8c2210]{flex:none;display:flex;align-items:center}.toast-message[data-v-df8c2210]{flex:1;line-height:1.4}.toast-close[data-v-df8c2210]{flex:none;font-size:16px;color:var(--ink-3);padding:0 2px;line-height:1;cursor:pointer}.toast-close[data-v-df8c2210]:hover{color:var(--ink)}.toast-success[data-v-df8c2210]{border-color:var(--green);background:#f4f8f3;color:#2b5028}.toast-success .toast-icon[data-v-df8c2210]{color:var(--green)}.toast-warning[data-v-df8c2210]{border-color:#e5b376;background:#fff9f0;color:#8c5717}.toast-warning .toast-icon[data-v-df8c2210]{color:#c97924}.toast-error[data-v-df8c2210]{border-color:var(--red);background:var(--red-soft);color:var(--red)}.toast-error .toast-icon[data-v-df8c2210]{color:var(--red)}.toast-info[data-v-df8c2210]{border-color:var(--line);background:var(--paper);color:var(--ink)}.toast-info .toast-icon[data-v-df8c2210]{color:var(--accent)}.toast-enter-active[data-v-df8c2210],.toast-leave-active[data-v-df8c2210]{transition:all .25s ease}.toast-enter-from[data-v-df8c2210]{opacity:0;transform:translateY(-16px)}.toast-leave-to[data-v-df8c2210]{opacity:0;transform:translateY(-8px)}.app-layout[data-v-d78f7244]{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.app-main[data-v-d78f7244]{flex:1}.app-footer[data-v-d78f7244]{height:var(--footer-h);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink-3)}.app-footer a[data-v-d78f7244]{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.app-footer a[data-v-d78f7244]:hover{color:var(--ink-2);border-color:var(--line)}.archive[data-v-f8349346]{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px 14px 10px;box-shadow:var(--shadow-sm);position:sticky;top:92px}.archive-title[data-v-f8349346]{font-size:12px;font-weight:600;letter-spacing:1px;color:var(--ink);padding:0 6px 10px;border-bottom:1px solid var(--line-soft);display:flex;align-items:baseline;gap:8px}.archive-title span[data-v-f8349346]{font-size:9px;letter-spacing:1.4px;color:var(--ink-3);font-weight:400}.all-row[data-v-f8349346],.year-row[data-v-f8349346],.month-row[data-v-f8349346],.foot-row[data-v-f8349346]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;font:inherit;font-size:12px;color:var(--ink-2);padding:7px 6px;border-radius:var(--radius-sm);cursor:pointer;text-align:left}.all-row[data-v-f8349346]{margin-top:8px;color:var(--ink);font-weight:600}.all-row.active[data-v-f8349346],.year-row.active[data-v-f8349346],.month-row.active[data-v-f8349346]{background:var(--paper-2);color:var(--accent-deep)}.all-row[data-v-f8349346]:hover,.year-row[data-v-f8349346]:hover,.month-row[data-v-f8349346]:hover,.foot-row[data-v-f8349346]:hover{background:var(--paper-2)}.year-block[data-v-f8349346]{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line-soft)}.year-row[data-v-f8349346]{font-weight:600;color:var(--ink)}.months[data-v-f8349346]{padding-left:6px;margin-top:2px}.month-row[data-v-f8349346]{font-size:11px;letter-spacing:.3px}.count[data-v-f8349346]{font-size:10px;color:var(--ink-3);font-variant-numeric:tabular-nums}.empty-hint[data-v-f8349346]{font-size:11px;color:var(--ink-3);padding:12px 6px;line-height:1.7}.archive-foot[data-v-f8349346]{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line-soft)}.foot-row[data-v-f8349346]{font-size:12px}.entry[data-v-78dc0e4d]{display:grid;grid-template-columns:118px minmax(0,1fr);gap:22px;padding:22px 0;border-top:1px solid var(--line-soft)}.entry[data-v-78dc0e4d]:first-child{border-top:0;padding-top:6px}.day-col[data-v-78dc0e4d]{padding-top:4px;text-align:right;padding-right:6px;border-right:1px solid var(--line-soft)}.day[data-v-78dc0e4d]{display:flex;align-items:flex-start;justify-content:flex-end;gap:2px;color:var(--ink)}.num[data-v-78dc0e4d]{font-family:var(--serif);font-size:44px;line-height:1;letter-spacing:-1px}.deg[data-v-78dc0e4d]{font-family:var(--serif);font-size:16px;margin-top:2px;color:var(--ink-2)}.day-meta[data-v-78dc0e4d]{margin:8px 0 0;font-size:11px;letter-spacing:.6px;color:var(--ink-2)}.day-meta.soft[data-v-78dc0e4d]{margin-top:4px;color:var(--ink-3)}.card[data-v-78dc0e4d]{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px 14px;box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .2s ease,transform .2s ease}.card[data-v-78dc0e4d]:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.card-head[data-v-78dc0e4d]{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.card-title[data-v-78dc0e4d]{margin:0;font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.5px;color:var(--ink)}.tag[data-v-78dc0e4d]{flex:none;font-size:11px;color:var(--accent-deep);background:var(--soft);border-radius:var(--radius-sm);padding:3px 9px;white-space:nowrap}.tag.muted[data-v-78dc0e4d]{background:var(--paper-2);color:var(--ink-3);border:1px dashed var(--line)}.photos[data-v-78dc0e4d]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.photos.single[data-v-78dc0e4d]{grid-template-columns:1fr}.photo[data-v-78dc0e4d]{margin:0;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-sm);background:var(--paper-2)}.photos.single .photo[data-v-78dc0e4d]{aspect-ratio:21 / 9}.photo img[data-v-78dc0e4d]{width:100%;height:100%;object-fit:cover;display:block}.excerpt[data-v-78dc0e4d]{margin:14px 0 0;font-size:13px;line-height:1.85;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.excerpt.empty[data-v-78dc0e4d]{color:var(--ink-3)}.card-foot[data-v-78dc0e4d]{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:10px;border-top:1px dashed var(--line-soft)}.meta[data-v-78dc0e4d]{font-size:11px;color:var(--ink-3);letter-spacing:.4px}.edit-link[data-v-78dc0e4d]{border:0;background:transparent;font:inherit;font-size:11px;color:var(--ink-3);cursor:pointer;padding:2px 4px}.edit-link[data-v-78dc0e4d]:hover{color:var(--accent-deep)}.empty-state[data-v-b19bb76c]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:460px;padding:70px 40px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.es-title[data-v-b19bb76c]{margin:0 0 12px;font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:.03em;color:var(--ink)}.es-hint[data-v-b19bb76c]{max-width:520px;margin:0 0 26px;font-size:13.5px;line-height:1.9;color:var(--ink-2)}.es-action[data-v-b19bb76c]{height:46px;padding:0 34px;font-size:14px;color:#fff;background:var(--accent);border:0;border-radius:var(--radius-full);letter-spacing:.04em;transition:background .18s ease}.es-action[data-v-b19bb76c]:hover{background:var(--accent-deep)}.es-foot[data-v-b19bb76c]{margin:16px 0 0;font-size:12px;color:var(--ink-3)}.empty-state.compact[data-v-b19bb76c]{min-height:0;padding:36px 22px;background:transparent;border:0}.empty-state.compact .es-title[data-v-b19bb76c]{font-size:18px;margin-bottom:10px}.empty-state.compact .es-hint[data-v-b19bb76c]{margin-bottom:20px;font-size:13px}.empty-state.compact .es-action[data-v-b19bb76c]{height:42px;padding:0 26px;font-size:13.5px}@media (max-width: 900px){.empty-state[data-v-b19bb76c]{min-height:360px;padding:44px 22px}.es-title[data-v-b19bb76c]{font-size:20px}}.page-container[data-v-83d8fe68]{max-width:1400px;min-width:0;margin:0 auto;padding:22px 26px 70px}.layout[data-v-83d8fe68]{display:grid;grid-template-columns:262px minmax(0,1fr);gap:30px;align-items:start}.view-head[data-v-83d8fe68]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line)}.view-title[data-v-83d8fe68]{margin:0;font-size:17px;font-weight:600;color:var(--ink);letter-spacing:.4px}.view-sub[data-v-83d8fe68]{margin:7px 0 0;font-size:11px;letter-spacing:.6px;color:var(--ink-3)}.btn[data-v-83d8fe68]{height:32px;padding:0 16px;border-radius:var(--radius-sm);font:inherit;font-size:12px;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.btn.primary[data-v-83d8fe68]{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary[data-v-83d8fe68]:hover{background:var(--accent-deep)}.btn.ghost[data-v-83d8fe68]:hover{background:var(--paper-2)}.timeline[data-v-83d8fe68]{margin-top:6px}.state[data-v-83d8fe68]{margin-top:40px;padding:40px 20px;text-align:center;font-size:13px;color:var(--ink-2);background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius)}.state.empty[data-v-83d8fe68]{padding:56px 20px}.empty-title[data-v-83d8fe68]{margin:0 0 18px;font-family:var(--serif);font-size:15px;color:var(--ink-2)}.state.error[data-v-83d8fe68]{color:var(--red)}.load-more[data-v-83d8fe68]{display:block;margin:22px auto 0;height:34px;padding:0 22px;border-radius:var(--radius-full);border:1px solid var(--line);background:var(--paper);color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}.load-more[data-v-83d8fe68]:hover{border-color:var(--accent);color:var(--accent-deep)}.login-page[data-v-ec47fa71]{min-height:calc(100vh - 66px - var(--footer-h));display:flex;align-items:center;justify-content:center;padding:40px 24px 80px;background:var(--bg)}.login-card[data-v-ec47fa71]{width:100%;max-width:440px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:36px 32px 40px}.brand-header[data-v-ec47fa71]{text-align:center;margin-bottom:8px}.brand-title[data-v-ec47fa71]{margin:0;font-family:var(--serif);font-size:26px;font-weight:600;letter-spacing:4px;color:var(--ink)}.brand-subtitle[data-v-ec47fa71]{margin:6px 0 0;font-size:11px;letter-spacing:2px;color:var(--ink-3)}.welcome-text[data-v-ec47fa71]{text-align:center;margin:12px 0 24px;font-size:13px;color:var(--ink-2);line-height:1.5}.error-banner[data-v-ec47fa71]{background:var(--red-soft);border:1px solid var(--red);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:20px;color:var(--red)}.error-header[data-v-ec47fa71]{display:flex;align-items:center;gap:8px}.error-icon[data-v-ec47fa71]{flex:none}.error-msg[data-v-ec47fa71]{font-size:13px;font-weight:500;line-height:1.4}.error-meta[data-v-ec47fa71]{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px;font-size:11px;opacity:.85}.meta-tag[data-v-ec47fa71]{background:#c3554a1f;padding:2px 6px;border-radius:4px;font-family:monospace}.form-body[data-v-ec47fa71]{display:flex;flex-direction:column;gap:20px}.form-item[data-v-ec47fa71]{display:flex;flex-direction:column;gap:6px}.item-label[data-v-ec47fa71]{font-size:13px;font-weight:500;color:var(--ink)}.text-input[data-v-ec47fa71]{height:40px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper-2);font-size:14px;color:var(--ink);transition:all .2s ease;outline:none}.text-input[data-v-ec47fa71]:focus{border-color:var(--accent);background:var(--paper);box-shadow:0 0 0 3px var(--soft)}.text-input[data-v-ec47fa71]:disabled{background:var(--bg);cursor:not-allowed;opacity:.7}.text-input[data-v-ec47fa71]::placeholder{color:var(--ink-3);font-size:13px}.submit-btn[data-v-ec47fa71]{margin-top:8px;height:42px;border-radius:var(--radius-sm);background:var(--accent);color:var(--paper);font-size:15px;font-weight:600;letter-spacing:2px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .2s ease}.submit-btn[data-v-ec47fa71]:hover:not(:disabled){background:var(--accent-deep)}.submit-btn[data-v-ec47fa71]:disabled{opacity:.65;cursor:not-allowed}.loading-spinner[data-v-ec47fa71]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-ec47fa71 .8s linear infinite}@keyframes spin-ec47fa71{to{transform:rotate(360deg)}}.change-password-page[data-v-0105fa19]{min-height:calc(100vh - 66px - var(--footer-h));display:flex;align-items:center;justify-content:center;padding:40px 24px 80px;background:var(--bg)}.card-container[data-v-0105fa19]{width:100%;max-width:480px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:36px 32px 40px}.card-header[data-v-0105fa19]{text-align:center;margin-bottom:20px}.card-title[data-v-0105fa19]{margin:0;font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:3px;color:var(--ink)}.card-subtitle[data-v-0105fa19]{margin:6px 0 0;font-size:11px;letter-spacing:2px;color:var(--ink-3)}.force-notice[data-v-0105fa19]{display:flex;align-items:center;gap:8px;background:var(--soft);color:var(--accent-deep);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:22px;font-size:12px;font-weight:500}.notice-icon[data-v-0105fa19]{flex:none}.success-banner[data-v-0105fa19]{background:#f2f7f1;border:1px solid var(--green);border-radius:var(--radius-sm);padding:20px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--ink)}.success-icon[data-v-0105fa19]{color:var(--green)}.success-text h3[data-v-0105fa19]{margin:0;font-size:16px;font-weight:600;color:var(--ink)}.success-text p[data-v-0105fa19]{margin:6px 0 0;font-size:13px;color:var(--ink-2)}.link-btn[data-v-0105fa19]{margin-top:6px;padding:8px 16px;background:var(--accent);color:var(--paper);border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.link-btn[data-v-0105fa19]:hover{background:var(--accent-deep)}.error-banner[data-v-0105fa19]{background:var(--red-soft);border:1px solid var(--red);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:20px;color:var(--red)}.error-header[data-v-0105fa19]{display:flex;align-items:center;gap:8px}.error-icon[data-v-0105fa19]{flex:none}.error-msg[data-v-0105fa19]{font-size:13px;font-weight:500}.error-meta[data-v-0105fa19]{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px;font-size:11px;opacity:.85}.meta-tag[data-v-0105fa19]{background:#c3554a1f;padding:2px 6px;border-radius:4px;font-family:monospace}.form-body[data-v-0105fa19]{display:flex;flex-direction:column;gap:18px}.form-item[data-v-0105fa19]{display:flex;flex-direction:column;gap:6px}.item-label[data-v-0105fa19]{font-size:13px;font-weight:500;color:var(--ink)}.required[data-v-0105fa19]{color:var(--red)}.text-input[data-v-0105fa19]{height:40px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper-2);font-size:14px;color:var(--ink);transition:all .2s ease;outline:none}.text-input[data-v-0105fa19]:focus{border-color:var(--accent);background:var(--paper);box-shadow:0 0 0 3px var(--soft)}.text-input.has-error[data-v-0105fa19]{border-color:var(--red)}.text-input[data-v-0105fa19]:disabled{background:var(--bg);cursor:not-allowed;opacity:.7}.field-error[data-v-0105fa19]{font-size:12px;color:var(--red)}.submit-btn[data-v-0105fa19]{margin-top:10px;height:42px;border-radius:var(--radius-sm);background:var(--accent);color:var(--paper);font-size:14px;font-weight:600;letter-spacing:1px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .2s ease}.submit-btn[data-v-0105fa19]:hover:not(:disabled){background:var(--accent-deep)}.submit-btn[data-v-0105fa19]:disabled{opacity:.65;cursor:not-allowed}.loading-spinner[data-v-0105fa19]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-0105fa19 .8s linear infinite}@keyframes spin-0105fa19{to{transform:rotate(360deg)}}.admin-page[data-v-9d644700]{min-height:calc(100vh - 66px - var(--footer-h));padding:24px 26px 60px;background:var(--bg)}.admin-container[data-v-9d644700]{max-width:1400px;min-width:1200px;margin:0 auto}.view-header[data-v-9d644700]{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:24px}.view-title[data-v-9d644700]{margin:0;font-size:20px;font-weight:600;color:var(--ink);display:flex;align-items:baseline;gap:12px}.view-en[data-v-9d644700]{font-size:11px;letter-spacing:1.5px;color:var(--ink-3);font-weight:400}.view-desc[data-v-9d644700]{margin:8px 0 0;font-size:13px;color:var(--ink-2)}.header-actions[data-v-9d644700]{display:flex;align-items:center;gap:10px}.action-btn[data-v-9d644700]{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.action-btn.primary[data-v-9d644700]{background:var(--accent);color:var(--paper)}.action-btn.primary[data-v-9d644700]:hover:not(:disabled){background:var(--accent-deep)}.action-btn.secondary[data-v-9d644700]{background:var(--paper);border:1px solid var(--line);color:var(--ink)}.action-btn.secondary[data-v-9d644700]:hover:not(:disabled){background:var(--paper-2)}.action-btn.danger[data-v-9d644700]{background:var(--red);color:#fff}.action-btn.danger[data-v-9d644700]:hover:not(:disabled){background:#aa3d33}.action-btn[data-v-9d644700]:disabled{opacity:.6;cursor:not-allowed}.action-btn.full[data-v-9d644700]{width:100%}.alert-bar[data-v-9d644700]{padding:10px 16px;border-radius:var(--radius-sm);margin-bottom:20px;font-size:13px}.alert-bar.error[data-v-9d644700]{background:var(--red-soft);border:1px solid var(--red);color:var(--red)}.table-card[data-v-9d644700]{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}.data-table[data-v-9d644700]{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.data-table th[data-v-9d644700]{background:var(--paper-2);color:var(--ink-2);font-weight:500;padding:12px 18px;border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none}.data-table td[data-v-9d644700]{padding:14px 18px;border-bottom:1px solid var(--line-soft);color:var(--ink);vertical-align:middle}.data-table tbody tr[data-v-9d644700]:hover{background:#f6e6d733}.text-right[data-v-9d644700]{text-align:right}.email-col[data-v-9d644700]{display:flex;align-items:center;gap:8px}.user-email[data-v-9d644700]{font-weight:500}.badge-warn[data-v-9d644700]{font-size:11px;background:var(--soft);color:var(--accent-deep);border:1px solid var(--accent);padding:1px 6px;border-radius:4px}.role-badge[data-v-9d644700]{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.role-admin[data-v-9d644700]{background:var(--soft);color:var(--accent-deep);border:1px solid rgba(196,112,61,.4)}.role-user[data-v-9d644700]{background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line)}.status-badge[data-v-9d644700]{display:inline-flex;align-items:center;gap:6px;font-size:12px}.status-badge .dot[data-v-9d644700]{width:6px;height:6px;border-radius:50%}.status-active[data-v-9d644700]{color:var(--green)}.status-active .dot[data-v-9d644700]{background:var(--green)}.status-disabled[data-v-9d644700]{color:var(--ink-3)}.status-disabled .dot[data-v-9d644700]{background:var(--ink-3)}.time-col[data-v-9d644700]{color:var(--ink-2);font-size:12px}.op-col[data-v-9d644700]{white-space:nowrap}.op-btn[data-v-9d644700]{font-size:12px;margin-left:12px;cursor:pointer;color:var(--accent);text-decoration:underline;text-underline-offset:3px;transition:color .15s}.op-btn[data-v-9d644700]:hover{color:var(--accent-deep)}.op-btn.danger-link[data-v-9d644700]{color:var(--red)}.op-btn.danger-link[data-v-9d644700]:hover{color:#a3382e}.op-btn.recover-link[data-v-9d644700]{color:var(--green)}.pagination-bar[data-v-9d644700]{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:var(--paper);border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}.page-nav[data-v-9d644700]{display:flex;gap:8px}.page-btn[data-v-9d644700]{padding:5px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);cursor:pointer;font-size:12px;transition:all .2s}.page-btn[data-v-9d644700]:hover:not(:disabled){background:var(--paper-2);border-color:var(--ink-3)}.page-btn[data-v-9d644700]:disabled{opacity:.4;cursor:not-allowed}.loading-placeholder[data-v-9d644700],.empty-placeholder[data-v-9d644700]{padding:48px 0;text-align:center;color:var(--ink-3);display:flex;flex-direction:column;align-items:center;gap:12px}.spinner[data-v-9d644700]{width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin-9d644700 .8s linear infinite}@keyframes spin-9d644700{to{transform:rotate(360deg)}}.modal-backdrop[data-v-9d644700]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e191473;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-card[data-v-9d644700]{width:100%;max-width:480px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #281e1426;padding:24px}.modal-header[data-v-9d644700]{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-header h3[data-v-9d644700]{margin:0;font-size:17px;font-weight:600;color:var(--ink)}.close-btn[data-v-9d644700]{font-size:20px;line-height:1;color:var(--ink-3);cursor:pointer;padding:4px}.close-btn[data-v-9d644700]:hover{color:var(--ink)}.modal-error[data-v-9d644700]{background:var(--red-soft);color:var(--red);border:1px solid var(--red);padding:8px 12px;border-radius:var(--radius-sm);font-size:12px;margin-bottom:14px}.form-group[data-v-9d644700]{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.group-label[data-v-9d644700]{font-size:13px;font-weight:500;color:var(--ink)}.modal-input[data-v-9d644700]{height:38px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--paper-2);font-size:13px;color:var(--ink);outline:none}.modal-input[data-v-9d644700]:focus{border-color:var(--accent);background:var(--paper);box-shadow:0 0 0 3px var(--soft)}.field-hint[data-v-9d644700]{margin:4px 0 0;font-size:12px;color:var(--ink-3)}.modal-footer[data-v-9d644700]{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:24px}.modal-footer.single[data-v-9d644700]{justify-content:stretch}.warning-callout[data-v-9d644700]{display:flex;align-items:flex-start;gap:10px;background:#fdf5ea;border:1px solid #ebd0a3;color:#8c5717;padding:12px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:12px}.warning-callout svg[data-v-9d644700]{flex:none;margin-top:1px}.warning-text b[data-v-9d644700]{display:block;font-size:13px;margin-bottom:2px}.warning-text p[data-v-9d644700]{margin:0;opacity:.9}.info-row[data-v-9d644700]{font-size:13px;margin-bottom:12px}.info-label[data-v-9d644700]{color:var(--ink-3)}.info-val[data-v-9d644700]{font-weight:500;color:var(--ink)}.password-box[data-v-9d644700]{display:flex;align-items:center;justify-content:space-between;background:var(--paper-2);border:1px dashed var(--accent);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:16px}.pwd-text[data-v-9d644700]{font-family:monospace;font-size:16px;font-weight:600;color:var(--accent-deep);letter-spacing:1px}.copy-btn[data-v-9d644700]{padding:4px 10px;background:var(--accent);color:var(--paper);font-size:12px;border-radius:4px;cursor:pointer;transition:background .15s}.copy-btn[data-v-9d644700]:hover{background:var(--accent-deep)}.confirm-body[data-v-9d644700]{padding:8px 0}.confirm-desc[data-v-9d644700]{font-size:14px;color:var(--ink);margin:0 0 8px}.confirm-sub[data-v-9d644700]{font-size:12px;color:var(--ink-2);margin:0 0 18px;line-height:1.5}.warning-text-color[data-v-9d644700]{color:var(--red)}:root{--bg: #F7F3EA;--paper: #FFFCF7;--paper-2: #FBF6EC;--line: #E8E0D1;--line-soft: #EFE7D8;--ink: #332F29;--ink-2: #6F685C;--ink-3: #776E62;--accent: #A85B2B;--accent-deep: #8F4B22;--soft: #F6E6D7;--green: #5B7858;--red: #A8453B;--red-soft: #FDEEEB;--footer-h: 52px;--radius: 14px;--radius-sm: 8px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(60, 50, 30, .04);--shadow-card: 0 4px 16px rgba(60, 50, 30, .05);--sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", system-ui, -apple-system, sans-serif;--serif: "Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, "Times New Roman", serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;background:none;padding:0;cursor:pointer}input,textarea,select{font-family:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}
