.toast-container{position:fixed;top:20px;right:20px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:10px;max-width:calc(100vw - 40px)}.toast{min-width:320px;max-width:420px;padding:14px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg-secondary) 86%,transparent);color:var(--text-primary);box-shadow:var(--shadow-lg);position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm-plus);animation:slideIn .22s ease-out;border-left:4px solid var(--accent-color);border:1px solid color-mix(in srgb,var(--border-color) 35%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overflow:hidden}.toast:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:color-mix(in srgb,var(--accent-color) 65%,transparent);transform-origin:left;animation:toastProgress 5s linear forwards}.toast.success{border-left-color:var(--color-success);--accent-color: var(--color-success)}.toast.error{border-left-color:var(--color-danger);--accent-color: var(--color-danger)}.toast.info{border-left-color:var(--color-info);--accent-color: var(--color-info)}.toast.warning{border-left-color:var(--color-warning);--accent-color: var(--color-warning)}.toast-content{flex:1;font-size:var(--font-size-base);line-height:1.35}.toast-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:var(--font-size-xl);line-height:1}.toast-close:hover{background:var(--hover-bg);color:var(--text-primary)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}.toast:after{animation:none}}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);cursor:pointer;transition:all var(--transition-normal)}.theme-toggle:hover{background-color:var(--bg-tertiary);transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.theme-toggle svg{width:20px;height:20px}.spinner-container{display:flex;align-items:center;justify-content:center}.loading-spinner{border-radius:var(--radius-full);border-style:solid;border-color:var(--border-color);border-top-color:var(--color-primary);animation:spin .8s linear infinite}.loading-spinner--sm{width:16px;height:16px;border-width:2px}.loading-spinner--md{width:24px;height:24px;border-width:3px}.loading-spinner--lg{width:40px;height:40px;border-width:3px}.spinner-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}.workspace-switcher{position:relative;margin:8px 12px 4px}.ws-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-primary);font-size:var(--font-size-sm-plus);font-weight:600}.ws-trigger:hover{border-color:var(--color-primary);background:var(--hover-bg)}.ws-trigger-icon{width:24px;height:24px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-size-xs);font-weight:800;flex-shrink:0}.ws-trigger-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-trigger-chevron{display:flex;align-items:center;color:var(--text-tertiary);transition:transform var(--transition-fast)}.ws-trigger-chevron.open{transform:rotate(180deg)}.ws-dropdown{position:fixed;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-panel);padding:6px;max-height:400px;display:flex;flex-direction:column;overflow:hidden}.ws-dropdown-scroll{overflow-y:auto;flex:1;min-height:0}.ws-dropdown-footer{flex-shrink:0}.ws-dropdown-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:6px 8px 4px}.ws-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .12s ease;color:var(--text-primary);font-size:var(--font-size-sm-plus);text-align:left}.ws-item:hover{background:var(--hover-bg)}.ws-item.active{background:#60a5fa1f}.ws-item-icon{width:28px;height:28px;border-radius:var(--radius-md);background:var(--border-color);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:800;color:var(--text-secondary);flex-shrink:0}.ws-item.active .ws-item-icon{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff}.ws-item-info{flex:1;min-width:0}.ws-item-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-item-role{font-size:var(--font-size-xs);color:var(--text-tertiary)}.ws-item-check{color:var(--color-primary);flex-shrink:0}.ws-divider{height:1px;background:var(--border-light);margin:4px 0}.ws-footer-actions{display:flex;flex-direction:column;gap:6px}.ws-new-form{display:flex;flex-direction:column;gap:8px;padding:4px 0}.ws-new-input{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:var(--font-size-base);outline:none}.ws-new-input:focus{border-color:var(--color-primary)}.ws-new-input::placeholder{color:var(--text-tertiary)}.ws-new-actions{display:flex;gap:6px}.ws-new-cancel{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm-plus);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.ws-new-cancel:hover{background:var(--hover-bg);color:var(--text-primary)}.ws-new-btn{flex:1;padding:8px 12px;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--font-size-sm-plus);font-weight:600;cursor:pointer;transition:opacity var(--transition-fast)}.ws-new-btn:hover{opacity:.9}.ws-new-btn:disabled{opacity:.5;cursor:not-allowed}.ws-create-trigger{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 12px;background:none;border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;color:var(--color-primary);font-size:var(--font-size-base);font-weight:600;transition:all var(--transition-fast)}.ws-create-trigger:hover{background:var(--hover-bg);border-color:var(--color-primary)}.ws-create-trigger:disabled{opacity:.5;cursor:not-allowed}.ws-demo-trigger{color:var(--text-secondary);border-color:var(--border-light)}.ws-demo-trigger:hover{color:var(--color-primary);border-color:var(--color-primary);background:#667eea0d}.ws-switching{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;font-size:var(--font-size-sm-plus);color:var(--text-secondary)}.mode-switcher{position:relative;margin:0 12px 8px}.mode-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);color:var(--text-primary);font-size:var(--font-size-sm-plus);font-weight:600}.mode-trigger:hover{border-color:var(--color-primary);background:var(--hover-bg)}.mode-trigger-icon{display:flex;align-items:center;justify-content:center;color:var(--color-primary);flex-shrink:0}.mode-trigger-icon svg{width:16px;height:16px}.mode-trigger-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-trigger-chevron{display:flex;align-items:center;color:var(--text-tertiary);transition:transform var(--transition-fast)}.mode-trigger-chevron.open{transform:rotate(180deg)}.mode-dropdown{position:fixed;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-panel);padding:6px;max-height:400px;overflow-y:auto}.mode-dropdown-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:6px 8px 4px}.mode-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;background:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .12s ease;color:var(--text-primary);font-size:var(--font-size-sm-plus);text-align:left}.mode-item:hover{background:var(--hover-bg)}.mode-item.active{background:#60a5fa1f}.mode-item-icon{display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.mode-item-icon svg{width:18px;height:18px}.mode-item.active .mode-item-icon{color:var(--color-primary)}.mode-item-info{flex:1;min-width:0}.mode-item-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-item-desc{font-size:var(--font-size-xs);color:var(--text-tertiary);line-height:1.3;margin-top:1px}.mode-item-check{color:var(--color-primary);flex-shrink:0}.mode-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;margin:0 12px 4px;background:#60a5fa14;border:1px solid rgba(96,165,250,.2);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:600;color:var(--color-primary)}.mode-badge-icon{display:flex;align-items:center}.mode-badge-icon svg{width:12px;height:12px}.sidebar{width:240px;min-width:240px;height:100vh;background-color:var(--bg-secondary);border-right:1px solid var(--border-light);display:grid;grid-template-rows:auto auto auto 1fr auto;position:fixed;left:0;top:0;z-index:var(--z-dropdown);overflow:visible;transition:width var(--transition-normal),min-width var(--transition-normal)}.sidebar.collapsed{width:82px;min-width:82px}.sidebar-header{display:flex;align-items:center;padding:20px 16px;border-bottom:1px solid var(--color-border);height:80px}.sidebar-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary);overflow:hidden}.sidebar-logo img{width:48px;height:48px;flex-shrink:0;border-radius:var(--radius-md);object-fit:contain}.sidebar-title{font-size:var(--font-size-lg);font-weight:700;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap}.sidebar.collapsed .sidebar-title{display:none}.sidebar-nav{overflow-y:auto;overflow-x:hidden;padding:8px 0 100px;min-height:0;max-height:calc(100vh - 200px)}.nav-group{position:relative;margin-bottom:4px}.nav-group[data-section=main] .nav-group-header{color:var(--color-primary)}.nav-group[data-section=main] .nav-group-header:hover{color:#93bbfd}.nav-group[data-section=main].active .nav-group-header{color:var(--color-primary)}.nav-group[data-section=main] .nav-item.active{border-left-color:var(--color-primary);background-color:#60a5fa1f;color:var(--color-primary)}.nav-group[data-section=planning] .nav-group-header{color:#a78bfa}.nav-group[data-section=planning] .nav-group-header:hover{color:#c4b5fd}.nav-group[data-section=planning].active .nav-group-header{color:#a78bfa}.nav-group[data-section=system] .nav-group-header{color:#94a3b8}.nav-group[data-section=system] .nav-group-header:hover{color:#cbd5e1}.nav-group[data-section=system].active .nav-group-header{color:#94a3b8}.nav-group[data-section=system] .nav-item.active{border-left-color:#94a3b8;background-color:#94a3b81f;color:#94a3b8}.nav-group-header{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--transition-fast)}.nav-group-header:hover{background-color:var(--hover-bg);color:var(--text-primary)}.nav-group.active .nav-group-header{color:var(--color-primary)}.nav-group-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-group-label{flex:1;text-align:left;white-space:nowrap}.nav-group-chevron{display:flex;align-items:center;color:var(--text-tertiary);transition:transform var(--transition-fast)}.nav-group-header.expanded .nav-group-chevron{color:var(--text-secondary)}.nav-group-items{padding:4px 0 8px}.nav-subgroup{margin-top:2px}.nav-subgroup-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 12px 5px 38px;margin-left:12px;background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.6px;transition:color var(--transition-fast)}.nav-subgroup-header:hover,.nav-subgroup.active .nav-subgroup-header,.nav-subgroup-header.expanded{color:var(--text-secondary)}.nav-subgroup[data-subgroup=planning-schedule] .nav-subgroup-header{color:#2dd4bf}.nav-subgroup[data-subgroup=planning-schedule] .nav-subgroup-header:hover{color:#5eead4}.nav-subgroup[data-subgroup=planning-schedule] .nav-item.active{border-left-color:#2dd4bf;background-color:#2dd4bf1f;color:#2dd4bf}.nav-subgroup[data-subgroup=planning-debt] .nav-subgroup-header{color:#fb7185}.nav-subgroup[data-subgroup=planning-debt] .nav-subgroup-header:hover{color:#fda4af}.nav-subgroup[data-subgroup=planning-debt] .nav-item.active{border-left-color:#fb7185;background-color:#fb71851f;color:#fb7185}.nav-subgroup[data-subgroup=planning-forecast] .nav-subgroup-header{color:var(--color-warning)}.nav-subgroup[data-subgroup=planning-forecast] .nav-subgroup-header:hover{color:#fcd34d}.nav-subgroup[data-subgroup=planning-forecast] .nav-item.active{border-left-color:var(--color-warning);background-color:#fbbf241f;color:var(--color-warning)}.nav-subgroup[data-subgroup=planning-markets] .nav-subgroup-header{color:#a78bfa}.nav-subgroup[data-subgroup=planning-markets] .nav-subgroup-header:hover{color:#c4b5fd}.nav-subgroup[data-subgroup=planning-markets] .nav-item.active{border-left-color:#a78bfa;background-color:#a78bfa1f;color:#a78bfa}.nav-subgroup[data-subgroup=planning-household] .nav-subgroup-header{color:var(--color-success)}.nav-subgroup[data-subgroup=planning-household] .nav-subgroup-header:hover{color:#6ee7b7}.nav-subgroup[data-subgroup=planning-household] .nav-item.active{border-left-color:var(--color-success);background-color:#34d3991f;color:var(--color-success)}.nav-subgroup-chevron{display:flex;align-items:center;margin-right:4px}.nav-subgroup-items{padding:2px 0 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 38px;color:var(--text-secondary);text-decoration:none;font-size:var(--font-size-sm-plus);font-weight:500;transition:all var(--transition-fast);border-left:2px solid transparent;margin-left:12px}.nav-item:hover{background-color:var(--hover-bg);color:var(--text-primary)}.nav-item.active{background-color:#60a5fa1f;color:var(--color-primary);border-left-color:var(--color-primary)}.nav-item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-item-label{white-space:nowrap}.sidebar.collapsed .nav-group-header{justify-content:center;padding:12px;cursor:default}.sidebar.collapsed .nav-group-label,.sidebar.collapsed .nav-group-chevron{display:none}.nav-group-collapsed{display:flex;flex-direction:column;gap:2px;padding:4px 0;position:relative}.nav-item-collapsed{display:flex;align-items:center;justify-content:center;padding:12px;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);margin:0 6px;transition:all var(--transition-fast);border-left:2px solid transparent}.nav-item-collapsed:hover{background-color:var(--hover-bg);color:var(--text-primary)}.nav-item-collapsed.active{background-color:#60a5fa1f;color:var(--color-primary);border-left-color:var(--color-primary)}.nav-group-tooltip{display:none;position:absolute;left:100%;top:0;min-width:160px;background-color:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px 0;z-index:var(--z-modal);margin-left:8px}.sidebar.collapsed .nav-group:hover .nav-group-tooltip{display:block}.tooltip-header{padding:8px 12px;font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--border-light);margin-bottom:4px}.tooltip-item{display:block;padding:8px 12px;color:var(--text-secondary);text-decoration:none;font-size:var(--font-size-sm-plus);transition:all var(--transition-fast)}.tooltip-item:hover{background-color:var(--hover-bg);color:var(--text-primary)}.tooltip-item.active{background-color:#60a5fa1f;color:var(--color-primary)}.sidebar-footer{padding:12px;border-top:1px solid var(--border-light);background-color:var(--bg-secondary)}.sidebar-collapse-circle{position:absolute;top:50%;right:-14px;transform:translateY(-50%);width:28px;height:28px;border-radius:var(--radius-full);background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:calc(var(--z-dropdown) + 2);box-shadow:2px 0 6px #00000026;transition:all var(--transition-normal);padding:0}.sidebar-collapse-circle:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:2px 0 10px #60a5fa4d}.sidebar-role-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 12px 12px;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;transition:all var(--transition-normal)}.sidebar-role-badge.role-admin{background:linear-gradient(135deg,rgba(251,191,36,.15) 0%,var(--color-warning-bg2) 100%);border:1px solid rgba(251,191,36,.3);color:var(--color-warning)}.sidebar-role-badge.role-member{background:var(--color-primary-bg2);border:1px solid rgba(59,130,246,.3);color:var(--color-primary)}.sidebar-role-badge.role-viewer{background:#6b728026;border:1px solid rgba(107,114,128,.3);color:var(--text-tertiary)}.sidebar-role-badge .role-icon{font-size:var(--font-size-md);line-height:1}.sidebar-role-badge .role-text{flex:1}.sidebar-role-badge .read-only-tag{font-size:var(--font-size-sm);padding:2px 6px;background:var(--color-danger-bg2);border:1px solid rgba(239,68,68,.4);color:var(--color-danger);border-radius:var(--radius-sm);font-weight:700}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;bottom:0;transform:translate(-100%);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);transition:transform var(--transition-slow)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed,.sidebar.collapsed.mobile-open{width:240px;min-width:240px}.sidebar-collapse-circle{display:none}.sidebar.mobile-open.collapsed .nav-group-label,.sidebar.mobile-open.collapsed .nav-group-chevron{display:inline}.sidebar.mobile-open.collapsed .nav-group-header{justify-content:flex-start}.sidebar.mobile-open.collapsed .nav-group-items{display:block}.sidebar.mobile-open.collapsed .nav-group-collapsed{display:none}}.mobile-tab-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:1px solid var(--border-color);padding:4px 0;padding-bottom:calc(4px + env(safe-area-inset-bottom,0px));z-index:var(--z-dropdown);justify-content:space-around;align-items:center}@media(max-width:768px){.mobile-tab-bar{display:flex}}.mobile-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-2xs);font-weight:500;border-radius:var(--radius-md);transition:color var(--transition-fast);min-width:56px}.mobile-tab:hover{color:var(--text-primary)}.mobile-tab.active{color:var(--color-primary)}.mobile-tab span{line-height:1}.mobile-more-overlay{display:none;position:fixed;inset:0;background:#0006;z-index:var(--z-mobile-nav);align-items:flex-end;justify-content:center}@media(max-width:768px){.mobile-more-overlay{display:flex}}.mobile-more-menu{background:var(--bg-primary);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);padding:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));width:100%;max-height:60vh;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}.mobile-more-link{display:flex;align-items:center;justify-content:center;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.mobile-more-link:hover{background:var(--hover-bg)}.mobile-more-link.active{border-color:var(--color-primary);color:var(--color-primary);background:#3b82f61a}.offline-indicator{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:var(--font-size-sm);font-weight:500;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:var(--z-toast);justify-content:center;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.offline-indicator.offline{background:var(--danger-color);color:#fff}.offline-indicator.syncing{background:var(--warning-color);color:var(--text-primary)}.offline-badge{background:#ffffff40;padding:2px 8px;border-radius:var(--radius-lg);font-size:var(--font-size-xs)}.offline-retry-btn{background:#fff3;border:1px solid rgba(255,255,255,.4);color:inherit;padding:2px 10px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;font-weight:600}.offline-retry-btn:hover{background:#ffffff59}.offline-indicator .spin{animation:spin 1s linear infinite}.fab-button{display:none;position:fixed;bottom:calc(88px + env(safe-area-inset-bottom,0px));right:16px;width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;border:none;box-shadow:var(--shadow-button-glow);cursor:pointer;z-index:var(--z-dropdown);align-items:center;justify-content:center;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.fab-button:active{transform:scale(.92)}@media(max-width:768px){.fab-button{display:flex}}.fab-overlay{position:fixed;inset:0;background:#00000080;z-index:var(--z-panel);display:flex;align-items:flex-end;justify-content:center;animation:fabFadeIn .2s ease}@keyframes fabFadeIn{0%{opacity:0}to{opacity:1}}.fab-form{background:var(--bg-primary);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));width:100%;max-width:500px;max-height:85vh;overflow-y:auto;animation:fabSlideUp .25s ease}@keyframes fabSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fab-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.fab-form-header h3{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0}.fab-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.fab-close:hover{background:var(--hover-bg)}.fab-field{margin-bottom:12px}.fab-field label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.fab-field input,.fab-field select{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--input-bg);color:var(--text-primary);font-size:var(--font-size-md);min-height:48px}.fab-field input:focus,.fab-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.fab-field input[type=number]{font-size:var(--font-size-2xl);font-weight:600;text-align:center;min-height:56px}.fab-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fab-submit{width:100%;padding:14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--font-size-md);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;min-height:52px;transition:background var(--transition-fast)}.fab-submit:hover{background:var(--color-primary-dark)}.fab-submit:active{transform:scale(.98)}.fab-submit:disabled{opacity:.6;cursor:not-allowed}.force-password-modal-overlay{position:fixed;inset:0;background:#000000f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:var(--z-critical);padding:20px;animation:fadeIn .3s ease-in-out}.force-password-modal-content{background:var(--color-surface);border-radius:var(--radius-lg);max-width:500px;width:100%;box-shadow:var(--shadow-lg);animation:slideUp .3s ease-out;border:2px solid var(--color-warning)}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.force-password-modal-header{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning) 100%);color:var(--text-primary);padding:24px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;text-align:center}.force-password-modal-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:700}.force-password-modal-header .modal-subtitle{margin:12px 0 0;font-size:var(--font-size-base);line-height:1.5;color:#000c;font-weight:500}.force-password-form{padding:24px}.force-password-form .form-group{margin-bottom:20px}.force-password-form label{display:block;margin-bottom:6px;font-weight:600;color:var(--color-text)}.force-password-form .required{color:var(--color-danger)}.force-password-form input[type=password]{width:100%;padding:12px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-size:var(--font-size-md);transition:all var(--transition-normal)}.force-password-form input[type=password]:focus{outline:none;border-color:var(--color-warning);box-shadow:0 0 0 3px #fbbf241a}.force-password-form input[type=password]:disabled{opacity:.6;cursor:not-allowed}.password-requirements{margin-top:10px;padding:12px;background:var(--color-background);border-radius:var(--radius-md);border:1px solid var(--color-border)}.requirements-label{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-muted);margin:0 0 8px}.password-requirements ul{list-style:none;padding:0;margin:0}.password-requirements li{font-size:var(--font-size-base);padding:4px 0;color:var(--color-text-muted);transition:color var(--transition-normal)}.password-requirements li.requirement-met{color:var(--color-success);font-weight:600}.error-text{display:block;color:var(--color-danger);font-size:var(--font-size-base);margin-top:6px}.error-message{background:#ef44441a;border:1px solid var(--color-danger);color:var(--color-danger);padding:12px;border-radius:var(--radius-md);margin-bottom:16px;font-size:var(--font-size-base)}.force-password-modal-overlay .btn-primary{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning) 100%);color:var(--text-primary);border:none;padding:14px 24px;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:700;cursor:pointer;transition:all var(--transition-normal);box-shadow:0 2px 8px #fbbf244d}.force-password-modal-overlay .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-warning) 0%,var(--badge-warning-text) 100%);transform:translateY(-1px);box-shadow:0 4px 12px #fbbf2466}.force-password-modal-overlay .btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-block{width:100%}.security-notice{background:#3b82f61a;border:1px solid var(--color-info);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:16px 24px}.security-notice p{margin:0;font-size:var(--font-size-base);line-height:1.6;color:var(--color-text)}.security-notice strong{color:var(--color-info);font-weight:700}@media(max-width:640px){.force-password-modal-overlay{padding:10px}.force-password-modal-header{padding:20px}.force-password-modal-header h2{font-size:var(--font-size-xl)}.force-password-form{padding:20px}.security-notice{padding:14px 20px}}.cmd-palette-backdrop{position:fixed;inset:0;z-index:var(--z-command-palette);background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;animation:cmd-fade-in .12s ease-out}@keyframes cmd-fade-in{0%{opacity:0}to{opacity:1}}.cmd-palette{width:100%;max-width:600px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden;animation:cmd-slide-in .15s ease-out}@keyframes cmd-slide-in{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.cmd-palette-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-color)}.cmd-palette-search-icon{color:var(--text-secondary);flex-shrink:0}.cmd-palette-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--font-size-md);font-family:inherit}.cmd-palette-input::placeholder{color:var(--text-secondary)}.cmd-palette-clear{background:var(--bg-secondary);border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center}.cmd-palette-clear:hover{color:var(--text-primary)}.cmd-palette-kbd{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);padding:2px 6px;font-family:inherit;flex-shrink:0}.cmd-palette-results{max-height:400px;overflow-y:auto;padding:4px 0}.cmd-palette-group{padding:4px 0}.cmd-palette-group-label{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);padding:8px 16px 4px}.cmd-palette-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .08s}.cmd-palette-item:hover,.cmd-palette-item.selected{background:var(--bg-secondary, rgba(102, 126, 234, .1))}.cmd-palette-item.selected{background:#667eea26}.cmd-palette-item-icon{color:var(--text-secondary);flex-shrink:0;display:flex;align-items:center;width:20px;justify-content:center}.cmd-palette-item.selected .cmd-palette-item-icon{color:var(--color-primary)}.cmd-palette-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cmd-palette-item-label{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmd-palette-item-desc{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmd-palette-type-badge{display:inline;font-size:var(--font-size-sm);font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.3px}.cmd-palette-item-meta{font-size:var(--font-size-sm-plus);color:var(--text-secondary);font-weight:500;flex-shrink:0;font-variant-numeric:tabular-nums}.cmd-palette-enter-hint{color:var(--text-secondary);flex-shrink:0;margin-left:4px}.cmd-palette-recent-remove{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;opacity:0;transition:opacity .1s,color .1s;flex-shrink:0}.cmd-palette-item:hover .cmd-palette-recent-remove,.cmd-palette-item.selected .cmd-palette-recent-remove{opacity:1}.cmd-palette-recent-remove:hover{color:var(--text-primary);background:#ffffff1a}.cmd-palette-clear-link{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;padding:0;font-weight:500}.cmd-palette-clear-link:hover{color:var(--text-primary)}.cmd-palette-loading,.cmd-palette-empty{padding:20px 16px;text-align:center;color:var(--text-secondary);font-size:var(--font-size-base)}.cmd-palette-footer{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--border-color);font-size:var(--font-size-sm);color:var(--text-secondary)}.cmd-palette-footer kbd{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:1px 5px;font-size:var(--font-size-xs);font-family:inherit;margin-right:3px}.cmd-palette-results::-webkit-scrollbar{width:6px}.cmd-palette-results::-webkit-scrollbar-track{background:transparent}.cmd-palette-results::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm)}@media(max-width:640px){.cmd-palette-backdrop{padding-top:5vh;padding-left:12px;padding-right:12px}.cmd-palette{max-width:100%}.cmd-palette-results{max-height:50vh}.cmd-palette-footer{display:none}}.setup-wizard-overlay{position:fixed;inset:0;z-index:var(--z-context-menu);display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.setup-wizard{position:relative;width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:32px}.wizard-progress{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.wizard-dot{width:10px;height:10px;border-radius:var(--radius-full);background:var(--border-color);transition:all var(--transition-normal)}.wizard-dot.active{background:var(--color-primary);transform:scale(1.3)}.wizard-dot.completed{background:var(--color-primary);opacity:.5}.wizard-skip-all{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.wizard-skip-all:hover{color:var(--text-primary)}.wizard-error{padding:8px 12px;margin-bottom:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-sm-plus)}.wizard-step{display:flex;flex-direction:column;gap:20px}.wizard-welcome,.wizard-done{text-align:center;padding:16px 0}.wizard-welcome h1,.wizard-done h1{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);margin:0}.wizard-welcome p,.wizard-done p{color:var(--text-secondary);line-height:1.6;margin:0}.wizard-subtitle{font-size:var(--font-size-sm-plus)!important;color:var(--text-tertiary)!important}.wizard-icon-large{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 16px;border-radius:var(--radius-full);background:#3b82f61a;color:var(--color-primary)}.wizard-icon-large.wizard-success{background:#10b9811a;color:var(--color-success)}.wizard-step-header{text-align:center}.wizard-step-header svg{color:var(--color-primary);margin-bottom:8px}.wizard-step-header h2{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin:0 0 4px}.wizard-step-header p{color:var(--text-secondary);font-size:var(--font-size-base);margin:0}.wizard-form{display:flex;flex-direction:column;gap:14px}.wizard-form .form-group{display:flex;flex-direction:column;gap:4px}.wizard-form label{font-size:var(--font-size-sm-plus);font-weight:600;color:var(--text-secondary)}.wizard-form input,.wizard-form select{padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-base)}.wizard-form input:focus,.wizard-form select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.setup-wizard .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wizard-templates{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}.wizard-template-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:border-color var(--transition-fast)}.wizard-template-card:hover{border-color:var(--color-primary)}.wizard-template-card.selected{border-color:var(--color-primary);background:#3b82f60d}.wizard-template-card input[type=radio]{display:none}.template-info{flex:1;display:flex;flex-direction:column;gap:2px}.template-info strong{font-size:var(--font-size-base);color:var(--text-primary)}.template-info span{font-size:var(--font-size-sm);color:var(--text-secondary)}.template-check{color:var(--color-primary);flex-shrink:0}.wizard-empty{text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm-plus);padding:24px 0}.wizard-actions{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:8px}.wizard-actions .btn-primary{display:inline-flex;align-items:center;gap:6px}.wizard-actions .btn-secondary{display:inline-flex;align-items:center;gap:4px}.btn-ghost{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:var(--font-size-sm-plus);padding:6px 10px;border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:4px;transition:color var(--transition-fast)}.btn-ghost:hover{color:var(--text-secondary)}.btn-lg{padding:10px 24px!important;font-size:var(--font-size-md)!important}@media(max-width:600px){.setup-wizard{padding:20px;border-radius:var(--radius-lg)}.setup-wizard .form-row{grid-template-columns:1fr}.wizard-actions{flex-wrap:wrap}}.help-panel{position:fixed;top:0;right:0;bottom:0;width:320px;max-width:90vw;background:var(--bg-primary);border-left:1px solid var(--border-color);box-shadow:-4px 0 24px #0003;z-index:var(--z-dropdown);transform:translate(100%);transition:transform .25s ease;display:flex;flex-direction:column;overflow:hidden}.help-panel.open{transform:translate(0)}.help-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);flex-shrink:0}.help-panel-title{display:flex;align-items:center;gap:8px;color:var(--text-primary)}.help-panel-title h3{margin:0;font-size:var(--font-size-md);font-weight:700}.help-panel-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.help-panel-close:hover{color:var(--text-primary)}.help-panel-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.help-section h4{font-size:var(--font-size-sm-plus);font-weight:700;color:var(--text-primary);margin:0 0 6px;text-transform:uppercase;letter-spacing:.3px}.help-section p{font-size:var(--font-size-sm-plus);line-height:1.6;color:var(--text-secondary);margin:0}.help-tips{background:#3b82f60d;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-md);padding:12px}.help-tips-header{display:flex;align-items:center;gap:6px;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.help-tips ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.help-tips li{font-size:var(--font-size-sm);line-height:1.5;color:var(--text-secondary);padding-left:12px;position:relative}.help-tips li:before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:var(--radius-full);background:var(--color-primary)}.help-related h4{font-size:var(--font-size-sm);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 8px}.help-related-links{display:flex;flex-wrap:wrap;gap:6px}.help-related-link{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-primary);background:#3b82f614;border-radius:var(--radius-sm);text-decoration:none;transition:background var(--transition-fast)}.help-related-link:hover{background:#3b82f626}@media(max-width:600px){.help-panel{width:100%;max-width:100%}}.layout{min-height:100vh;display:flex;flex-direction:column}.layout-sidebar{flex-direction:row}.layout-sidebar .layout-main{flex:1;margin-left:240px;display:flex;flex-direction:column;min-height:100vh;transition:margin-left var(--transition-normal)}.layout-sidebar.sidebar-collapsed .layout-main{margin-left:60px}.header{background-color:var(--bg-primary);border-bottom:1px solid var(--border-light);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:var(--z-header)}.header-content{display:flex;align-items:center;justify-content:flex-end;padding:10px 16px;gap:var(--spacing-md)}.mobile-menu-toggle{display:none;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:8px;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.mobile-menu-toggle:hover{background-color:var(--hover-bg)}.header-right{display:flex;align-items:center;gap:var(--spacing-md)}.logout-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:var(--font-size-sm-plus)}.logout-btn span{display:inline}.cmd-k-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:var(--font-size-sm-plus);cursor:pointer}.cmd-k-hint{background:var(--bg-secondary, rgba(255,255,255,.08));border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-size-xs);padding:1px 5px;font-family:inherit;color:var(--text-secondary);margin-left:2px}.quick-links-dropdown{position:relative}.quick-links-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:var(--font-size-sm-plus)}.quick-links-menu{position:absolute;top:calc(100% + 8px);right:0;background-color:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;padding:8px;z-index:var(--z-modal)}.quick-link{display:flex;align-items:center;gap:10px;padding:10px 12px;color:var(--text-primary);text-decoration:none;border-radius:var(--radius-md);font-size:var(--font-size-base);transition:background-color var(--transition-fast)}.quick-link:hover{background-color:var(--hover-bg)}.quick-link-icon{font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;width:24px}.main{flex:1;padding:var(--spacing-lg);background-color:var(--bg-primary)}.main-content{max-width:1400px;margin:0 auto}.footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-light);padding:var(--spacing-md) var(--spacing-lg);margin-top:auto}.footer p{margin:0;text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm)}.mobile-menu-backdrop{position:fixed;inset:0;background:#00000080;z-index:var(--z-dropdown);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.layout-sidebar .layout-main,.layout-sidebar.sidebar-collapsed .layout-main{margin-left:0}.mobile-menu-toggle{display:flex}.header-content{justify-content:space-between}.logout-btn span{display:none}.main{padding:var(--spacing-md);padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.footer{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}}.video-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:1}.video-background__video{position:absolute;top:50%;left:50%;min-width:100%;min-height:100%;width:auto;height:auto;transform:translate(-50%,-50%);object-fit:cover;opacity:0;transition:opacity 1.5s ease-in-out;z-index:1}.video-background__video--loaded{opacity:1}.video-background__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#667eeaa6,#764ba2a6);z-index:2}.video-background__attribution{position:fixed;bottom:12px;left:12px;font-size:var(--font-size-xs);color:#fff9;text-decoration:none;z-index:var(--z-command-palette);transition:color var(--transition-normal)}.video-background__attribution:hover{color:#ffffffe6;text-decoration:underline}[data-theme=dark] .video-background__overlay{background:linear-gradient(135deg,#323c64bf,#3c2850bf)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);padding:var(--spacing-lg);position:relative;overflow:hidden}.auth-card{position:relative;z-index:2;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:450px;padding:var(--spacing-2xl)}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-logo{margin-bottom:var(--spacing-lg)}.auth-logo img{width:120px;height:auto;border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.auth-header h1{color:var(--text-primary);font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs)}.auth-header p{color:var(--text-secondary);font-size:var(--font-size-md)}.auth-header .version{color:var(--text-tertiary);font-size:var(--font-size-sm);margin-top:var(--spacing-xs);font-weight:500}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.auth-form .form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.auth-form label{font-weight:600;color:var(--text-primary);font-size:var(--font-size-base)}.auth-form input{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-md);transition:border-color var(--transition-normal);background:var(--bg-primary);color:var(--text-primary)}.auth-form input:focus{outline:none;border-color:var(--color-primary)}.auth-form input:disabled{background-color:var(--bg-tertiary);cursor:not-allowed}.auth-form small{color:var(--text-secondary);font-size:var(--font-size-sm)}.btn-block{width:100%;padding:var(--spacing-sm);font-size:var(--font-size-md);font-weight:600;margin-top:var(--spacing-xs)}.auth-footer{margin-top:var(--spacing-lg);text-align:center}.auth-footer p{color:var(--text-secondary);font-size:var(--font-size-base);margin:var(--spacing-xs) 0}.auth-footer a{color:var(--color-primary);text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}.error-message{background-color:var(--danger-light);border:1px solid var(--color-danger);color:var(--color-danger);padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-base)}@media(max-width:600px){.auth-card{padding:var(--spacing-lg)}.auth-header h1{font-size:var(--font-size-2xl)}.auth-logo img{width:100px}}.btn-primary,.btn-secondary,.btn-danger,.btn-icon,button:not(.no-animation){transition:all var(--transition-normal)}.btn-icon:hover:not(:disabled){transform:scale(1.2)}.btn-danger:hover:not(:disabled){filter:brightness(1.2)}table tbody tr{transition:background-color var(--transition-normal)}table tbody tr:hover{background:var(--bg-tertiary)}.filter-btn,.tab-btn,.year-btn{transition:all var(--transition-normal)}.filter-btn:hover:not(:disabled),.tab-btn:hover:not(:disabled),.year-btn:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);transform:translateY(-1px)}.card{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.status-badge,.type-badge{transition:transform var(--transition-normal)}.status-badge:hover,.type-badge:hover{transform:scale(1.05)}input:focus,textarea:focus,select:focus{transition:border-color var(--transition-normal),box-shadow var(--transition-normal);border-color:var(--primary-color);box-shadow:var(--shadow-focus)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .4s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.slide-in{animation:slideIn .4s ease-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.pulse{animation:pulse 1.5s ease-in-out infinite}.modal-overlay,.cb-modal-overlay{animation:fadeIn .2s ease-out}.modal,.cb-modal{animation:slideIn .3s ease-out}.planning-page,.documents-page,.expenses-page,.balances-page,.accounts-page,.transactions-page,.admin-page,[class$=-page],[class*=page-container]{animation:fadeIn .5s ease-out}.tab-content{animation:slideIn .4s ease-out}.card,.summary-card,.stat-card,.documents-table,table{animation:fadeIn .4s ease-out}@media(max-width:768px){button,.btn-primary,.btn-secondary,.crypto-btn,[role=button],a.quick-link{min-height:44px;min-width:44px}input,select,textarea{min-height:44px;font-size:16px!important}.responsive-table{display:block}.responsive-table thead{display:none}.responsive-table tbody{display:flex;flex-direction:column;gap:8px}.responsive-table tr{display:flex;flex-wrap:wrap;gap:4px 12px;padding:12px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);align-items:center}.responsive-table td{border:none;padding:2px 0;font-size:.8125rem}.responsive-table td:before{content:attr(data-label);font-weight:600;font-size:.6875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;display:block}.summary-cards,.crypto-summary-cards,.dashboard-summary{grid-template-columns:1fr 1fr!important;gap:8px!important}.page-header{gap:8px}.report-buttons,.button-group,.action-buttons{flex-wrap:wrap}.crypto-modal-content,.modal-content,.confirm-dialog{width:95vw!important;max-width:95vw!important;max-height:90vh;margin:auto}.crypto-tabs,.tab-bar,.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap!important}.crypto-tabs::-webkit-scrollbar,.tab-bar::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}.recharts-responsive-container{max-height:250px!important}.hide-mobile{display:none!important}.mobile-full-width{width:100%!important}}.pull-to-refresh-indicator{display:none;justify-content:center;align-items:center;padding:12px;color:var(--text-secondary);font-size:.75rem;gap:8px}.pull-to-refresh-indicator.visible{display:flex}.pull-to-refresh-indicator .spin{animation:ptr-spin .8s linear infinite}@keyframes ptr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swipe-hint{position:relative;overflow:hidden}.swipe-hint:after{content:"";position:absolute;top:0;right:-60px;bottom:0;width:60px;background:var(--danger-color);display:flex;align-items:center;justify-content:center;transition:right var(--transition-normal)}@media(min-width:769px)and (max-width:1024px){.summary-cards,.crypto-summary-cards{grid-template-columns:repeat(3,1fr)!important}}@media(max-width:480px){.page-header{flex-direction:column;align-items:flex-start}.page-header .header-actions{width:100%;justify-content:flex-start}.summary-cards,.crypto-summary-cards,.dashboard-summary,.stats-grid,.overview-stats,.performance-summary{grid-template-columns:1fr!important}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-secondary: #10b981;--color-danger: #ef4444;--color-warning: #f59e0b;--color-success: #10b981;--color-info: #06b6d4;--color-accent: #8b5cf6;--primary-color: var(--color-primary);--primary-hover: var(--color-primary-dark);--primary-light: rgba(59, 130, 246, .12);--accent-rgb: 59, 130, 246;--success-color: var(--color-success);--success-light: rgba(16, 185, 129, .12);--danger-color: var(--color-danger);--danger-color-dark: #dc2626;--danger-light: rgba(239, 68, 68, .12);--warning-color: var(--color-warning);--warning-light: rgba(245, 158, 11, .12);--info-light: rgba(6, 182, 212, .12);--hover-bg: rgba(59, 130, 246, .08);--card-bg: var(--bg-primary);--input-bg: var(--bg-primary);--bg-disabled: rgba(107, 114, 128, .12);--accent-color: var(--color-primary);--background-primary: var(--bg-primary);--background-secondary: var(--bg-secondary);--background-tertiary: var(--bg-tertiary);--color-income: #059669;--color-expense: #dc2626;--color-asset: #059669;--color-liability: #dc2626;--color-neutral: #6b7280;--bg-primary: #ffffff;--bg-secondary: #f3f4f6;--bg-tertiary: #e5e7eb;--bg-elevated: #ffffff;--text-primary: #111827;--text-secondary: #6b7280;--text-tertiary: #9ca3af;--border-color: #d1d5db;--border-light: #e5e7eb;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 3px rgba(59, 130, 246, .15);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .15);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .3);--shadow-button-glow: 0 4px 12px rgba(59, 130, 246, .25);--spacing-2xs: .125rem;--spacing-xs: .25rem;--spacing-xs-plus: .375rem;--spacing-sm: .5rem;--spacing-sm-plus: .75rem;--spacing-md: 1rem;--spacing-md-plus: 1.25rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--calendar-icon-filter: none;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--z-base: 0;--z-sticky: 10;--z-header: 50;--z-dropdown: 100;--z-mobile-nav: 150;--z-panel: 200;--z-modal-backdrop: 1000;--z-modal: 1000;--z-modal-elevated: 1200;--z-context-menu: 2000;--z-command-palette: 9999;--z-toast: 9999;--z-critical: 10000;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--font-size-2xs: .625rem;--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-sm-plus: .8125rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--color-success-bg: rgba(16, 185, 129, .08);--color-success-bg2: rgba(16, 185, 129, .15);--color-danger-bg: rgba(239, 68, 68, .08);--color-danger-bg2: rgba(239, 68, 68, .15);--color-warning-bg: rgba(245, 158, 11, .08);--color-warning-bg2: rgba(245, 158, 11, .15);--color-info-bg: rgba(6, 182, 212, .08);--color-info-bg2: rgba(6, 182, 212, .15);--color-primary-bg: rgba(59, 130, 246, .06);--color-primary-bg2: rgba(59, 130, 246, .12);--info-color: var(--color-info);--info-bg: var(--color-info-bg);--error-color: var(--color-danger);--error-bg: var(--color-danger-bg);--success-bg: var(--color-success-bg);--warning-bg: var(--color-warning-bg);--danger-bg: var(--color-danger-bg);--text-muted: var(--text-tertiary);--text-income: var(--color-income);--text-expense: var(--color-expense);--text-placeholder: var(--text-tertiary);--color-text: var(--text-primary);--color-text-muted: var(--text-secondary);--color-background: var(--bg-primary);--color-border: var(--border-color);--color-surface: var(--bg-elevated);--color-primary-hover: var(--color-primary-dark);--color-primary-light: var(--primary-light);--color-primary-rgb: var(--accent-rgb);--color-danger-light: var(--danger-light);--color-success-light: var(--success-light);--secondary-color: var(--color-secondary);--bg-hover: var(--hover-bg);--bg-input: var(--input-bg);--bg-input-focus: var(--bg-primary);--table-header-bg: var(--bg-tertiary);--button-bg: var(--bg-tertiary);--chip-bg: var(--bg-tertiary);--spacing-xxl: 2.5rem;--spacing-3xl: 4rem;--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-xs: .125rem;--badge-asset-bg: rgba(5, 150, 105, .12);--badge-asset-text: #059669;--badge-asset-border: rgba(5, 150, 105, .3);--badge-liability-bg: rgba(220, 38, 38, .12);--badge-liability-text: #dc2626;--badge-liability-border: rgba(220, 38, 38, .3);--badge-neutral-bg: rgba(107, 114, 128, .12);--badge-neutral-text: #6b7280;--badge-neutral-border: rgba(107, 114, 128, .3);--badge-warning-bg: rgba(245, 158, 11, .12);--badge-warning-text: #d97706;--badge-warning-border: rgba(245, 158, 11, .3);--badge-info-bg: rgba(59, 130, 246, .12);--badge-info-text: #3b82f6;--badge-info-border: rgba(59, 130, 246, .3)}[data-theme=dark]{--color-primary: #60a5fa;--color-primary-dark: #3b82f6;--color-secondary: #34d399;--color-danger: #f87171;--color-warning: #fbbf24;--color-success: #34d399;--color-info: #06b6d4;--color-accent: #a78bfa;--color-income: #34d399;--color-expense: #f87171;--color-asset: #34d399;--color-liability: #f87171;--color-neutral: #9ca3af;--primary-color: var(--color-primary);--primary-hover: var(--color-primary-dark);--primary-light: rgba(96, 165, 250, .16);--accent-rgb: 96, 165, 250;--success-color: var(--color-success);--success-light: rgba(52, 211, 153, .15);--danger-color: var(--color-danger);--danger-light: rgba(248, 113, 113, .15);--warning-color: var(--color-warning);--warning-light: rgba(251, 191, 36, .15);--info-light: rgba(6, 182, 212, .15);--hover-bg: rgba(255, 255, 255, .06);--card-bg: var(--bg-primary);--input-bg: var(--bg-primary);--bg-disabled: rgba(156, 163, 175, .12);--accent-color: var(--color-primary);--background-primary: var(--bg-primary);--background-secondary: var(--bg-secondary);--background-tertiary: var(--bg-tertiary);--bg-primary: #1a1d24;--bg-secondary: #111318;--bg-tertiary: #252a33;--bg-elevated: #2a2f3a;--text-primary: #f9fafb;--text-secondary: #d1d5db;--text-tertiary: #9ca3af;--border-color: #3d4451;--border-light: #2a2f3a;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6);--shadow-focus: 0 0 0 3px rgba(59, 130, 246, .25);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .4);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .6);--shadow-button-glow: 0 4px 12px rgba(59, 130, 246, .35);--badge-asset-bg: rgba(52, 211, 153, .18);--badge-asset-text: #34d399;--badge-asset-border: rgba(52, 211, 153, .4);--badge-liability-bg: rgba(248, 113, 113, .18);--badge-liability-text: #f87171;--badge-liability-border: rgba(248, 113, 113, .4);--badge-neutral-bg: rgba(156, 163, 175, .18);--badge-neutral-text: #9ca3af;--badge-neutral-border: rgba(156, 163, 175, .4);--badge-warning-bg: rgba(251, 191, 36, .18);--badge-warning-text: #fbbf24;--badge-warning-border: rgba(251, 191, 36, .4);--badge-info-bg: rgba(96, 165, 250, .18);--badge-info-text: #60a5fa;--badge-info-border: rgba(96, 165, 250, .4);--calendar-icon-filter: invert(.8);--color-success-bg: rgba(52, 211, 153, .1);--color-success-bg2: rgba(52, 211, 153, .18);--color-danger-bg: rgba(248, 113, 113, .1);--color-danger-bg2: rgba(248, 113, 113, .18);--color-warning-bg: rgba(251, 191, 36, .1);--color-warning-bg2: rgba(251, 191, 36, .18);--color-info-bg: rgba(6, 182, 212, .1);--color-info-bg2: rgba(6, 182, 212, .18);--color-primary-bg: rgba(96, 165, 250, .08);--color-primary-bg2: rgba(96, 165, 250, .16);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .3)}input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{filter:var(--calendar-icon-filter);cursor:pointer}html{font-size:16px}body{font-family:var(--font-family);color:var(--text-primary);background-color:var(--bg-secondary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2;margin-bottom:var(--spacing-sm);color:var(--text-primary)}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}p{margin-bottom:var(--spacing-sm)}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-light)}.page-header h1{margin:0;font-size:1.25rem;font-weight:600}.header-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center;justify-content:flex-end}.header-actions .btn,.header-actions .btn-primary,.header-actions .btn-secondary,.header-actions .btn-danger{padding:var(--spacing-xs) var(--spacing-sm);font-size:.8125rem;white-space:nowrap}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-normal)}a:hover{color:var(--color-primary-dark)}button{font-family:inherit;cursor:pointer;border:none;background:none;padding:0}.btn,.btn-primary,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs-plus);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:500;font-size:.8125rem;transition:all var(--transition-normal);border:1px solid transparent}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:none;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-button-glow);transform:translateY(-1px);border-color:var(--color-primary-dark)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-tertiary);border-color:var(--text-secondary);box-shadow:var(--shadow-sm)}.btn-secondary:active:not(:disabled){background-color:var(--border-color)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{background-color:var(--danger-color);color:#fff;border-color:var(--danger-color)}.btn-danger:hover:not(:disabled){background-color:var(--danger-color-dark);border-color:var(--danger-color-dark);box-shadow:0 4px 12px #ef444440;transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem}.btn-icon{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;transition:all var(--transition-fast)}.btn-icon:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-icon:disabled{opacity:.6;cursor:not-allowed}.btn-icon.btn-icon-danger:hover:not(:disabled){background:var(--danger-light);color:var(--danger-color)}.btn-icon.btn-icon-primary:hover:not(:disabled){background:var(--primary-light);color:var(--color-primary)}.filter-btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:500;border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-color)}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.filter-btn:disabled{opacity:.6;cursor:not-allowed}.toggle-btn{padding:var(--spacing-xs) var(--spacing-sm);border:none;background:transparent;color:var(--text-secondary);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.toggle-btn:hover{color:var(--text-primary)}.toggle-btn.active{background:var(--color-primary);color:#fff}.error-message{background:var(--danger-light);color:var(--danger-color);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--danger-color) 55%,transparent);margin-bottom:var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.error-dismiss{background:none;border:none;color:inherit;cursor:pointer;font-size:1.2rem;line-height:1;padding:0 2px;opacity:.7;flex-shrink:0}.error-dismiss:hover{opacity:1}.success-message{background:var(--success-light);color:var(--success-color);padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--success-color) 55%,transparent);margin-bottom:var(--spacing-lg)}.card{background-color:var(--card-bg);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);box-shadow:none;transition:all var(--transition-normal);width:100%;box-sizing:border-box}.card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-color);transform:translateY(-1px)}.card-header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.summary-card,.stat-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);min-width:0;transition:all var(--transition-normal)}.summary-card:hover,.stat-card:hover{box-shadow:var(--shadow-sm)}.summary-card.highlight,.stat-card.highlight{border-color:var(--color-primary);background:rgba(var(--accent-rgb),.05)}.summary-card h3,.summary-card h4,.summary-card h5,.stat-card h3,.stat-card h4,.stat-card h5{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0 0 var(--spacing-xs) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-card .amount,.summary-card .summary-value,.stat-card .stat-value,.summary-card-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-card .label,.summary-card .projected,.summary-card-subtitle,.stat-card .stat-date{font-size:.75rem;color:var(--text-tertiary);margin:0}.empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--text-secondary)}.empty-state p{margin-bottom:var(--spacing-sm);font-size:.875rem}.empty-state svg{color:var(--text-tertiary);margin-bottom:var(--spacing-sm);opacity:.6}.empty-state .hint{font-size:.8125rem;color:var(--text-tertiary);margin-top:var(--spacing-xs)}.empty-state .btn{margin-top:var(--spacing-md)}input,select,textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--input-bg);color:var(--text-primary);font-size:.875rem;font-family:var(--font-family);transition:all var(--transition-normal);line-height:1.4}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--text-secondary)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}input:disabled,select:disabled,textarea:disabled{background-color:var(--bg-secondary);opacity:.6;cursor:not-allowed}label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;font-size:.875rem;color:var(--text-secondary);transition:color var(--transition-normal)}input:focus~label,select:focus~label,textarea:focus~label{color:var(--color-primary)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:0}.form-group label{font-size:.8125rem;margin-bottom:0}.form-group input,.form-group select,.form-group textarea{width:100%}.form-group.toggle-group,.form-group.toggle-row,.form-group.form-group-toggle{flex-direction:row;align-items:center;gap:var(--spacing-sm)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md)}.modal-content{background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-header h2,.modal-header h3{margin:0;font-size:var(--font-size-lg);color:var(--text-primary)}.modal-body{padding:var(--spacing-md) var(--spacing-lg);overflow-y:auto;flex:1;min-height:0}.modal-content .form-group{gap:4px;margin-bottom:0}.modal-content .form-group label{font-size:var(--font-size-sm);margin-bottom:0}.modal-content .form-group input,.modal-content .form-group select,.modal-content .form-group textarea{padding:6px 10px}.modal-content .form-row{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-top:1px solid var(--border-color);flex-shrink:0}table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-sm)}th{background-color:var(--bg-tertiary);padding:6px 10px;text-align:left;font-weight:600;font-size:.6875rem;border-bottom:1px solid var(--border-color);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}td{padding:6px 10px;border-bottom:1px solid var(--border-light);font-size:.8125rem}tbody tr{transition:background-color var(--transition-fast)}tbody tr:hover{background-color:var(--hover-bg)}[data-theme=dark] tbody tr:nth-child(2n){background-color:#ffffff05}.badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;border:1px solid transparent}.badge-asset,.badge-income,.badge-success{background-color:var(--badge-asset-bg);color:var(--badge-asset-text);border-color:var(--badge-asset-border)}.badge-liability,.badge-expense,.badge-danger{background-color:var(--badge-liability-bg);color:var(--badge-liability-text);border-color:var(--badge-liability-border)}.badge-neutral,.badge-inactive{background-color:var(--badge-neutral-bg);color:var(--badge-neutral-text);border-color:var(--badge-neutral-border)}.badge-warning{background-color:var(--badge-warning-bg);color:var(--badge-warning-text);border-color:var(--badge-warning-border)}.badge-info,.badge-primary{background-color:var(--badge-info-bg);color:var(--badge-info-text);border-color:var(--badge-info-border)}.text-income,.text-asset{color:var(--color-income)}.text-expense,.text-liability{color:var(--color-expense)}.text-neutral{color:var(--color-neutral)}.money-positive{color:var(--color-income);font-weight:500}.money-negative{color:var(--color-expense);font-weight:500}.money-neutral{color:var(--text-primary)}.container{max-width:1280px;margin:0 auto;padding:0 var(--spacing-lg)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.flex{display:flex}.flex-column{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.loading{display:flex;align-items:center;justify-content:center;min-height:200px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media print{body{background-color:#fff;color:#000}.header,.footer,.logout-btn,.header-right,.nav,.btn-secondary,.btn-primary:not(.print-btn),.quick-filters,.header-actions,.filter-btn,.quick-filter-buttons,.date-range-filter,.filters,.print-hidden{display:none!important}.main{padding:0;background-color:#fff}.container{max-width:100%;padding:0}.page-header{page-break-after:avoid}table{width:100%;border-collapse:collapse;page-break-inside:avoid}th,td{border:1px solid #000;padding:8px;text-align:left}th{background-color:#f0f0f0;font-weight:700}.summary-cards{page-break-inside:avoid}.card{page-break-inside:avoid;border:1px solid #000}a{color:#000;text-decoration:underline}h1,h2,h3{page-break-after:avoid}p{page-break-inside:avoid}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.skip-to-main{position:absolute;top:-40px;left:0;background:var(--color-primary);color:#fff;padding:var(--spacing-sm);text-decoration:none;z-index:var(--z-dropdown)}.skip-to-main:focus{top:0}@media(max-width:768px){h1{font-size:1.5rem}h2{font-size:1.25rem}h3{font-size:1.125rem}.container{padding:0 var(--spacing-sm)}.card{padding:var(--spacing-sm)}}.info-tooltip{position:relative;cursor:help;border-bottom:1px dotted var(--text-tertiary)}.info-tooltip .tooltip-text{visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);line-height:1.5;white-space:nowrap;z-index:var(--z-dropdown);box-shadow:var(--shadow-lg);transition:opacity var(--transition-fast),visibility var(--transition-fast);pointer-events:none}.info-tooltip:hover .tooltip-text{visibility:visible;opacity:1}.info-tooltip .tooltip-text.tooltip-wide{white-space:normal;min-width:240px;max-width:360px}.info-tooltip .tooltip-text.tooltip-left{left:0;transform:none}.info-tooltip .tooltip-text.tooltip-right{left:auto;right:0;transform:none}@media print{.sidebar,.mobile-tab-bar,.quick-expense-fab,.offline-indicator,.btn-primary,.btn-secondary,.btn-icon,.receipt-scanner-overlay,.toast-container,.month-navigator button,.budget-month-nav button,.year-selector select,.year-selector label,.tab-btn,.tax-tabs,.filter-bar,.search-bar{display:none!important}.layout-content,.main-content,.page-content{margin:0!important;padding:0!important;width:100%!important;max-width:100%!important}body{background:#fff!important;color:#000!important;font-size:10pt}.card,.summary-card,.kpi-card,.budget-summary-bar{box-shadow:none!important;border:1px solid #ddd!important}.chart-section,.detail-section,.budget-group{page-break-inside:avoid}h1,h2,h3{page-break-after:avoid}table{font-size:10pt}th{background:#f0f0f0!important;color:#000!important}a[href]:after{content:none}}
