@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.toasts[data-v-dca0f061]{z-index:100;flex-direction:column;gap:8px;max-width:min(360px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toasts__item[data-v-dca0f061]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;align-items:center;gap:10px;padding:12px 14px;font-size:13.5px;display:flex;box-shadow:0 2px 4px #1f29370a,0 24px 64px -12px #1f29371f}.toasts__item--success[data-v-dca0f061]{color:var(--color-text-primary)}.toasts__item--success>svg[data-v-dca0f061]{color:#16a34a;flex:none}.toasts__item--error>svg[data-v-dca0f061]{color:#dc2626;flex:none}.toasts__message[data-v-dca0f061]{flex:1;min-width:0}.toasts__close[data-v-dca0f061]{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;padding:4px;display:inline-flex}.toasts__close[data-v-dca0f061]:hover{background:#f3f4f6}.toast-enter-active[data-v-dca0f061],.toast-leave-active[data-v-dca0f061]{transition:opacity .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1)}.toast-enter-from[data-v-dca0f061],.toast-leave-to[data-v-dca0f061]{opacity:0;transform:translate(12px)}:root{--color-primary:#2e7d32;--color-primary-hover:#256528;--color-primary-light:#e8f5e9;--color-accent:#0ea5a4;--color-background:#f7f9f8;--color-surface:#fff;--color-sidebar:#1f2937;--color-border:#e5e7eb;--color-text-primary:#1f2937;--color-text-secondary:#6b7280;--color-success:#16a34a;--color-warning:#d97706;--color-error:#dc2626;--color-info:#2563eb}*,:before,:after{box-sizing:border-box}html{overflow-x:clip}body{color:var(--color-text-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter Variable,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;overflow-x:clip}.icon-button[data-v-27286ae7]{cursor:pointer;background:0 0;border:none;border-radius:10px;flex:none;justify-content:center;align-items:center;transition:background-color .16s cubic-bezier(.32,.72,0,1),color .16s cubic-bezier(.32,.72,0,1);display:inline-flex;position:relative}.icon-button[data-v-27286ae7]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.icon-button[data-v-27286ae7]:disabled{opacity:.4;cursor:not-allowed}.icon-button--light[data-v-27286ae7]{color:var(--color-text-secondary)}.icon-button--light[data-v-27286ae7]:hover{color:var(--color-text-primary);background:#f3f4f6}.icon-button--dark[data-v-27286ae7]{color:#ffffffb8}.icon-button--dark[data-v-27286ae7]:hover{color:#fff;background:#ffffff0f}.icon-button--pressed[data-v-27286ae7]{color:#b45309;background:#fff4e5;box-shadow:inset 0 0 0 1px #b4530959}.icon-button--pressed[data-v-27286ae7]:hover{color:#92400e;background:#ffe8c7}.icon-button--danger[data-v-27286ae7]:hover{color:#b91c1c;background:#fee2e2}.icon-tooltip[data-v-27286ae7]{z-index:120;color:#fff;white-space:nowrap;pointer-events:none;visibility:hidden;opacity:0;background:#1f2937;border-radius:8px;max-width:min(260px,100vw - 16px);padding:6px 9px;font-size:12px;font-weight:500;line-height:1.4;transition:opacity .12s;position:fixed;box-shadow:0 6px 20px #0f172a2e}.icon-tooltip--positioned[data-v-27286ae7]{visibility:visible;opacity:1}.icon-tooltip[data-v-27286ae7]:after{content:"";left:var(--hint-arrow-left,50%);background:inherit;width:8px;height:8px;position:absolute;transform:translate(-50%)rotate(45deg)}.icon-tooltip--top[data-v-27286ae7]:after{bottom:-4px}.icon-tooltip--bottom[data-v-27286ae7]:after{top:-4px}.header[data-v-ef4dbb20]{z-index:30;background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;height:72px;padding:0 24px;display:flex;position:sticky;top:0}.header__left[data-v-ef4dbb20]{align-items:center;gap:12px;min-width:0;display:flex}.header__title[data-v-ef4dbb20]{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:28px;font-weight:700;overflow:hidden}.header__actions[data-v-ef4dbb20]{align-items:center;gap:4px;display:flex}@media (width<=640px){.header[data-v-ef4dbb20]{padding:0 12px}.header__title[data-v-ef4dbb20]{font-size:20px}}.icon-swap-enter-active[data-v-ef4dbb20],.icon-swap-leave-active[data-v-ef4dbb20]{transition:opacity .11s cubic-bezier(.32,.72,0,1),transform .11s cubic-bezier(.32,.72,0,1)}.icon-swap-enter-from[data-v-ef4dbb20]{opacity:0;transform:scale(.7)rotate(-12deg)}.icon-swap-leave-to[data-v-ef4dbb20]{opacity:0;transform:scale(.7)rotate(12deg)}.nav[data-v-48d71f14]{flex-direction:column;gap:2px;display:flex}.nav__item[data-v-48d71f14]{color:#ffffffc7;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;text-decoration:none;transition:background-color .16s cubic-bezier(.32,.72,0,1),color .16s cubic-bezier(.32,.72,0,1),padding .22s cubic-bezier(.32,.72,0,1);display:flex;overflow:hidden}.nav__item[data-v-48d71f14]:hover{color:#fff;background:#ffffff0f}.nav__item[data-v-48d71f14]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.nav__item--active[data-v-48d71f14]{color:#fff;background:#2e7d3240}.nav__item--active .nav__icon[data-v-48d71f14]{color:#a5d6a7}.nav__item--active[data-v-48d71f14]:hover{background:#2e7d3252}.nav__item--disabled[data-v-48d71f14]{color:#ffffff52;cursor:not-allowed}.nav__item--disabled[data-v-48d71f14]:hover{color:#ffffff52;background:0 0}.nav__item--child[data-v-48d71f14]{padding:8px 12px;font-size:13.5px}.nav__icon[data-v-48d71f14]{flex:none}.nav__label[data-v-48d71f14]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;transition:opacity .15s cubic-bezier(.32,.72,0,1);overflow:hidden}.nav__chevron[data-v-48d71f14]{flex:none;transition:transform .2s cubic-bezier(.32,.72,0,1),opacity .15s cubic-bezier(.32,.72,0,1)}.nav__chevron--open[data-v-48d71f14]{transform:rotate(180deg)}.nav__children-wrap[data-v-48d71f14]{transition:max-height .26s cubic-bezier(.32,.72,0,1);overflow:hidden}.nav__children[data-v-48d71f14]{border-left:1px solid #ffffff24;flex-direction:column;gap:2px;margin-left:22px;padding-left:10px;display:flex}.nav__children .nav__item--child[data-v-48d71f14]{transition:opacity .18s cubic-bezier(.32,.72,0,1),transform .22s cubic-bezier(.32,.72,0,1),background-color .16s cubic-bezier(.32,.72,0,1)}.nav--collapsed .nav__item[data-v-48d71f14]{padding:10px 16px}.nav--collapsed .nav__label[data-v-48d71f14],.nav--collapsed .nav__chevron[data-v-48d71f14]{opacity:0}.nav-flyout[data-v-48d71f14]{z-index:70;background:var(--color-sidebar);border:1px solid #ffffff1a;border-radius:10px;min-width:230px;padding:6px;position:fixed;box-shadow:0 4px 12px #0003,0 12px 32px #0000003d}.nav-flyout__title[data-v-48d71f14]{letter-spacing:.06em;text-transform:uppercase;color:#ffffff73;margin:0;padding:6px 10px 8px;font-size:11px;font-weight:600}.nav-flyout__item[data-v-48d71f14]{color:#ffffffc7;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;text-decoration:none;display:flex}.nav-flyout__item[data-v-48d71f14]:hover{color:#fff;background:#ffffff0f}.nav-flyout__item--active[data-v-48d71f14]{color:#fff;background:#2e7d3240}.nav-flyout__item--disabled[data-v-48d71f14]{color:#ffffff52;cursor:not-allowed}.nav-flyout__item--disabled[data-v-48d71f14]:hover{color:#ffffff52;background:0 0}.flyout-enter-active[data-v-48d71f14],.flyout-leave-active[data-v-48d71f14]{transition:opacity .16s cubic-bezier(.32,.72,0,1),transform .16s cubic-bezier(.32,.72,0,1)}.flyout-enter-from[data-v-48d71f14],.flyout-leave-to[data-v-48d71f14]{opacity:0;transform:translate(-6px)}.user-menu[data-v-808e1477]{position:relative}.user-menu__card[data-v-808e1477]{color:#fff;width:100%;font:inherit;text-align:left;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:10px;padding:10px;transition:background-color .16s cubic-bezier(.32,.72,0,1),padding .22s cubic-bezier(.32,.72,0,1),border-color .22s cubic-bezier(.32,.72,0,1);display:flex;overflow:hidden}.user-menu__card[data-v-808e1477]:hover{background:#ffffff1a}.user-menu__card[data-v-808e1477]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.user-menu--collapsed .user-menu__card[data-v-808e1477]{background:0 0;border-color:#0000;padding:6px 4px}.user-menu--collapsed .user-menu__info[data-v-808e1477],.user-menu--collapsed .user-menu__chevron[data-v-808e1477]{opacity:0}.user-menu__avatar[data-v-808e1477]{color:#fff;background:#2e7d32;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:600;display:inline-flex}.user-menu__info[data-v-808e1477]{white-space:nowrap;flex-direction:column;flex:1;min-width:0;line-height:1.35;transition:opacity .15s cubic-bezier(.32,.72,0,1);display:flex}.user-menu__name[data-v-808e1477]{font-size:13.5px;font-weight:600}.user-menu__email[data-v-808e1477]{color:#ffffff8c;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.user-menu__chevron[data-v-808e1477]{color:#ffffff8c;flex:none;transition:transform .18s cubic-bezier(.32,.72,0,1)}.user-menu__chevron--open[data-v-808e1477]{transform:rotate(180deg)}.user-menu__dropdown[data-v-808e1477]{border:1px solid var(--color-border);background:var(--color-surface);z-index:60;border-radius:10px;width:220px;padding:6px;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 2px 4px #1f29370a,0 24px 64px -12px #1f29371f}.user-menu__option[data-v-808e1477]{width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;text-decoration:none;display:flex}.user-menu__option[data-v-808e1477]:hover{background:#f3f4f6}.user-menu__option[data-v-808e1477]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.user-menu__option--disabled[data-v-808e1477]{color:#9ca3af;cursor:not-allowed}.user-menu__option--disabled[data-v-808e1477]:hover{background:0 0}.user-menu__option--logout[data-v-808e1477]{color:#dc2626}.user-menu__option--logout[data-v-808e1477]:hover{background:#fee2e2}.sidebar[data-v-fbbd006b]{background:var(--color-sidebar);color:#fff;flex-direction:column;height:100%;display:flex}.sidebar__logo[data-v-fbbd006b]{align-items:center;gap:12px;padding:18px 16px;transition:padding .22s cubic-bezier(.32,.72,0,1);display:flex;overflow:hidden}.sidebar--collapsed .sidebar__logo[data-v-fbbd006b]{padding:18px 24px}.sidebar__logo-mark[data-v-fbbd006b]{color:#a5d6a7;flex:none;display:inline-flex}.sidebar__logo-text[data-v-fbbd006b]{white-space:nowrap;flex-direction:column;gap:2px;min-width:0;transition:opacity .15s cubic-bezier(.32,.72,0,1);display:flex}.sidebar--collapsed .sidebar__logo-text[data-v-fbbd006b]{opacity:0}.sidebar__logo-name[data-v-fbbd006b]{letter-spacing:.14em;font-size:17px;font-weight:700;line-height:1.2}.sidebar__logo-caption[data-v-fbbd006b]{color:#ffffff8c;font-size:11px;line-height:1.35}.sidebar__nav-area[data-v-fbbd006b]{flex:1;min-height:0;padding:4px 12px;overflow-y:auto}.sidebar--collapsed .sidebar__nav-area[data-v-fbbd006b]{padding:4px 10px}.sidebar__bottom[data-v-fbbd006b]{border-top:1px solid #ffffff14;flex-direction:column;gap:10px;padding:12px;display:flex}.sidebar__copyright[data-v-fbbd006b]{text-align:center;color:#fff6;white-space:nowrap;margin:0;font-size:11px;transition:opacity .15s cubic-bezier(.32,.72,0,1);overflow:hidden}.sidebar--collapsed .sidebar__copyright[data-v-fbbd006b]{opacity:0}.app-layout[data-v-a31d43a1]{min-height:100dvh;display:flex}.app-layout__sidebar[data-v-a31d43a1]{z-index:40;flex:none;width:260px;height:100dvh;transition:width .22s cubic-bezier(.32,.72,0,1),transform .22s cubic-bezier(.32,.72,0,1);position:sticky;top:0}.app-layout__sidebar--collapsed[data-v-a31d43a1]{width:72px}.app-layout__backdrop[data-v-a31d43a1]{z-index:35;background:#00000059;position:fixed;inset:0}.app-layout__main[data-v-a31d43a1]{flex-direction:column;flex:1;min-width:0;display:flex}.app-layout__content[data-v-a31d43a1]{flex:1;padding:24px}.app-layout__content-inner[data-v-a31d43a1]{width:100%;max-width:1680px;margin:0 auto}@media (width<=1023px){.app-layout__sidebar[data-v-a31d43a1]{width:260px;position:fixed;top:0;left:0;transform:translate(-100%)}.app-layout__sidebar--drawer-open[data-v-a31d43a1]{transform:translate(0)}}@media (width>=1024px){.app-layout__backdrop[data-v-a31d43a1]{display:none}}@media (width<=640px){.app-layout__content[data-v-a31d43a1]{padding:12px}}.backdrop-fade-enter-active[data-v-a31d43a1],.backdrop-fade-leave-active[data-v-a31d43a1]{transition:opacity .22s}.backdrop-fade-enter-from[data-v-a31d43a1],.backdrop-fade-leave-to[data-v-a31d43a1]{opacity:0}.backend-status[data-v-01332d98]{color:#6b7280;font-size:.95rem}.backend-status__value[data-v-01332d98]{font-weight:600}.backend-status[data-status=ok] .backend-status__value[data-v-01332d98]{color:#16a34a}.backend-status[data-status=unavailable] .backend-status__value[data-v-01332d98]{color:#dc2626}.auth[data-v-81819b22]{background:#f7f9f8;grid-template-columns:minmax(0,2fr) minmax(0,3fr);min-height:100dvh;display:grid}.auth__panel[data-v-81819b22]{background:linear-gradient(#0f1a1461 0%,#0f1a142e 38%,#0f1a149e 100%),url(/assets/login-hero-D_50j4lk.jpg) 50%/cover no-repeat;position:relative}.auth__panel-content[data-v-81819b22]{color:#fff;flex-direction:column;height:100%;padding:3rem 3.25rem;display:flex;position:relative}.auth__brand[data-v-81819b22]{align-items:center;gap:.85rem;display:flex}.auth__brand-mark[data-v-81819b22]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#ffffff29;border:1px solid #ffffff47;border-radius:10px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.auth__brand-mark--solid[data-v-81819b22]{background:#2e7d32;border-color:#2e7d32}.auth__brand-text[data-v-81819b22]{flex-direction:column;line-height:1.35;display:flex}.auth__brand-name[data-v-81819b22]{letter-spacing:.14em;font-size:1.05rem;font-weight:700}.auth__brand-caption[data-v-81819b22]{color:#ffffffc7;font-size:.78rem;font-weight:500}.auth__pitch[data-v-81819b22]{max-width:30rem;margin-top:auto;padding-bottom:2.5rem}.auth__pitch-title[data-v-81819b22]{letter-spacing:-.015em;text-wrap:balance;margin:0;font-size:clamp(1.7rem,1.1rem + 1.6vw,2.35rem);font-weight:700;line-height:1.22}.auth__pitch-subtitle[data-v-81819b22]{color:#ffffffd1;max-width:26rem;margin:1rem 0 0;font-size:1rem;font-weight:400;line-height:1.6}.auth__security[data-v-81819b22]{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff1f;border:1px solid #ffffff38;border-radius:10px;align-items:center;gap:.75rem;width:fit-content;padding:.8rem 1.1rem;display:flex}.auth__security-icon[data-v-81819b22]{color:#d7ecd9;display:inline-flex}.auth__security-text[data-v-81819b22]{color:#ffffffeb;margin:0;font-size:.85rem;font-weight:500}.auth__content[data-v-81819b22]{flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:3rem 2rem;display:flex}.auth__mobile-brand[data-v-81819b22]{align-items:center;gap:.7rem;display:none}.auth__mobile-brand-name[data-v-81819b22]{letter-spacing:.14em;color:#1f2937;font-size:1.05rem;font-weight:700}.auth__card[data-v-81819b22]{background:#fff;border:1px solid #e5e7eb;border-radius:14px;width:min(27.5rem,100%);padding:3rem;animation:.42s cubic-bezier(.32,.72,0,1) both auth-card-in-81819b22;box-shadow:0 2px 4px #1f29370a,0 24px 64px -12px #1f29371f}@keyframes auth-card-in-81819b22{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.auth__card[data-v-81819b22]{animation:none}}.auth__card-icon[data-v-81819b22]{color:#2e7d32;background:#e8f5e9;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.auth__card-title[data-v-81819b22]{letter-spacing:-.015em;color:#1f2937;margin:1.25rem 0 0;font-size:1.6rem;font-weight:700}.auth__card-subtitle[data-v-81819b22]{color:#6b7280;margin:.5rem 0 0;font-size:.92rem;line-height:1.55}.auth__form[data-v-81819b22]{flex-direction:column;gap:1.15rem;margin-top:1.75rem;display:flex}.auth__field[data-v-81819b22]{flex-direction:column;gap:.45rem;display:flex}.auth__label-row[data-v-81819b22]{justify-content:space-between;align-items:baseline;display:flex}.auth__label[data-v-81819b22]{color:#1f2937;font-size:.85rem;font-weight:500}.auth__required[data-v-81819b22]{color:#dc2626;margin-left:2px;font-weight:600}.auth__forgot[data-v-81819b22]{font:inherit;color:#2e7d32;cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;font-weight:500;transition:color .16s cubic-bezier(.32,.72,0,1)}.auth__forgot[data-v-81819b22]:hover{color:#256528;text-decoration:underline}.auth__input-wrap[data-v-81819b22]{position:relative}.auth__input[data-v-81819b22]{width:100%;height:44px;font:inherit;color:#1f2937;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:0 .9rem;font-size:.95rem;transition:border-color .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1)}.auth__input[data-v-81819b22]::placeholder{color:#9ca3af}.auth__input[data-v-81819b22]:hover{border-color:#d1d5db}.auth__input[data-v-81819b22]:focus{border-color:#2e7d32;outline:none;box-shadow:0 0 0 3px #2e7d3226}.auth__input--password[data-v-81819b22]{padding-right:2.9rem}.auth__toggle[data-v-81819b22]{color:#6b7280;cursor:pointer;background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;transition:background-color .16s cubic-bezier(.32,.72,0,1),color .16s cubic-bezier(.32,.72,0,1);display:inline-flex;position:absolute;top:50%;right:.45rem;transform:translateY(-50%)}.auth__toggle[data-v-81819b22]:hover{color:#1f2937;background:#f3f4f6}.auth__toggle[data-v-81819b22]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.auth__hint[data-v-81819b22]{color:#6b7280;margin:.15rem 0 0;font-size:.82rem;line-height:1.5}.auth__error[data-v-81819b22]{color:#dc2626;margin:-.25rem 0 0;font-size:.88rem;font-weight:500}.auth__submit[data-v-81819b22]{color:#fff;height:46px;font:inherit;cursor:pointer;background:#2e7d32;border:none;border-radius:10px;font-size:.95rem;font-weight:600;transition:background-color .16s cubic-bezier(.32,.72,0,1),transform .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1)}.auth__submit[data-v-81819b22]:hover:not(:disabled){background:#256528;transform:translateY(-1px);box-shadow:0 8px 20px -8px #2e7d3273}.auth__submit[data-v-81819b22]:active:not(:disabled){transform:translateY(0)scale(.995)}.auth__submit[data-v-81819b22]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.auth__submit[data-v-81819b22]:disabled{opacity:.55;cursor:not-allowed}.auth__footer[data-v-81819b22]{text-align:center;flex-direction:column;align-items:center;gap:.4rem;display:flex}.auth__footer-meta[data-v-81819b22]{color:#6b7280;margin:0;font-size:.78rem}@media (width<=960px){.auth[data-v-81819b22]{grid-template-columns:1fr}.auth__panel[data-v-81819b22]{display:none}.auth__mobile-brand[data-v-81819b22]{display:flex}.auth__content[data-v-81819b22]{justify-content:flex-start;padding:2.5rem 1rem}.auth__card[data-v-81819b22]{padding:2rem 1.5rem}}.app-card[data-v-98db7ab0]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;min-width:0;box-shadow:0 1px 2px #00000008,0 4px 12px #0000000a}.app-card--hoverable[data-v-98db7ab0]{transition:border-color .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1)}.app-card--hoverable[data-v-98db7ab0]:hover{border-color:#d1d5db;box-shadow:0 2px 4px #0000000a,0 8px 20px #0000000f}.chart-card__title[data-v-4943a0fa]{margin:0 0 16px;font-size:18px;font-weight:600}.chart-card__canvas[data-v-4943a0fa]{height:210px;position:relative}.field[data-v-5404c3b8]{flex-direction:column;gap:6px;display:flex}.field__control[data-v-5404c3b8]{position:relative}.field__input[data-v-5404c3b8]{border:1px solid var(--color-border);background:var(--color-surface);width:100%;height:40px;font:inherit;color:var(--color-text-primary);border-radius:10px;padding:0 12px;font-size:14px;transition:border-color .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1)}.field__input[data-v-5404c3b8]::placeholder{color:#9ca3af}.field__input[data-v-5404c3b8]:hover:not(:disabled){border-color:#d1d5db}.field__input[data-v-5404c3b8]:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2e7d3226}.field__input[data-v-5404c3b8]:disabled{color:var(--color-text-secondary);cursor:not-allowed;background:#f9fafb}.field__input--error[data-v-5404c3b8]{border-color:#dc2626}.field__input--with-toggle[data-v-5404c3b8]{padding-right:42px}.field__toggle[data-v-5404c3b8]{width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background-color .16s cubic-bezier(.32,.72,0,1),color .16s cubic-bezier(.32,.72,0,1);display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.field__toggle[data-v-5404c3b8]:hover{color:var(--color-text-primary);background:#f3f4f6}.field__toggle[data-v-5404c3b8]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.field__error[data-v-5404c3b8]{color:#dc2626;margin:0;font-size:12.5px}.field__hint[data-v-5404c3b8]{color:var(--color-text-secondary);margin:0;font-size:12px;line-height:1.5}.modal[data-v-2651d4d6]{z-index:80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal__backdrop[data-v-2651d4d6]{background:#11182773;position:absolute;inset:0}.modal__panel[data-v-2651d4d6]{background:var(--color-surface);border-radius:14px;flex-direction:column;width:100%;max-height:calc(100dvh - 32px);animation:.2s cubic-bezier(.32,.72,0,1) both modal-in-2651d4d6;display:flex;position:relative;box-shadow:0 2px 4px #1f29370a,0 24px 64px -12px #1f29371f}.modal__panel[data-v-2651d4d6]:focus{outline:none}.modal__header[data-v-2651d4d6]{border-bottom:1px solid #0000;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;transition:border-color .16s cubic-bezier(.32,.72,0,1);display:flex}.modal__header--divided[data-v-2651d4d6]{border-bottom-color:var(--color-border)}.modal__title[data-v-2651d4d6]{margin:0;font-size:18px;font-weight:700}.modal__close[data-v-2651d4d6]{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;display:inline-flex}.modal__close[data-v-2651d4d6]:hover{color:var(--color-text-primary);background:#f3f4f6}.modal__close[data-v-2651d4d6]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.modal__body[data-v-2651d4d6]{padding:4px 20px 16px;overflow-y:auto}.modal__body[data-v-2651d4d6]:not(:last-child){padding-bottom:4px}.modal__footer[data-v-2651d4d6]{flex:none;justify-content:flex-end;gap:10px;padding:12px 20px 18px;display:flex}@keyframes modal-in-2651d4d6{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.modal__panel[data-v-2651d4d6]{animation:none}}.select[data-v-2fce337d]{flex-direction:column;gap:6px;min-width:0;display:flex}.select__trigger[data-v-2fce337d]{border:1px solid var(--color-border);background:var(--color-surface);width:100%;height:40px;font:inherit;color:var(--color-text-primary);text-align:left;cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:0 10px 0 12px;font-size:14px;transition:border-color .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1);display:flex}.select__trigger[data-v-2fce337d]:hover:not(:disabled){border-color:#d1d5db}.select__trigger[data-v-2fce337d]:focus-visible,.select__trigger--open[data-v-2fce337d]{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2e7d3226}.select__trigger--error[data-v-2fce337d]{border-color:#dc2626}.select__trigger[data-v-2fce337d]:disabled{color:var(--color-text-secondary);cursor:not-allowed;background:#f9fafb}.select__value[data-v-2fce337d]{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;width:0;min-width:0;overflow:hidden}.select__chevron[data-v-2fce337d]{color:var(--color-text-secondary);flex:none;transition:transform .18s cubic-bezier(.32,.72,0,1)}.select__chevron--open[data-v-2fce337d]{transform:rotate(180deg)}.select__error[data-v-2fce337d]{color:#dc2626;margin:0;font-size:12.5px}.select__hint[data-v-2fce337d]{color:var(--color-text-secondary);margin:0;font-size:12px;line-height:1.5}.select-panel[data-v-2fce337d]{z-index:90;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;max-height:280px;margin:0;padding:5px;list-style:none;position:fixed;overflow-y:auto;box-shadow:0 2px 4px #1f29370a,0 24px 64px -12px #1f29371f}.select-panel__option[data-v-2fce337d]{color:var(--color-text-primary);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;display:flex}.select-panel__option--active[data-v-2fce337d]:not(.select-panel__option--selected){background:#f3f4f6}.select-panel__option--selected[data-v-2fce337d]{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.select-panel__text[data-v-2fce337d]{white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.4}.select-panel__check[data-v-2fce337d]{color:var(--color-primary);flex:none}.select-panel-enter-active[data-v-2fce337d],.select-panel-leave-active[data-v-2fce337d]{transition:opacity .14s cubic-bezier(.32,.72,0,1),transform .14s cubic-bezier(.32,.72,0,1)}.select-panel-enter-from[data-v-2fce337d],.select-panel-leave-to[data-v-2fce337d]{opacity:0;transform:translateY(-4px)}.field[data-v-18cf20b5]{flex-direction:column;gap:6px;display:flex}.field__input[data-v-18cf20b5]{border:1px solid var(--color-border);background:var(--color-surface);font:inherit;color:var(--color-text-primary);resize:vertical;border-radius:10px;padding:10px 12px;font-size:14px}.field__input[data-v-18cf20b5]::placeholder{color:#9ca3af}.field__input[data-v-18cf20b5]:hover:not(:disabled){border-color:#d1d5db}.field__input[data-v-18cf20b5]:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2e7d3226}.field__input--error[data-v-18cf20b5]{border-color:#dc2626}.field__error[data-v-18cf20b5]{color:#dc2626;margin:0;font-size:12.5px}.field__hint[data-v-18cf20b5]{color:var(--color-text-secondary);margin:0;font-size:12px;line-height:1.5}.project-form[data-v-b52a0e39]{flex-direction:column;gap:14px;display:flex}.project-form__row[data-v-b52a0e39]{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=560px){.project-form__row[data-v-b52a0e39]{grid-template-columns:1fr}}.project-form__section[data-v-b52a0e39]{color:var(--color-text-secondary);margin:4px 0 -4px;font-size:13px;font-weight:600}.project-form__row--three[data-v-b52a0e39]{grid-template-columns:repeat(3,1fr)}@media (width<=560px){.project-form__row--three[data-v-b52a0e39]{grid-template-columns:1fr}}.project-form__hint[data-v-b52a0e39]{color:var(--color-text-secondary);margin:-8px 0 0;font-size:12.5px}.kpi[data-v-2922fe77]{flex-direction:column;gap:10px;display:flex}.kpi__top[data-v-2922fe77]{align-items:center;gap:10px;display:flex}.kpi__icon[data-v-2922fe77]{background:var(--color-primary-light);width:38px;height:38px;color:var(--color-primary);border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.kpi__label[data-v-2922fe77]{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);font-size:12.5px;font-weight:500}.kpi__body[data-v-2922fe77]{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.kpi__value[data-v-2922fe77]{font-size:32px;font-weight:700;line-height:1}.kpi__trend[data-v-2922fe77]{flex:none}.kpi__delta[data-v-2922fe77]{color:var(--color-text-secondary);margin:0;font-size:12.5px}.hint[data-v-4ca51e1a]{color:#9ca3af;cursor:help;vertical-align:middle;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin:-2px;padding:2px;display:inline-flex}.hint[data-v-4ca51e1a]:hover,.hint[data-v-4ca51e1a]:focus-visible{color:var(--color-primary)}.hint[data-v-4ca51e1a]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.hint-tooltip[data-v-4ca51e1a]{z-index:120;color:#fff;letter-spacing:normal;text-align:left;text-transform:none;white-space:normal;pointer-events:none;visibility:hidden;opacity:0;background:#1f2937;border-radius:8px;max-width:min(300px,100vw - 16px);padding:8px 10px;font-size:12.5px;font-weight:400;line-height:1.5;transition:opacity .12s;position:fixed;box-shadow:0 6px 20px #0f172a2e}.hint-tooltip--positioned[data-v-4ca51e1a]{visibility:visible;opacity:1}.hint-tooltip[data-v-4ca51e1a] p{margin:0 0 4px}.hint-tooltip[data-v-4ca51e1a] p:last-child{margin-bottom:0}.hint-tooltip[data-v-4ca51e1a]:after{content:"";left:var(--hint-arrow-left,50%);background:inherit;width:8px;height:8px;position:absolute;transform:translate(-50%)rotate(45deg)}.hint-tooltip--top[data-v-4ca51e1a]:after{bottom:-4px}.hint-tooltip--bottom[data-v-4ca51e1a]:after{top:-4px}.status[data-v-b4d6e721]{white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:3px 8px 3px 6px;font-size:12px;font-weight:500;line-height:1.4;display:inline-flex}.status--compact[data-v-b4d6e721]{padding:4px}.status--success[data-v-b4d6e721]{color:#2e7d32;background:#e8f5e9}.status--warning[data-v-b4d6e721]{color:#d97706;background:#fef3c7}.status--error[data-v-b4d6e721]{color:#dc2626;background:#fee2e2}.status--info[data-v-b4d6e721]{color:#2563eb;background:#dbeafe}.status--neutral[data-v-b4d6e721]{color:#4b5563;background:#f3f4f6}.status__icon[data-v-b4d6e721]{flex:none}.status__hint[data-v-b4d6e721]{color:inherit;opacity:.8;margin-left:1px}.card-header[data-v-2d2ad388]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-header__title[data-v-2d2ad388]{margin:0;font-size:18px;font-weight:600}.card-header__link[data-v-2d2ad388]{color:var(--color-primary);font-size:13px;font-weight:500;text-decoration:none}.card-header__link[data-v-2d2ad388]:hover{text-decoration:underline}.card-header__link--disabled[data-v-2d2ad388]{color:#9ca3af;cursor:not-allowed}.card-header__link--disabled[data-v-2d2ad388]:hover{text-decoration:none}.table-wrap[data-v-2d2ad388]{overflow-x:auto}.table[data-v-2d2ad388]{border-collapse:collapse;width:100%;font-size:13.5px}.table th[data-v-2d2ad388]{text-align:left;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 20px;font-size:12.5px;font-weight:500}.table td[data-v-2d2ad388]{border-bottom:1px solid var(--color-border);vertical-align:middle;height:54px;padding:8px 20px}.table tbody tr:last-child td[data-v-2d2ad388]{border-bottom:none}.table tbody tr[data-v-2d2ad388]{transition:background-color .16s cubic-bezier(.32,.72,0,1)}.table tbody tr[data-v-2d2ad388]:hover{background:#f9fafb}.table__muted[data-v-2d2ad388]{color:var(--color-text-secondary);white-space:nowrap}.table__actions-col[data-v-2d2ad388]{text-align:right;width:48px}.row-action[data-v-2d2ad388]{width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.row-action[data-v-2d2ad388]:hover:not(:disabled){background:#f3f4f6}.row-action[data-v-2d2ad388]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.row-action[data-v-2d2ad388]:disabled{color:#d1d5db;cursor:not-allowed}.sr-only[data-v-2d2ad388]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.calc-name[data-v-2d2ad388]{font-weight:500}.card-header[data-v-4af83200]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-header__title[data-v-4af83200]{margin:0;font-size:18px;font-weight:600}.card-header__link[data-v-4af83200]{color:var(--color-primary);font-size:13px;font-weight:500;text-decoration:none}.card-header__link[data-v-4af83200]:hover{text-decoration:underline}.card-header__link--disabled[data-v-4af83200]{color:#9ca3af;cursor:not-allowed}.card-header__link--disabled[data-v-4af83200]:hover{text-decoration:none}.table-wrap[data-v-4af83200]{overflow-x:auto}.table[data-v-4af83200]{border-collapse:collapse;width:100%;font-size:13.5px}.table th[data-v-4af83200]{text-align:left;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 20px;font-size:12.5px;font-weight:500}.table td[data-v-4af83200]{border-bottom:1px solid var(--color-border);vertical-align:middle;height:54px;padding:8px 20px}.table tbody tr:last-child td[data-v-4af83200]{border-bottom:none}.table tbody tr[data-v-4af83200]{transition:background-color .16s cubic-bezier(.32,.72,0,1)}.table tbody tr[data-v-4af83200]:hover{background:#f9fafb}.table__muted[data-v-4af83200]{color:var(--color-text-secondary);white-space:nowrap}.table__actions-col[data-v-4af83200]{text-align:right;width:48px}.row-action[data-v-4af83200]{width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.row-action[data-v-4af83200]:hover:not(:disabled){background:#f3f4f6}.row-action[data-v-4af83200]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.row-action[data-v-4af83200]:disabled{color:#d1d5db;cursor:not-allowed}.sr-only[data-v-4af83200]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.project-name[data-v-4af83200]{align-items:center;gap:10px;display:flex}.project-name__icon[data-v-4af83200]{background:var(--color-primary-light);width:30px;height:30px;color:var(--color-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.project-name__text[data-v-4af83200]{flex-direction:column;min-width:0;line-height:1.35;display:flex}.project-name__title[data-v-4af83200]{font-weight:500}.project-name__sub[data-v-4af83200]{color:var(--color-text-secondary);font-size:12.5px}.reminder[data-v-cad58fd5]{background:var(--color-primary-light);border:1px solid #2e7d3229;border-radius:12px;gap:12px;padding:16px 18px;display:flex}.reminder__icon[data-v-cad58fd5]{width:34px;height:34px;color:var(--color-primary);background:#2e7d321f;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.reminder__body[data-v-cad58fd5]{min-width:0}.reminder__title[data-v-cad58fd5]{color:var(--color-primary);margin:0 0 4px;font-size:14px;font-weight:600}.reminder__text[data-v-cad58fd5]{color:var(--color-text-primary);margin:0;font-size:13px;line-height:1.55}.app-badge[data-v-446fbb0e]{white-space:nowrap;border-radius:6px;align-items:center;gap:.3rem;padding:.2rem .6rem;font-size:12px;font-weight:500;line-height:1.5;display:inline-flex}.app-badge--success[data-v-446fbb0e]{color:#2e7d32;background:#e8f5e9}.app-badge--warning[data-v-446fbb0e]{color:#d97706;background:#fef3c7}.app-badge--error[data-v-446fbb0e]{color:#dc2626;background:#fee2e2}.app-badge--info[data-v-446fbb0e]{color:#2563eb;background:#dbeafe}.app-badge--neutral[data-v-446fbb0e]{color:#4b5563;background:#f3f4f6}.status-card__title[data-v-0c8985fe]{margin:0 0 14px;font-size:18px;font-weight:600}.status-card__list[data-v-0c8985fe]{flex-direction:column;margin:0;display:flex}.status-card__row[data-v-0c8985fe]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.status-card__row[data-v-0c8985fe]:last-child{border-bottom:none}.status-card__row dt[data-v-0c8985fe]{color:var(--color-text-secondary);font-size:13.5px}.status-card__row dd[data-v-0c8985fe]{margin:0;font-size:13.5px;font-weight:500}.status-card__muted[data-v-0c8985fe]{color:var(--color-text-secondary);font-weight:400!important}.dashboard[data-v-14ce6aa3]{flex-direction:column;gap:16px;padding-bottom:84px;display:flex}.dashboard__kpi-grid[data-v-14ce6aa3]{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.dashboard__main-grid[data-v-14ce6aa3]{grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.dashboard__column[data-v-14ce6aa3]{flex-direction:column;gap:16px;min-width:0;display:flex}.dashboard__fab[data-v-14ce6aa3]{z-index:25;background:var(--color-primary);color:#fff;height:52px;font:inherit;cursor:pointer;border:none;border-radius:12px;align-items:center;gap:8px;padding:0 22px;font-size:14.5px;font-weight:600;transition:background-color .16s cubic-bezier(.32,.72,0,1),transform .16s cubic-bezier(.32,.72,0,1);display:inline-flex;position:fixed;bottom:24px;right:24px;box-shadow:0 2px 4px #0000000f,0 10px 24px #2e7d3247}.dashboard__fab[data-v-14ce6aa3]:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.dashboard__fab[data-v-14ce6aa3]:focus-visible{outline:none;box-shadow:0 0 0 3px #2e7d3226}.dashboard__fab[data-v-14ce6aa3]:disabled{opacity:.6;cursor:not-allowed}@media (width<=1023px){.dashboard__main-grid[data-v-14ce6aa3]{grid-template-columns:1fr}.dashboard__kpi-grid[data-v-14ce6aa3]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.dashboard__kpi-grid[data-v-14ce6aa3]{grid-template-columns:1fr}.dashboard__fab[data-v-14ce6aa3]{bottom:16px;right:16px}}
