.svg-icon[data-v-907e737d]{display:inline-block;flex:0 0 auto;overflow:visible;vertical-align:-.15em}.app-button[data-v-1ee27e12]{display:inline-flex;height:40px;min-height:40px;align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);background-clip:padding-box;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;line-height:var(--line-height-tight);white-space:nowrap;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.app-button[data-v-1ee27e12]:active:not(:disabled){transform:scale(.98)}.app-button[data-v-1ee27e12]:disabled{cursor:not-allowed;opacity:.56}.app-button--block[data-v-1ee27e12]{width:100%}.app-button--primary[data-v-1ee27e12]{background-color:var(--color-primary);color:var(--color-on-primary)}.app-button--primary[data-v-1ee27e12]:hover:not(:disabled){background-color:var(--color-primary-hover)}.app-button--danger[data-v-1ee27e12]{background-color:var(--color-danger);color:var(--color-on-primary)}.app-button--danger[data-v-1ee27e12]:hover:not(:disabled){background-color:var(--color-danger-hover)}.app-button--secondary[data-v-1ee27e12]{border-color:var(--color-border-strong);background-color:var(--color-surface);color:var(--color-text)}.app-button--secondary[data-v-1ee27e12]:hover:not(:disabled),.app-button--ghost[data-v-1ee27e12]:hover:not(:disabled){background-color:var(--color-surface-soft)}.app-button--ghost[data-v-1ee27e12]{background-color:transparent;color:var(--color-text-secondary)}.app-button__spinner[data-v-1ee27e12]{width:16px;height:16px;flex:0 0 auto;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:app-button-spin-1ee27e12 .7s linear infinite}@keyframes app-button-spin-1ee27e12{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.app-button__spinner[data-v-1ee27e12]{animation-duration:1.4s}}.icon-button[data-v-5c3ae8ad]{display:inline-grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:var(--radius-md);background:transparent;color:var(--color-icon);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.icon-button[data-v-5c3ae8ad]:hover{background:var(--color-surface-soft);color:var(--color-text)}.app-dialog[data-v-953a7a49]{width:min(calc(100% - (var(--space-4) * 2)),var(--app-dialog-width));max-width:none;max-height:calc(100dvh - (var(--space-4) * 2));padding:0;overflow:hidden;border:0;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-modal);color:var(--color-text)}.app-dialog[open][data-v-953a7a49]{animation:app-dialog-enter-953a7a49 .18s ease-out}.app-dialog[data-v-953a7a49]::backdrop{background:#2e30396b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app-dialog--small[data-v-953a7a49]{--app-dialog-width: 448px}.app-dialog--medium[data-v-953a7a49]{--app-dialog-width: 672px}.app-dialog--large[data-v-953a7a49]{--app-dialog-width: 960px}.app-dialog__panel[data-v-953a7a49]{display:flex;max-height:calc(100dvh - (var(--space-4) * 2));flex-direction:column}.app-dialog__error[data-v-953a7a49]{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-danger-container);color:var(--color-danger);line-height:1.5}.app-dialog__header[data-v-953a7a49]{display:flex;min-height:61px;flex:0 0 auto;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-dialog__title[data-v-953a7a49]{min-width:0;font-size:var(--font-size-lg);font-weight:700;line-height:1.4}.app-dialog__close[data-v-953a7a49]{width:32px;height:32px;margin-right:calc(var(--space-1) * -1);border-radius:var(--radius-full)}.app-dialog__body[data-v-953a7a49]{min-height:0;padding:var(--space-6);overflow-y:auto;overscroll-behavior:contain}.app-dialog__footer[data-v-953a7a49]{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-surface-soft)}@keyframes app-dialog-enter-953a7a49{0%{opacity:0;transform:scale(.98) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:640px){.app-dialog[data-v-953a7a49]{width:calc(100% - (var(--space-4) * 2));max-height:calc(100dvh - (var(--space-4) * 2))}.app-dialog__header[data-v-953a7a49],.app-dialog__footer[data-v-953a7a49]{padding-right:var(--space-4);padding-left:var(--space-4)}.app-dialog__body[data-v-953a7a49]{padding:var(--space-4)}.app-dialog__footer[data-v-953a7a49]{gap:var(--space-3)}}@media(prefers-reduced-motion:reduce){.app-dialog[open][data-v-953a7a49]{animation:none}}.confirm-dialog[data-v-15256448]{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-2) 0;text-align:center}.confirm-dialog__icon[data-v-15256448]{display:inline-grid;width:64px;height:64px;flex:0 0 auto;place-items:center;border-radius:var(--radius-full);background:var(--color-primary-container);color:var(--color-primary)}.confirm-dialog--delete .confirm-dialog__icon[data-v-15256448]{background:var(--color-danger-container);color:var(--color-danger)}.confirm-dialog__content[data-v-15256448]{display:grid;gap:var(--space-2)}.confirm-dialog__message[data-v-15256448]{color:var(--color-text);font-size:var(--font-size-md);line-height:1.5}.confirm-dialog__description[data-v-15256448]{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.avatar[data-v-aea2b679]{display:inline-grid;width:var(--avatar-size);min-width:var(--avatar-size);max-width:var(--avatar-size);height:var(--avatar-size);min-height:var(--avatar-size);max-height:var(--avatar-size);flex:0 0 var(--avatar-size);aspect-ratio:1;place-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-full);background:linear-gradient(145deg,var(--color-primary-container),var(--color-surface-muted));color:var(--color-primary);font-weight:700}.avatar img[data-v-aea2b679]{width:100%;height:100%;object-fit:cover}.avatar--sm[data-v-aea2b679]{--avatar-size: 32px;font-size:var(--font-size-xs)}.avatar--md[data-v-aea2b679]{--avatar-size: 40px;font-size:var(--font-size-sm)}.avatar--lg[data-v-aea2b679]{--avatar-size: 48px;font-size:var(--font-size-md)}.avatar--xl[data-v-aea2b679]{--avatar-size: 104px;font-size:var(--font-size-display)}.empty-state[data-v-f8eed2c5]{display:flex;min-height:360px;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-3);padding:var(--space-8);border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);background:#ffffffb8;text-align:center}.empty-state__icon[data-v-f8eed2c5]{display:grid;width:58px;height:58px;place-items:center;margin-bottom:var(--space-1);border-radius:var(--radius-lg);background:var(--color-primary-container);color:var(--color-primary)}.empty-state h2[data-v-f8eed2c5]{font-size:var(--font-size-lg);line-height:var(--line-height-tight)}.empty-state p[data-v-f8eed2c5]{max-width:460px;color:var(--color-text-secondary)}.page[data-v-9d5f6927]{width:min(100%,var(--content-max-width));margin:0 auto}.page__header[data-v-9d5f6927]{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-6)}.page__header h1[data-v-9d5f6927]{font-size:var(--font-size-xl);font-weight:650;letter-spacing:-.01em;line-height:var(--line-height-tight)}.page__header p[data-v-9d5f6927]{margin-top:var(--space-2);color:var(--color-text-secondary)}.page__actions[data-v-9d5f6927]{display:flex;align-items:center;gap:var(--space-2)}@media(max-width:640px){.page__header[data-v-9d5f6927]{align-items:flex-start;flex-direction:column}}.header[data-v-43669a22]{position:sticky;z-index:20;top:0;display:flex;min-height:var(--header-height);align-items:center;justify-content:space-between;gap:var(--space-5);padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header__start[data-v-43669a22]{display:flex;align-items:center;min-width:0;flex:1;gap:var(--space-3)}.header__actions[data-v-43669a22]{display:flex;align-items:center}.header__notification[data-v-43669a22]{position:relative}.header__notification-button.is-active[data-v-43669a22]{background:var(--color-primary-container);color:var(--color-primary)}.header__notification-indicator[data-v-43669a22]{position:absolute;top:6px;right:6px;width:7px;height:7px;border:2px solid var(--color-surface);border-radius:var(--radius-full);background:var(--color-success);pointer-events:none}.header__notification-feedback[data-v-43669a22]{position:absolute;top:calc(100% + var(--space-2));right:0;display:flex;width:max-content;max-width:min(320px,calc(100vw - 32px));align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-popover);color:var(--color-text);font-size:var(--font-size-sm);white-space:normal}.notification-settings[data-v-43669a22]{display:grid;gap:var(--space-5)}.notification-settings__feedback[data-v-43669a22]{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-container);color:var(--color-primary)}.notification-status[data-v-43669a22]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-soft)}.notification-status__icon[data-v-43669a22]{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:var(--radius-lg);background:var(--color-surface)}.notification-status span[data-v-43669a22]:last-child{display:grid;gap:var(--space-1)}.notification-status small[data-v-43669a22]{color:var(--color-text-secondary)}.notification-status--success[data-v-43669a22]{border-color:var(--color-success);background:var(--color-success-container);color:var(--color-success)}.notification-status--warning[data-v-43669a22]{border-color:var(--color-warning);background:var(--color-warning-container);color:var(--color-warning)}.notification-status--danger[data-v-43669a22]{border-color:var(--color-danger);background:var(--color-danger-container);color:var(--color-danger)}.notification-guide[data-v-43669a22]{display:grid;gap:var(--space-2)}.notification-guide h3[data-v-43669a22]{font-size:var(--font-size-md)}.notification-guide ol[data-v-43669a22]{display:grid;gap:var(--space-2);padding-left:var(--space-5);color:var(--color-text-secondary)}.notification-guide p[data-v-43669a22],.notification-guide small[data-v-43669a22]{color:var(--color-text-secondary)}.notification-guide small[data-v-43669a22]{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-soft)}.header__title[data-v-43669a22]{overflow:hidden;font-size:var(--font-size-md);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.header__heading[data-v-43669a22]{display:grid;min-width:0}.header__mobile-menu[data-v-43669a22]{display:none}@media(max-width:960px){.header__mobile-menu[data-v-43669a22]{display:block}}@media(max-width:720px){.header[data-v-43669a22]{padding:0 var(--space-3)}}.sidebar[data-v-1aac98d4]{position:fixed;z-index:30;top:0;bottom:0;left:0;display:flex;width:var(--sidebar-width);flex-direction:column;border-right:1px solid var(--color-border);background:var(--color-page);transition:transform .22s ease}.sidebar__brand[data-v-1aac98d4]{display:flex;min-height:88px;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6)}.sidebar__logo[data-v-1aac98d4]{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:var(--radius-lg);background:var(--color-primary);color:var(--color-on-primary)}.sidebar__brand strong[data-v-1aac98d4],.sidebar__brand small[data-v-1aac98d4],.sidebar__profile strong[data-v-1aac98d4],.sidebar__profile small[data-v-1aac98d4]{display:block}.sidebar__brand strong[data-v-1aac98d4]{color:var(--color-primary);font-size:18px;line-height:24px}.sidebar__brand small[data-v-1aac98d4],.sidebar__profile small[data-v-1aac98d4]{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.sidebar__nav[data-v-1aac98d4]{display:flex;flex:1;flex-direction:column;gap:var(--space-1);overflow-y:auto;padding:0 var(--space-2)}.sidebar__link[data-v-1aac98d4]{position:relative;display:flex;min-height:48px;align-items:center;gap:var(--space-4);padding:0 var(--space-4);border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:500;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar__link-icon[data-v-1aac98d4]{display:grid;width:20px;height:20px;flex:0 0 20px;place-items:center}.sidebar__link-label[data-v-1aac98d4]{min-width:0;flex:1;line-height:20px}.sidebar__badge[data-v-1aac98d4]{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 6px;border:2px solid var(--color-page);border-radius:var(--radius-full);background:var(--color-danger);color:var(--color-on-primary);font-size:10px;font-weight:700;line-height:16px}.sidebar__link[data-v-1aac98d4]:before{position:absolute;top:8px;bottom:8px;left:-8px;width:3px;border-radius:0 3px 3px 0;background:transparent;content:""}.sidebar__link[data-v-1aac98d4]:hover{background:var(--color-surface-muted);color:var(--color-text)}.sidebar__link--active[data-v-1aac98d4]{background:var(--color-surface-hover);color:var(--color-primary)}.sidebar__link--active[data-v-1aac98d4]:before{background:var(--color-primary)}.sidebar__footer[data-v-1aac98d4]{padding:var(--space-3) var(--space-2) var(--space-4);border-top:1px solid var(--color-border)}.sidebar__link--utility[data-v-1aac98d4]{min-height:44px}.sidebar__profile[data-v-1aac98d4]{position:relative;display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) var(--space-2) 0;padding:var(--space-3) var(--space-2) 0}.sidebar__profile[data-v-1aac98d4]:before{position:absolute;top:0;right:calc(-1 * var(--space-4));left:calc(-1 * var(--space-4));height:1px;background:var(--color-border);content:""}.sidebar__profile-details[data-v-1aac98d4]{min-width:0;flex:1}.sidebar__profile strong[data-v-1aac98d4],.sidebar__profile small[data-v-1aac98d4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__logout[data-v-1aac98d4]{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);cursor:pointer}.sidebar__logout[data-v-1aac98d4]:hover{background:var(--color-surface-hover);color:var(--color-danger)}.sidebar__profile strong[data-v-1aac98d4]{font-size:var(--font-size-sm)}.sidebar-backdrop[data-v-1aac98d4]{position:fixed;z-index:29;top:0;right:0;bottom:0;left:0;visibility:hidden;background:#191b2461;opacity:0;transition:opacity .22s ease,visibility .22s ease}@media(max-width:960px){.sidebar[data-v-1aac98d4]{transform:translate(-100%);box-shadow:var(--shadow-modal)}.sidebar--open[data-v-1aac98d4]{transform:translate(0)}.sidebar-backdrop--visible[data-v-1aac98d4]{visibility:visible;opacity:1}}.app-layout[data-v-538de27f]{min-height:100vh;background:var(--color-page)}.app-layout__frame[data-v-538de27f]{min-width:0;min-height:100vh;margin-left:var(--sidebar-width)}.app-layout__content[data-v-538de27f]{height:calc(100vh - var(--header-height));overflow:auto;padding:var(--space-8)}.app-layout__content--immersive[data-v-538de27f]{overflow:hidden;padding:0}@media(max-width:960px){.app-layout__frame[data-v-538de27f]{margin-left:0}}@media(max-width:720px){.app-layout__content[data-v-538de27f]{padding:var(--space-5) var(--space-4)}}:root{color-scheme:light;--color-primary: #0050d6;--color-primary-hover: #0045bb;--color-primary-active: #003a9f;--color-primary-container: #dbe7ff;--color-on-primary: #ffffff;--color-success: #0b7a22;--color-success-container: #dcf8e2;--color-warning: #9a4d00;--color-warning-container: #ffeadb;--color-danger: #ba1a1a;--color-danger-hover: #a21414;--color-danger-container: #ffdad6;--color-page: #f7f7ff;--color-surface: #ffffff;--color-surface-soft: #f2f3ff;--color-surface-muted: #ededf9;--color-surface-hover: #e7e7f3;--color-border: #d9dce7;--color-border-strong: #c3c6d8;--color-text: #191b24;--color-text-secondary: #646a73;--color-text-muted: #8f95a3;--color-icon: #424655;--font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-display: 32px;--line-height-tight: 1.25;--line-height-normal: 1.55;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-popover: 0 4px 12px rgb(31 35 41 / 8%);--shadow-modal: 0 8px 24px rgb(31 35 41 / 12%);--sidebar-width: 240px;--header-height: 64px;--content-max-width: 1600px;--transition-fast: .16s ease}*,*:before,*:after{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,button,input,textarea,select{font:inherit}button,input,textarea,select{color:inherit}button{border:0}a{color:inherit;text-decoration:none}img,svg{display:block}h1,h2,h3,h4,p{margin:0}html{background:var(--color-page)}body{min-height:100vh;overflow:hidden;background:var(--color-page);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}button,a,input{-webkit-tap-highlight-color:transparent}select:not([multiple]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 9h11L12 15.5 6.5 9Z' fill='%23191b24'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px}button,a{outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background:var(--color-primary-container);color:var(--color-text)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:var(--radius-full);background:var(--color-border-strong);background-clip:padding-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-form-field--invalid{scroll-margin-block:96px}.app-form-control--invalid:not([type=checkbox]):not([type=radio]):not([type=file]),.app-form-field--invalid .password-field__control,.app-form-field--invalid .password-control,.app-form-field--invalid .login-field__control,.app-form-field--invalid .search-input,.app-form-field--invalid .duration-input__control,.app-form-field--invalid .choice-list,.app-form-field--invalid .target-grid,.app-form-field--invalid .attachment-input>label{border-color:var(--color-danger)!important;background-color:var(--color-danger-container)!important}.app-form-field--invalid .app-form-control--invalid:focus,.app-form-field--invalid .app-form-control--invalid:focus-visible,.app-form-field--invalid .password-field__control:focus-within,.app-form-field--invalid .password-control:focus-within,.app-form-field--invalid .login-field__control:focus-within{outline:0;box-shadow:0 0 0 3px #c4342b1f!important}.app-form-field--invalid.app-form-field--invalid :is(.password-field__control,.password-control,.login-field__control,.search-input,.duration-input__control)>.app-form-control--invalid,.app-form-field--invalid.app-form-field--invalid :is(.password-field__control,.password-control,.login-field__control,.search-input,.duration-input__control) .app-form-control--invalid{border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important}.app-field-error{width:100%;margin:0;color:var(--color-danger);font-size:var(--font-size-xs);font-weight:400;line-height:1.5}.page-fade-enter-active,.page-fade-leave-active{transition:opacity var(--transition-fast),transform var(--transition-fast)}.page-fade-enter-from{opacity:0;transform:translateY(4px)}.page-fade-leave-to{opacity:0}
