.app-header[data-v-b50c0efd]{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:var(--z-header);box-shadow:var(--shadow-sm)}.app-header__brand[data-v-b50c0efd]{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;flex-shrink:0}.app-header__logo[data-v-b50c0efd]{width:28px;height:28px}.app-header__wordmark[data-v-b50c0efd]{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);letter-spacing:-.3px}.app-header__title[data-v-b50c0efd]{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--space-2)}.app-header__hamburger[data-v-b50c0efd]{background:none;border:none;color:var(--color-text);padding:var(--space-1);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.app-header__hamburger svg[data-v-b50c0efd]{width:22px;height:22px}.app-header__hamburger[data-v-b50c0efd]:hover{background:var(--color-surface-alt)}.app-footer[data-v-ccc2bf13]{position:fixed;bottom:0;left:0;right:0;height:var(--footer-height);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:var(--z-header)}.app-footer__link[data-v-ccc2bf13]{font-size:var(--font-size-xs);color:var(--color-text-muted);text-decoration:none}.app-footer__link[data-v-ccc2bf13]:hover{color:var(--color-primary)}.app-footer__btn[data-v-ccc2bf13]{background:none;border:none;font-family:inherit;cursor:pointer;padding:0}.app-footer__version[data-v-ccc2bf13]{font-size:var(--font-size-xs);color:var(--color-border)}.modal[data-v-ccc2bf13]{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-6) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));z-index:var(--z-modal);max-width:var(--container-max);margin:0 auto}@media (min-width: 520px){.modal[data-v-ccc2bf13]{bottom:auto;top:50%;transform:translateY(-50%);border-radius:var(--radius-xl);left:50%;right:auto;width:440px;margin:0 0 0 -220px}}.modal__header[data-v-ccc2bf13]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.modal__title[data-v-ccc2bf13]{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.modal__close[data-v-ccc2bf13]{background:none;border:none;font-size:var(--font-size-lg);color:var(--color-text-muted);cursor:pointer;line-height:1;padding:var(--space-1)}.modal__body[data-v-ccc2bf13]{display:flex;flex-direction:column}.fade-enter-active[data-v-ccc2bf13],.fade-leave-active[data-v-ccc2bf13]{transition:opacity .2s ease}.fade-enter-from[data-v-ccc2bf13],.fade-leave-to[data-v-ccc2bf13]{opacity:0}.slide-up-enter-active[data-v-ccc2bf13],.slide-up-leave-active[data-v-ccc2bf13]{transition:transform .25s ease}.slide-up-enter-from[data-v-ccc2bf13],.slide-up-leave-to[data-v-ccc2bf13]{transform:translateY(100%)}.drawer[data-v-5285da25]{position:fixed;top:0;right:0;bottom:0;width:280px;background:var(--color-surface);z-index:var(--z-drawer);padding:var(--space-6) var(--space-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2);box-shadow:var(--shadow-lg)}.drawer__user[data-v-5285da25]{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-2)}.drawer__avatar[data-v-5285da25]{width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0}.drawer__user-info[data-v-5285da25]{overflow:hidden}.drawer__name[data-v-5285da25]{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer__email[data-v-5285da25]{font-size:var(--font-size-xs);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer__nav[data-v-5285da25]{display:flex;flex-direction:column}.drawer__link[data-v-5285da25]{background:none;border:none;text-align:left;padding:var(--space-3) var(--space-2);font-size:var(--font-size-base);color:var(--color-text);border-radius:var(--radius-md);cursor:pointer;font-family:inherit}.drawer__link[data-v-5285da25]:hover{background:var(--color-surface-alt)}.drawer__link--danger[data-v-5285da25]{color:var(--color-danger);margin-top:auto}.drawer__section-label[data-v-5285da25]{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 var(--space-2);margin-top:var(--space-2)}.drawer__install[data-v-5285da25]{margin-bottom:var(--space-2)}.drawer__version[data-v-5285da25]{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;padding-top:var(--space-4)}.fade-enter-active[data-v-5285da25],.fade-leave-active[data-v-5285da25]{transition:opacity .2s ease}.fade-enter-from[data-v-5285da25],.fade-leave-to[data-v-5285da25]{opacity:0}.slide-right-enter-active[data-v-5285da25],.slide-right-leave-active[data-v-5285da25]{transition:transform .25s ease}.slide-right-enter-from[data-v-5285da25],.slide-right-leave-to[data-v-5285da25]{transform:translate(100%)}.toast-container[data-v-4fb5a288]{position:fixed;top:calc(var(--header-height) + var(--space-3));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);width:calc(100% - var(--space-8));max-width:420px;pointer-events:none}.toast[data-v-4fb5a288]{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);pointer-events:all;cursor:pointer;box-shadow:var(--shadow-md);color:#fff}.toast--success[data-v-4fb5a288]{background:var(--color-success)}.toast--error[data-v-4fb5a288]{background:var(--color-danger)}.toast--warning[data-v-4fb5a288]{background:var(--color-warning);color:var(--color-text)}.toast--info[data-v-4fb5a288]{background:var(--color-primary)}.toast-enter-active[data-v-4fb5a288],.toast-leave-active[data-v-4fb5a288]{transition:all .25s ease}.toast-enter-from[data-v-4fb5a288],.toast-leave-to[data-v-4fb5a288]{opacity:0;transform:translateY(-8px)}.spinner[data-v-0d53166f]{animation:spin-0d53166f .7s linear infinite;display:block}@keyframes spin-0d53166f{to{transform:rotate(360deg)}}:root{--color-primary: #2A9D8F;--color-primary-hover: #21867A;--color-primary-light: #E8F5F4;--color-accent: #E9C46A;--color-bg: #F8FAFA;--color-surface: #FFFFFF;--color-surface-alt: #F0F7F6;--color-text: #1A2E2C;--color-text-muted: #6B8C89;--color-border: #D4E8E6;--color-danger: #E63946;--color-danger-hover: #C1121F;--color-success: #52B788;--color-warning: #F4A261;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-family: "Inter", system-ui, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(26, 46, 44, .06);--shadow-md: 0 4px 12px rgba(26, 46, 44, .1);--shadow-lg: 0 8px 24px rgba(26, 46, 44, .14);--z-base: 1;--z-overlay: 100;--z-drawer: 200;--z-modal: 300;--z-toast: 400;--z-header: 50;--header-height: 56px;--footer-height: 48px;--container-max: 480px}[data-theme=dark]{--color-bg: #0F1F1E;--color-surface: #1A2E2C;--color-surface-alt: #243D3A;--color-text: #E8F5F4;--color-text-muted: #8BB5B2;--color-border: #2E4D4A;--color-primary-light: #1A3D3A}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-weight:var(--font-weight-regular);color:var(--color-text);background-color:var(--color-bg);line-height:1.5;min-height:100dvh}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}img,svg{display:block;max-width:100%}button{cursor:pointer;font-family:inherit}.app-layout{display:flex;flex-direction:column;min-height:100dvh}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--space-4);padding-top:calc(var(--header-height) + var(--space-4));padding-bottom:calc(var(--footer-height) + var(--space-6))}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card-list{display:flex;flex-direction:column;gap:var(--space-3)}.card[role=link],a.card{display:block;transition:box-shadow .15s ease,transform .15s ease}.card[role=link]:hover,a.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);border:none;transition:background-color .15s ease,color .15s ease,opacity .15s ease;white-space:nowrap;text-decoration:none;cursor:pointer;line-height:1.4}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-ghost{background-color:transparent;color:var(--color-primary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-block{width:100%}.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);font-family:inherit;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color .15s ease}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2a9d8f26}.form-textarea{resize:vertical;min-height:100px}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--space-6)}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-4)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.badge-success{background:#d8f3e7;color:#1a6640}.badge-warning{background:#fef0dc;color:#7a4f0a}.badge-danger{background:#fddde0;color:#7a1219}.badge-neutral{background:var(--color-surface-alt);color:var(--color-text-muted)}.badge-primary{background:var(--color-primary-light);color:var(--color-primary)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a2e2c66;z-index:var(--z-overlay)}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100dvh}.divider{height:1px;background-color:var(--color-border);margin:var(--space-4) 0}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-text-muted)}.empty-state p{margin-bottom:var(--space-4)}
