.idle-overlay[data-v-f4b6c5c1]{z-index:9999;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.idle-modal[data-v-f4b6c5c1]{background:var(--color-surface);color:var(--color-text);width:calc(100% - 2rem);max-width:480px;box-shadow:var(--shadow-lg);border-radius:12px;padding:2rem}.idle-title[data-v-f4b6c5c1]{color:var(--color-danger);margin:0 0 .75rem;font-size:1.4rem}.idle-body[data-v-f4b6c5c1]{margin:0 0 .5rem;font-size:1rem}.idle-hint[data-v-f4b6c5c1]{margin:0 0 1.25rem}.idle-actions[data-v-f4b6c5c1]{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}@media (width>=480px){.idle-actions[data-v-f4b6c5c1]{flex-wrap:nowrap}.idle-actions .btn[data-v-f4b6c5c1]{white-space:nowrap}}.idle-fade-enter-active[data-v-f4b6c5c1],.idle-fade-leave-active[data-v-f4b6c5c1]{transition:opacity .18s}.idle-fade-enter-from[data-v-f4b6c5c1],.idle-fade-leave-to[data-v-f4b6c5c1]{opacity:0}.app-icon[data-v-17e218f5]{vertical-align:middle;flex-shrink:0}.toast-container[data-v-9939cd5e]{top:var(--space-md);right:var(--space-md);z-index:1100;gap:var(--space-sm);max-width:min(380px, calc(100vw - 2 * var(--space-md)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast[data-v-9939cd5e]{align-items:flex-start;gap:var(--space-sm);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-left:4px solid var(--color-info);border-radius:var(--radius-md);box-shadow:var(--shadow-lg,0 8px 24px #00000026);font-size:var(--font-size-sm);pointer-events:auto;padding:.75rem .875rem;display:flex}.toast--success[data-v-9939cd5e]{border-left-color:var(--color-success)}.toast--error[data-v-9939cd5e]{border-left-color:var(--color-danger)}.toast--info[data-v-9939cd5e]{border-left-color:var(--color-info)}.toast__icon[data-v-9939cd5e]{flex-shrink:0;font-size:1rem;line-height:1.3}.toast__message[data-v-9939cd5e]{word-break:break-word;flex:1;line-height:1.35}.toast__close[data-v-9939cd5e]{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;padding:.1rem .25rem;font-size:.8rem;line-height:1}.toast__close[data-v-9939cd5e]:hover{color:var(--color-text);background:var(--color-bg)}.toast-enter-active[data-v-9939cd5e],.toast-leave-active[data-v-9939cd5e]{transition:opacity .2s,transform .2s}.toast-enter-from[data-v-9939cd5e],.toast-leave-to[data-v-9939cd5e]{opacity:0;transform:translate(16px)}@media (prefers-reduced-motion:reduce){.toast-enter-active[data-v-9939cd5e],.toast-leave-active[data-v-9939cd5e]{transition:none}.toast-enter-from[data-v-9939cd5e],.toast-leave-to[data-v-9939cd5e]{transform:none}}@media (width<=480px){.toast-container[data-v-9939cd5e]{top:var(--space-sm);left:var(--space-sm);right:var(--space-sm);max-width:none}}.app-modal-overlay[data-v-5eb8db56]{z-index:1050;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.app-modal-overlay--elevated[data-v-5eb8db56]{z-index:1150}.app-modal[data-v-5eb8db56]{background:var(--surface);color:var(--text-primary);border-radius:.75rem;outline:none;flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 2rem);display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #00000040}.app-modal--sm[data-v-5eb8db56]{max-width:380px}.app-modal--md[data-v-5eb8db56]{max-width:520px}.app-modal--lg[data-v-5eb8db56]{max-width:720px}.app-modal--xl[data-v-5eb8db56]{max-width:960px}.app-modal--full[data-v-5eb8db56]{border-radius:0;max-width:100%;max-height:100vh}.app-modal__header[data-v-5eb8db56]{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.app-modal__title[data-v-5eb8db56]{margin:0;font-size:1.125rem;font-weight:600}.app-modal__close[data-v-5eb8db56]{min-width:36px;min-height:36px;color:var(--text-muted);font-size:1.125rem}.app-modal__close[data-v-5eb8db56]:hover{color:var(--text-primary)}.app-modal__body[data-v-5eb8db56]{flex:auto;padding:1.25rem;overflow-y:auto}.app-modal__footer[data-v-5eb8db56]{border-top:1px solid var(--border-color);background:var(--surface-muted);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;display:flex}.modal-fade-enter-active[data-v-5eb8db56],.modal-fade-leave-active[data-v-5eb8db56]{transition:opacity .2s}.modal-fade-enter-active .app-modal[data-v-5eb8db56],.modal-fade-leave-active .app-modal[data-v-5eb8db56]{transition:transform .2s}.modal-fade-enter-from[data-v-5eb8db56],.modal-fade-leave-to[data-v-5eb8db56]{opacity:0}.modal-fade-enter-from .app-modal[data-v-5eb8db56],.modal-fade-leave-to .app-modal[data-v-5eb8db56]{transform:translateY(-20px)}@media (width<=480px){.app-modal-overlay[data-v-5eb8db56]{align-items:flex-end;padding:.5rem}.app-modal[data-v-5eb8db56]{border-radius:.75rem .75rem 0 0;max-height:90vh}}.confirm-message[data-v-ee686d7e]{color:var(--color-text-secondary);margin:0;line-height:1.5}.notif-bell[data-v-40c0632b]{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;padding:.35rem;font-size:1.2rem;line-height:1;position:relative}.notif-bell-active[data-v-40c0632b]{color:var(--color-primary)}.notif-bell[data-v-40c0632b]:hover{background-color:#ffffff26}.notif-header-title[data-v-40c0632b],.admin-notif-header-title[data-v-40c0632b]{align-items:center;gap:.35rem;display:inline-flex}.notif-type-icon[data-v-40c0632b]{align-items:center;display:inline-flex}.notif-badge[data-v-40c0632b]{background:var(--color-primary-light);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:.55rem;font-weight:800;line-height:1;display:flex;position:absolute;top:-2px;right:-4px}.notif-dropdown[data-v-40c0632b]{right:var(--space-md);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:250;border:1px solid var(--color-border);flex-direction:column;width:320px;max-height:420px;display:flex;position:fixed;top:3.25rem}.notif-header[data-v-40c0632b]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.85rem;display:flex}.notif-mark-all[data-v-40c0632b]{color:var(--color-primary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.2rem .4rem;font-size:.75rem;font-weight:600}.notif-mark-all[data-v-40c0632b]:hover{background:var(--color-bg)}.notif-list[data-v-40c0632b]{flex:1;max-height:340px;overflow-y:auto}.notif-item[data-v-40c0632b]{border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color var(--transition-fast);padding:.6rem 1rem}.notif-item[data-v-40c0632b]:last-child{border-bottom:none}.notif-item[data-v-40c0632b]:hover{background-color:var(--color-bg)}.notif-unread[data-v-40c0632b]{border-left:3px solid var(--color-primary);background-color:#3b82f60f}.notif-item-header[data-v-40c0632b]{align-items:center;gap:.4rem;margin-bottom:.15rem;display:flex}.notif-type-icon[data-v-40c0632b]{font-size:.9rem}.notif-title[data-v-40c0632b]{color:var(--color-text);font-size:.8rem;font-weight:600}.notif-chevron[data-v-40c0632b]{color:var(--color-text-secondary);flex-shrink:0;margin-left:auto}.notif-message[data-v-40c0632b]{color:var(--color-text-secondary);margin-bottom:.15rem;font-size:.7rem;line-height:1.3}.notif-time[data-v-40c0632b]{color:var(--color-text-muted,var(--color-text-secondary));font-size:.65rem}.notif-empty[data-v-40c0632b]{text-align:center;color:var(--color-text-secondary);padding:2rem 1rem;font-size:.85rem}.notif-footer[data-v-40c0632b]{border-top:1px solid var(--color-border,var(--color-border));text-align:center;padding:.5rem}.notif-see-all[data-v-40c0632b]{color:var(--color-primary);border-radius:6px;padding:.5rem;font-size:.85rem;text-decoration:none;transition:background .15s;display:block}.notif-see-all[data-v-40c0632b]:hover{background:#3b82f614}@media (width<=400px){.notif-dropdown[data-v-40c0632b]{width:calc(100vw - 2rem);right:1rem}}.admin-icon-btn[data-v-40c0632b]{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;font-size:1.05rem;transition:background .15s;display:flex;position:relative}.admin-icon-btn[data-v-40c0632b]:hover{background:#ffffff26}.admin-notif-dot[data-v-40c0632b]{background:var(--color-primary-light);color:#fff;border-radius:7px;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 2px;font-size:.5rem;font-weight:800;line-height:1;display:flex;position:absolute;top:2px;right:2px}.admin-notif-panel[data-v-40c0632b]{background:var(--color-surface);border:1px solid var(--color-border);z-index:250;border-radius:10px;flex-direction:column;width:320px;max-height:420px;display:flex;position:fixed;top:60px;right:1.5rem;box-shadow:0 8px 24px #00000026}.admin-notif-header[data-v-40c0632b]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.875rem;display:flex}.admin-notif-mark-all[data-v-40c0632b]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.75rem;font-weight:600}.admin-notif-mark-all[data-v-40c0632b]:hover{background:var(--color-bg)}.admin-notif-list[data-v-40c0632b]{flex:1;overflow-y:auto}.admin-notif-item[data-v-40c0632b]{border-bottom:1px solid var(--color-border);cursor:pointer;padding:.6rem 1rem;transition:background .1s}.admin-notif-item[data-v-40c0632b]:last-child{border-bottom:none}.admin-notif-item[data-v-40c0632b]:hover{background:var(--color-bg)}.admin-notif-unread[data-v-40c0632b]{border-left:3px solid var(--color-primary);background:#3b82f60d}.admin-notif-row[data-v-40c0632b]{align-items:center;gap:.4rem;margin-bottom:.1rem;display:flex}.admin-notif-title[data-v-40c0632b]{color:var(--color-text);font-size:.8rem;font-weight:600}.admin-notif-msg[data-v-40c0632b]{color:var(--color-text-secondary);margin-bottom:.1rem;font-size:.7rem;line-height:1.3}.admin-notif-time[data-v-40c0632b]{color:var(--color-text-secondary);font-size:.65rem}.admin-notif-empty[data-v-40c0632b]{text-align:center;color:var(--color-text-secondary);padding:2rem;font-size:.875rem}@media (width<=400px){.admin-notif-panel[data-v-40c0632b]{width:calc(100vw - 2rem);right:1rem}}.brand-mark[data-v-2c6bfd29]{background:var(--gradient-primary);color:#fff;border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 2px 6px #dc262659}.brand-mark--sm[data-v-2c6bfd29]{border-radius:var(--radius-md);width:2rem;height:2rem;font-size:1.1rem}.brand-mark--md[data-v-2c6bfd29]{width:3.25rem;height:3.25rem;margin-bottom:var(--space-sm);font-size:1.75rem}.brand-mark--lg[data-v-2c6bfd29]{border-radius:var(--radius-xl);width:5rem;height:5rem;margin-bottom:var(--space-sm);font-size:2.5rem;box-shadow:0 4px 12px #c41e1e4d}.pwa-update-banner[data-v-f49fd52d]{left:50%;bottom:calc(var(--safe-bottom,0px) + 1rem);z-index:1100;background:var(--color-text);max-width:calc(100vw - 2rem);color:var(--color-bg);border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-lg,0 8px 24px #00000040);font-size:var(--font-size-sm);align-items:center;gap:.75rem;padding:.6rem .75rem .6rem 1rem;font-weight:600;display:flex;position:fixed;transform:translate(-50%)}.pwa-update-banner__text[data-v-f49fd52d]{align-items:center;gap:.4rem;display:inline-flex}.pwa-update-banner__btn[data-v-f49fd52d]{background:var(--color-primary);color:#fff;border-radius:var(--radius-md,8px);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;border:none;flex-shrink:0;padding:.35rem .9rem}.pwa-update-banner__btn[data-v-f49fd52d]:hover{filter:brightness(1.05)}.pwa-banner-enter-active[data-v-f49fd52d],.pwa-banner-leave-active[data-v-f49fd52d]{transition:opacity var(--transition-fast,.2s), transform var(--transition-fast,.2s)}.pwa-banner-enter-from[data-v-f49fd52d],.pwa-banner-leave-to[data-v-f49fd52d]{opacity:0;transform:translate(-50%,1rem)}.demo-banner[data-v-07505d2b]{justify-content:space-between;align-items:center;gap:var(--space-xs) var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-info-soft);color:var(--color-text);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.demo-banner-text[data-v-07505d2b]{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.demo-banner-actions[data-v-07505d2b]{align-items:center;gap:var(--space-xs);display:inline-flex}.offline-banner[data-v-55b29b69]{z-index:1000;padding:calc(var(--safe-top) + .3rem) .75rem .3rem;background:var(--color-warning);color:#fff;font-size:var(--font-size-xs);letter-spacing:.02em;justify-content:center;align-items:center;gap:.4rem;font-weight:700;display:flex;position:fixed;top:0;left:0;right:0}.impersonation-banner[data-v-55b29b69]{z-index:1001;padding:calc(var(--safe-top) + .35rem) .75rem .35rem;background:var(--color-danger);color:#fff;font-size:var(--font-size-xs);justify-content:center;align-items:center;gap:.6rem;font-weight:700;display:flex;position:fixed;top:0;left:0;right:0}.impersonation-quit[data-v-55b29b69]{color:#fff;font-weight:700;font-size:var(--font-size-xs);border-radius:var(--radius-sm);cursor:pointer;background:#fff3;border:1px solid #ffffff80;padding:.15rem .6rem}.impersonation-quit[data-v-55b29b69]:hover{background:#ffffff59}.desktop-only[data-v-55b29b69]{display:none!important}.mobile-only[data-v-55b29b69]{display:flex}@media (width>=900px){.desktop-only[data-v-55b29b69]{display:flex!important}.mobile-only[data-v-55b29b69]{display:none!important}}.app-header[data-v-55b29b69]{background:var(--color-surface);color:var(--color-text);z-index:100;border-bottom:1px solid var(--color-border);padding-top:var(--safe-top);position:fixed;top:0;left:0;right:0}.header-content[data-v-55b29b69]{height:var(--header-height);padding:0 var(--space-md);justify-content:space-between;align-items:center;display:flex}.header-left[data-v-55b29b69]{align-items:center;gap:var(--space-sm);display:flex}.sidebar-toggle[data-v-55b29b69]{color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:.4rem}.sidebar-toggle[data-v-55b29b69]:hover{background:var(--color-surface-hover);color:var(--color-text)}.header-logo[data-v-55b29b69]{color:var(--color-text);align-items:center;gap:.6rem;text-decoration:none;display:flex}.header-logo[data-v-55b29b69]:hover{text-decoration:none}.logo-text[data-v-55b29b69]{font-size:var(--font-size-lg);letter-spacing:-.03em;font-weight:800}.admin-badge[data-v-55b29b69]{background:var(--color-primary-soft);color:var(--color-primary);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;padding:.15rem .45rem;font-size:.6rem;font-weight:700}.header-user[data-v-55b29b69]{align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);transition:background-color var(--transition-fast);display:flex}.header-user[data-v-55b29b69]:hover{background-color:var(--color-surface-hover)}.user-name[data-v-55b29b69]{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500;display:none}@media (width>=480px){.user-name[data-v-55b29b69]{display:inline}}.user-avatar[data-v-55b29b69]{background:var(--gradient-primary);color:#fff;border-radius:var(--radius-full);width:2.1rem;height:2.1rem;font-size:var(--font-size-xs);justify-content:center;align-items:center;font-weight:700;display:flex}.user-avatar--loading[data-v-55b29b69]{background:var(--skeleton-bg);animation:1.2s ease-in-out infinite user-avatar-pulse-55b29b69}@keyframes user-avatar-pulse-55b29b69{0%,to{opacity:1}50%{opacity:.55}}.dropdown-menu[data-v-55b29b69]{right:var(--space-md);top:calc(var(--safe-top) + var(--header-height) + .25rem);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;border:1px solid var(--color-border);min-width:210px;padding:.35rem;position:fixed;overflow:hidden}.dropdown-item[data-v-55b29b69]{width:100%;color:var(--color-text);font-size:var(--font-size-sm);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;align-items:center;gap:.6rem;padding:.65rem .75rem;text-decoration:none;display:flex}.dropdown-item .app-icon[data-v-55b29b69]{color:var(--color-text-secondary)}.dropdown-item[data-v-55b29b69]:hover{background-color:var(--color-surface-hover);text-decoration:none}.dropdown-item-danger[data-v-55b29b69],.dropdown-item-danger .app-icon[data-v-55b29b69]{color:var(--color-danger)}.header-right[data-v-55b29b69]{align-items:center;gap:var(--space-xs);display:flex}.app-sidebar[data-v-55b29b69]{background:var(--color-surface);border-right:1px solid var(--color-border);z-index:90;width:220px;padding-top:calc(var(--safe-top) + var(--header-height) + .25rem);flex-direction:column;justify-content:space-between;transition:width .25s,transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden}.app-sidebar.collapsed[data-v-55b29b69]{width:64px}.app-sidebar.collapsed .sidebar-label[data-v-55b29b69]{display:none}.app-sidebar.collapsed .sidebar-item[data-v-55b29b69]{justify-content:center;padding:.75rem}.app-sidebar.collapsed .sidebar-divider[data-v-55b29b69]{margin:.5rem .75rem}.sidebar-nav[data-v-55b29b69]{flex-direction:column;flex:1;gap:.15rem;padding:.75rem .5rem;display:flex}.sidebar-footer[data-v-55b29b69]{border-top:1px solid var(--color-border);flex-direction:column;gap:.15rem;padding:.5rem;display:flex}.sidebar-item[data-v-55b29b69]{color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;width:100%;padding:.625rem .875rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.sidebar-item[data-v-55b29b69]:hover{background:var(--color-surface-hover);color:var(--color-text);text-decoration:none}.sidebar-item-active[data-v-55b29b69]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.sidebar-icon[data-v-55b29b69]{text-align:center;flex-shrink:0;width:1.5rem}.sidebar-label[data-v-55b29b69]{white-space:nowrap}.sidebar-divider[data-v-55b29b69]{background:var(--color-border);height:1px;margin:.5rem .875rem}.bottom-nav[data-v-55b29b69]{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-xs) 0;padding-bottom:max(var(--space-xs), var(--safe-bottom));z-index:100;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0f172a0f}.nav-item[data-v-55b29b69]{padding:var(--space-xs) var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);transition:color var(--transition-fast);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;min-width:3.5rem;text-decoration:none;display:flex}.nav-item[data-v-55b29b69]:hover{text-decoration:none}.nav-icon-box[data-v-55b29b69]{border-radius:var(--radius-full);transition:background-color var(--transition-fast);justify-content:center;align-items:center;padding:.2rem .8rem;display:inline-flex}.nav-item-active[data-v-55b29b69]{color:var(--color-primary)}.nav-item-active .nav-icon-box[data-v-55b29b69]{background:var(--color-primary-soft)}.nav-label[data-v-55b29b69]{font-weight:500}.nav-item-active .nav-label[data-v-55b29b69]{font-weight:700}.page-content.has-header[data-v-55b29b69]{padding-top:calc(var(--safe-top) + var(--header-height) + var(--space-sm))}html[data-v-55b29b69],body[data-v-55b29b69]{overscroll-behavior:none}@media (width>=900px){.app-container.has-sidebar .header-content[data-v-55b29b69]{max-width:none}.page-content.with-sidebar[data-v-55b29b69]{padding-bottom:var(--space-xl);margin-left:220px;transition:margin-left .25s}.sidebar-collapsed .page-content.with-sidebar[data-v-55b29b69]{margin-left:64px}.page-inner[data-v-55b29b69]{max-width:960px;margin:0 auto}}.app-container.is-landing .page-content[data-v-55b29b69]{padding:0}.sidebar-icon-wrap[data-v-55b29b69]{flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;display:inline-flex;position:relative}.nav-icon-wrap[data-v-55b29b69]{position:relative}.pending-count-badge[data-v-55b29b69]{background:var(--color-primary);color:#fff;pointer-events:none;border-radius:7px;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 2px;font-size:.5rem;font-weight:800;line-height:1;display:flex;position:absolute;top:-5px;right:-7px}.nav-icon-wrap .pending-count-badge[data-v-55b29b69]{right:2px}:root{--color-primary:#dc2626;--color-primary-dark:#b91c1c;--color-primary-light:#ef4444;--color-primary-soft:#fee2e2;--color-on-primary:#fff;--color-on-warning:#1c1917;--color-secondary:#1e293b;--color-secondary-light:#334155;--color-accent:#eab308;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-info:#2563eb;--color-success-soft:#f0fdf4;--color-warning-soft:#fffbeb;--color-danger-soft:#fef2f2;--color-info-soft:#eff6ff;--color-success-fill:#16a34a;--color-success-fill-hover:#15803d;--color-warning-fill:#edc40c;--color-warning-fill-hover:#c9a70a;--color-info-fill:#2563eb;--color-danger-fill:#dc2626;--color-danger-fill-hover:#b91c1c;--color-success-badge:var(--color-success);--color-violet:#5b21b6;--color-violet-soft:#ede9fe;--color-pink:#9d174d;--color-pink-soft:#fce7f3;--color-bg:#f4f6f8;--color-surface:#fff;--color-surface-hover:#f1f5f9;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-muted:#475569;--color-text-light:#94a3b8;--font-family:system-ui, -apple-system, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-display:2.25rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:.5rem;--radius-md:.625rem;--radius-lg:.875rem;--radius-xl:1.25rem;--radius-full:9999px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 2px 4px #0f172a0d, 0 4px 12px #0f172a14;--shadow-lg:0 4px 8px #0f172a14, 0 12px 32px #0f172a24;--transition-fast:.15s ease;--transition-base:.25s ease;--header-height:3.5rem;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--color-focus:#2563eb;--focus-ring-primary:0 0 0 3px #dc26262e;--table-bg:var(--color-surface);--table-border:var(--color-border);--table-header-bg:var(--color-bg);--table-header-text:var(--color-text-secondary);--table-row-hover:var(--color-surface-hover);--table-row-stripe:color-mix(in srgb, var(--color-bg) 45%, var(--color-surface));--table-cell-alert-bg:var(--banner-warn-bg);--table-cell-alert-text:var(--banner-warn-text);--table-row-height:2.25rem;--table-min-width:56rem;--table-cell-padding-y:.35rem;--table-cell-padding-x:.75rem;--table-font-size:var(--font-size-sm);--surface:var(--color-surface);--surface-muted:var(--color-bg);--surface-elevated:var(--color-surface);--text-primary:var(--color-text);--text-muted:var(--color-text-secondary);--border-color:var(--color-border);--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);--gradient-secondary:linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-light) 100%);--banner-info-bg:#dbeafe;--banner-info-text:#1e40af;--banner-warn-bg:#fef3c7;--banner-warn-text:#92400e;--banner-success-bg:#d1fae5;--banner-success-text:#065f46;--banner-danger-bg:#fee2e2;--banner-danger-text:#991b1b;--skeleton-bg:#e9ecef;--skeleton-highlight:#f5f7fa}:root[data-theme=dark]{--color-primary:#ef4444;--color-primary-dark:#dc2626;--color-primary-light:#f87171;--color-primary-soft:#ef444429;--color-secondary:#334155;--color-secondary-light:#475569;--color-accent:#facc15;--color-success:#4ade80;--color-warning:#fbbf24;--color-danger:#f87171;--color-info:#60a5fa;--color-success-soft:#4ade8024;--color-warning-soft:#fbbf2424;--color-danger-soft:#f8717124;--color-info-soft:#60a5fa24;--color-success-fill:#2f8f57;--color-success-fill-hover:#38a866;--color-success-badge:#16a34a;--color-warning-fill:#edc40c;--color-warning-fill-hover:#c9a70a;--color-danger-fill:#dc2626;--color-danger-fill-hover:#b91c1c;--color-info-fill:#3b82f6;--color-violet:#c4b5fd;--color-violet-soft:#2e1a4a;--color-pink:#fbcfe8;--color-pink-soft:#500724;--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-hover:#263449;--color-border:#334155;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#94a3b8;--color-text-light:#64748b;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 2px 4px #0000004d, 0 4px 12px #0006;--shadow-lg:0 4px 8px #0006, 0 12px 32px #0000008c;--color-focus:#60a5fa;--focus-ring-primary:0 0 0 3px #ef444447;--banner-info-bg:#1e3a8a;--banner-info-text:#bfdbfe;--banner-warn-bg:#78350f;--banner-warn-text:#fde68a;--banner-success-bg:#064e3b;--banner-success-text:#a7f3d0;--banner-danger-bg:#7f1d1d;--banner-danger-text:#fecaca;--skeleton-bg:#334155;--skeleton-highlight:#475569}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:#ef4444;--color-primary-dark:#dc2626;--color-primary-light:#f87171;--color-primary-soft:#ef444429;--color-secondary:#334155;--color-secondary-light:#475569;--color-accent:#facc15;--color-success:#4ade80;--color-warning:#fbbf24;--color-danger:#f87171;--color-info:#60a5fa;--color-success-soft:#4ade8024;--color-warning-soft:#fbbf2424;--color-danger-soft:#f8717124;--color-info-soft:#60a5fa24;--color-success-fill:#2f8f57;--color-success-fill-hover:#38a866;--color-success-badge:#16a34a;--color-warning-fill:#edc40c;--color-warning-fill-hover:#c9a70a;--color-danger-fill:#dc2626;--color-danger-fill-hover:#b91c1c;--color-info-fill:#3b82f6;--color-violet:#c4b5fd;--color-violet-soft:#2e1a4a;--color-pink:#fbcfe8;--color-pink-soft:#500724;--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-hover:#263449;--color-border:#334155;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-muted:#94a3b8;--color-text-light:#64748b;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 2px 4px #0000004d, 0 4px 12px #0006;--shadow-lg:0 4px 8px #0006, 0 12px 32px #0000008c;--color-focus:#60a5fa;--focus-ring-primary:0 0 0 3px #ef444447;--banner-info-bg:#1e3a8a;--banner-info-text:#bfdbfe;--banner-warn-bg:#78350f;--banner-warn-text:#fde68a;--banner-success-bg:#064e3b;--banner-success-text:#a7f3d0;--banner-danger-bg:#7f1d1d;--banner-danger-text:#fecaca;--skeleton-bg:#334155;--skeleton-highlight:#475569}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5}h1,h2,h3{letter-spacing:-.02em;line-height:1.25}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-container:not(.has-sidebar):not(.is-landing){max-width:768px;margin:0 auto}.page-content{padding:var(--space-md);padding-bottom:calc(var(--space-xl) + 100px);flex:1}@media (width>=900px){.page-content.with-sidebar{padding-bottom:var(--space-xl)}.page-content{padding:var(--space-lg) var(--space-xl)}}.btn{justify-content:center;align-items:center;gap:var(--space-sm);min-height:2.5rem;font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);white-space:nowrap;border:none;padding:.5rem 1.125rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-on-primary,#fff);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:var(--color-secondary);color:#fff}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-light)}.btn-outline{color:var(--color-primary);border:1.5px solid var(--color-primary);background-color:#0000}.btn-outline:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-on-primary,#fff)}.btn-ghost{color:var(--color-text-secondary);border:1px solid var(--color-border);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-hover);color:var(--color-text)}.btn-success{background-color:var(--color-success-fill);color:#fff}.btn-success:hover:not(:disabled){background-color:var(--color-success-fill-hover)}.btn-warning{background-color:var(--color-warning-fill);color:var(--color-on-warning)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-fill-hover)}.btn-danger{background-color:var(--color-danger-fill);color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-fill-hover)}.btn-sm{min-height:2rem;font-size:var(--font-size-xs);padding:.375rem .75rem}.btn-lg{min-height:3rem;font-size:var(--font-size-base);padding:.75rem 1.5rem}.btn-block{width:100%}.btn-icon{border-radius:var(--radius-full);padding:.5rem}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden}.card-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.card-body{padding:var(--space-lg)}.card-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border);background:var(--color-bg)}.form-group{margin-bottom:var(--space-md)}.form-label{font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--space-xs);font-weight:600;display:block}.form-input,.form-select,.form-textarea{width:100%;min-height:2.75rem;font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);font-family:var(--font-family);padding:.625rem .875rem}.form-select option,.filter-select option{color:var(--color-text);background-color:var(--color-surface)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring-primary);outline:none}.form-textarea{resize:vertical;min-height:80px}:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert()}:root[data-theme=dark] input[type=month]::-webkit-calendar-picker-indicator{filter:invert()}:root[data-theme=dark] input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert()}:root[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{filter:invert()}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) input[type=date]::-webkit-calendar-picker-indicator{filter:invert()}:root:not([data-theme=light]) input[type=month]::-webkit-calendar-picker-indicator{filter:invert()}:root:not([data-theme=light]) input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert()}:root:not([data-theme=light]) input[type=time]::-webkit-calendar-picker-indicator{filter:invert()}}.form-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--space-xs)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--space-xs)}.checkbox-group{align-items:center;gap:var(--space-sm);cursor:pointer;display:flex}.checkbox-group input[type=checkbox]{width:1.125rem;height:1.125rem;accent-color:var(--color-primary)}.badge{font-size:var(--font-size-xs);border-radius:var(--radius-full);align-items:center;padding:.125rem .5rem;font-weight:600;line-height:1.4;display:inline-flex}.badge-primary{background-color:var(--color-primary-soft);color:var(--color-primary)}.badge-success{background-color:var(--color-success-soft);color:var(--color-success-badge)}.badge-warning{background-color:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-soft);color:var(--color-danger)}.badge-info{background-color:var(--color-info-soft);color:var(--color-info)}.alert{border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--space-md);padding:.75rem 1rem}.alert-danger,.banner-danger{background-color:var(--banner-danger-bg);color:var(--banner-danger-text);border-left:4px solid var(--color-danger)}.alert-success,.banner-success{background-color:var(--banner-success-bg);color:var(--banner-success-text);border-left:4px solid var(--color-success)}.alert-warning,.banner-warning{background-color:var(--banner-warn-bg);color:var(--banner-warn-text);border-left:4px solid var(--color-warning)}.alert-info,.banner-info{background-color:var(--banner-info-bg);color:var(--banner-info-text);border-left:4px solid var(--color-info)}.banner-info,.banner-warning,.banner-success,.banner-danger{border-radius:var(--radius-sm);padding:.75rem 1rem}.balance-positive,.balance-negative,.balance-zero,.amount{font-variant-numeric:tabular-nums}.balance-positive{color:var(--color-success)}.balance-negative{color:var(--color-danger)}.balance-zero{color:var(--color-text-secondary)}.balance-below-threshold{color:var(--color-warning)}.list-item{padding:var(--space-md);border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.list-item:last-child{border-bottom:none}.list-item:hover{background-color:var(--color-surface-hover)}.list-item:active{background-color:var(--color-bg)}.section-title{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--space-md);font-weight:700}.section-subtitle{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-sm);margin-top:var(--space-lg);font-weight:700}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-secondary)}.empty-state-icon{margin-bottom:var(--space-md);font-size:3rem}.empty-state-text{font-size:var(--font-size-sm)}.loading{padding:var(--space-2xl);justify-content:center;align-items:center;display:flex}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:2rem;height:2rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.meal-icons{gap:var(--space-xs);display:flex}.meal-icon{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;font-size:var(--font-size-xs);justify-content:center;align-items:center;font-weight:600;display:flex}.meal-icon.active{background-color:var(--color-primary);color:#fff}.meal-icon.inactive{background-color:var(--color-bg);color:var(--color-text-light);border:1px solid var(--color-border)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-muted{color:var(--color-text-secondary)}.text-bold{font-weight:700}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.ml-sm{margin-left:var(--space-sm)}.ml-md{margin-left:var(--space-md)}.mr-sm{margin-right:var(--space-sm)}.mr-md{margin-right:var(--space-md)}.flex{display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}@media (width>=640px){.page-content{padding:var(--space-lg)}}.sr-only,.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}:focus-visible{outline:3px solid var(--color-focus,#2563eb);outline-offset:2px;border-radius:.25rem}:focus:not(:focus-visible){outline:none}@media (hover:none) and (pointer:coarse){button,.btn,a.btn,input[type=submit],input[type=button],input[type=checkbox],input[type=radio],select,.icon-btn,.nav-link,.notif-item{min-width:44px;min-height:44px}button.btn-sm,.btn-sm{min-height:40px}p a,li a,span a{min-width:auto;min-height:auto}}.icon-btn{cursor:pointer;border-radius:var(--radius-sm,.375rem);min-width:44px;min-height:44px;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--color-surface-hover,#0000000d)}[role=alert]{position:relative}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{box-shadow:0 0 0 1px var(--color-danger,#dc2626);border-color:var(--color-danger,#dc2626)!important}.form-error{color:var(--color-danger,#dc2626);margin-top:.25rem;font-size:.8125rem;display:block}.form-hint{color:var(--color-text-secondary,#57534e);margin-top:.25rem;font-size:.8125rem;display:block}.table-responsive{-webkit-overflow-scrolling:touch;scrollbar-width:thin;width:100%;display:block;overflow-x:auto}.table-responsive table{width:100%;min-width:520px}@media (width<=640px){table{-webkit-overflow-scrolling:touch;max-width:100%;display:block;overflow-x:auto}}.filter-bar,.toolbar,.btn-group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-bar>*,.toolbar>*{flex:none}.filter-bar input,.filter-bar select,.toolbar input,.toolbar select{flex:160px;min-width:0}@media (width<=360px){.container,.page-container,main{padding-left:.75rem;padding-right:.75rem}h1{font-size:1.35rem}h2{font-size:1.15rem}.btn{padding:.5rem .875rem;font-size:.875rem}.card{padding:.75rem}.stat-value{font-size:1.35rem!important}}.break-words{overflow-wrap:anywhere;word-break:break-word}
