@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.offline-sync-banner{display:block;position:sticky;top:0;z-index:40;border-bottom:1px solid;text-decoration:none;color:inherit;cursor:pointer}.offline-sync-banner-content{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:500}.offline-sync-banner-content.offline{background:#fef3c7;border-color:#f59e0b;color:#92400e}.offline-sync-banner-content.ready{background:#dbeafe;border-color:#3b82f6;color:#1e40af}.offline-sync-banner-content.syncing{background:#ede9fe;border-color:#8b5cf6;color:#5b21b6}.offline-sync-btn{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:4px 12px;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .15s,opacity .15s}.offline-sync-btn:hover{background:#0000000d}.offline-sync-btn:active{opacity:.7}.offline-indicator{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:10px;background:#fef3c7;color:#92400e;font-size:11px;font-weight:600;line-height:1}.offline-indicator-count{min-width:14px;text-align:center}.offline-voucher-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}.badge-offline-pending{background:#fef3c7;color:#92400e}.badge-offline-syncing{background:#ede9fe;color:#5b21b6}.badge-offline-synced{background:#d1fae5;color:#065f46}.badge-offline-failed{background:#fee2e2;color:#991b1b}.badge-offline-edited{background:#dbeafe;color:#1e40af}.offline-voucher-badge-user{opacity:.7;font-weight:400;font-style:italic}.voucher-row-offline{position:relative;background:#ecfdf5!important;border-left:3px solid #10b981}.voucher-row-offline:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(16,185,129,.03) 10px,rgba(16,185,129,.03) 20px);pointer-events:none}.voucher-row-offline.edited{background:#eff6ff!important;border-left-color:#3b82f6}.voucher-row-offline.edited:before{background:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(59,130,246,.03) 10px,rgba(59,130,246,.03) 20px)}.voucher-row-offline.syncing,.voucher-row-offline.synced{background:#ecfdf5!important;border-left-color:#10b981}.voucher-row-offline.synced:before{background:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(16,185,129,.03) 10px,rgba(16,185,129,.03) 20px)}.voucher-row-offline.failed{background:#fef2f2!important;border-left-color:#ef4444}.sync-progress-overlay{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:8px;padding:16px 20px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 40px #00000026;min-width:280px}.sync-progress-header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#374151}.sync-progress-bar{width:100%;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.sync-progress-bar-fill{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:3px;transition:width .3s ease}.sync-progress-text{font-size:12px;color:#6b7280}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.6}}.offline-sync-banner-content.syncing{animation:pulse-subtle 2s ease-in-out infinite}.offline-pending-masters-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.offline-pending-master-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:#00000012;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.header-pending-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:none;border-radius:20px;background:#fef3c7;color:#92400e;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s;animation:pulse-subtle 2.5s ease-in-out infinite}.header-pending-btn:hover{background:#fde68a}.header-pending-btn:active{transform:scale(.96)}.header-pending-count{min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:#f59e0b;color:#fff;border-radius:50%;font-size:10px;font-weight:800;line-height:1}.header-pending-dropdown{position:fixed;right:12px;left:12px;top:52px;max-width:340px;margin-left:auto;background:var(--surface-1, #fff);border:1px solid var(--border-default, #e5e7eb);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-xl, 0 20px 40px rgba(0, 0, 0, .12));z-index:20;overflow:hidden}.header-pending-title{padding:12px 14px 8px;font-size:13px;font-weight:700;color:var(--text-primary, #111);border-bottom:1px solid var(--border-subtle, #f3f4f6)}.header-pending-section{padding:6px 0}.header-pending-section-label{padding:4px 14px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #9ca3af)}.header-pending-item{display:flex;align-items:center;gap:8px;padding:6px 14px}.header-pending-item-icon{flex-shrink:0;color:#f59e0b}.header-pending-item-name{font-size:12px;font-weight:600;color:var(--text-primary, #111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-pending-item-meta{font-size:10px;color:var(--text-muted, #9ca3af);text-transform:capitalize}.header-pending-footer{padding:8px 14px;font-size:11px;font-weight:500;color:var(--text-muted, #9ca3af);border-top:1px solid var(--border-subtle, #f3f4f6);text-align:center}.oq-page{padding:16px;max-width:600px;margin:0 auto}.oq-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.oq-title{font-size:18px;font-weight:800;color:var(--text-primary, #111);margin:0;line-height:1.2}.oq-subtitle{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:var(--text-muted, #9ca3af);margin:2px 0 0}.oq-conn-on{color:#10b981}.oq-conn-off{color:#ef4444}.oq-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.oq-stat-card{background:var(--surface-1, #fff);border:1px solid var(--border-subtle, #f3f4f6);border-radius:10px;padding:10px 8px;text-align:center}.oq-stat-value{font-size:20px;font-weight:800;line-height:1}.oq-stat-label{font-size:10px;font-weight:600;color:var(--text-muted, #9ca3af);text-transform:uppercase;letter-spacing:.3px;margin-top:4px}.oq-actions{display:flex;align-items:center;gap:10px;margin-bottom:14px}.oq-sync-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-radius:8px;background:var(--gradient-primary, linear-gradient(135deg, #6366f1, #8b5cf6));color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s}.oq-sync-btn:disabled{opacity:.45;cursor:not-allowed}.oq-sync-btn:not(:disabled):hover{opacity:.9}.oq-sync-btn:not(:disabled):active{transform:scale(.97)}.oq-hint{font-size:11px;color:var(--text-muted, #9ca3af);font-weight:500}.oq-tabs{display:flex;gap:4px;margin-bottom:14px;overflow-x:auto;-webkit-overflow-scrolling:touch}.oq-tab{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--border-default, #e5e7eb);border-radius:20px;background:var(--surface-1, #fff);color:var(--text-secondary, #6b7280);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}.oq-tab:hover{border-color:var(--color-primary-300, #a5b4fc)}.oq-tab-active{background:var(--color-primary-50, #eef2ff);border-color:var(--color-primary-400, #818cf8);color:var(--color-primary-700, #4338ca)}.oq-tab-count{min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--border-default, #e5e7eb);color:var(--text-secondary, #6b7280);font-size:10px;font-weight:700;border-radius:50%;line-height:1}.oq-tab-active .oq-tab-count{background:var(--color-primary-200, #c7d2fe);color:var(--color-primary-700, #4338ca)}.oq-empty{text-align:center;padding:48px 16px;color:var(--text-muted, #9ca3af)}.oq-empty p{margin-top:12px;font-size:14px;font-weight:500}.oq-list{display:flex;flex-direction:column;gap:8px}.oq-item{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--surface-1, #fff);border:1px solid var(--border-subtle, #f3f4f6);border-radius:10px;transition:border-color .15s}.oq-item-pending{border-left:3px solid #f59e0b}.oq-item-syncing{border-left:3px solid #8b5cf6;background:#faf5ff}.oq-item-synced{border-left:3px solid #10b981;opacity:.7}.oq-item-failed{border-left:3px solid #ef4444;background:#fef2f2}.oq-item-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface-2, #f9fafb);color:var(--text-secondary, #6b7280);flex-shrink:0}.oq-item-content{flex:1;min-width:0}.oq-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.oq-item-name{font-size:13px;font-weight:700;color:var(--text-primary, #111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oq-item-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:capitalize;white-space:nowrap;flex-shrink:0}.oq-badge-pending{background:#fef3c7;color:#92400e}.oq-badge-syncing{background:#ede9fe;color:#5b21b6}.oq-badge-synced{background:#d1fae5;color:#065f46}.oq-badge-failed{background:#fee2e2;color:#991b1b}.oq-item-meta{display:flex;align-items:center;gap:4px;margin-top:3px;font-size:11px;color:var(--text-muted, #9ca3af);font-weight:500}.oq-item-action{text-transform:capitalize}.oq-item-dot{opacity:.4}.oq-item-user{font-style:italic;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oq-item-error{margin-top:4px;padding:4px 8px;border-radius:4px;background:#fef2f2;color:#991b1b;font-size:11px;font-weight:500}.oq-item-remove{padding:6px;border:none;border-radius:6px;background:transparent;color:var(--text-muted, #9ca3af);cursor:pointer;flex-shrink:0;transition:color .15s,background .15s}.oq-item-remove:hover{color:#ef4444;background:#fef2f2}.oq-item-sync{padding:6px;border:none;border-radius:6px;background:transparent;color:var(--text-muted, #9ca3af);cursor:pointer;flex-shrink:0;transition:color .15s,background .15s}.oq-item-sync:hover:not(:disabled){color:#10b981;background:#ecfdf5}.oq-item-sync:disabled{opacity:.4;cursor:not-allowed}.oq-icon-pending{color:#f59e0b}.oq-icon-syncing{color:#8b5cf6}.oq-icon-synced{color:#10b981}.oq-icon-failed{color:#ef4444}:root{--color-primary-50: #eef2ff;--color-primary-100: #e0e7ff;--color-primary-200: #c7d2fe;--color-primary-300: #a5b4fc;--color-primary-400: #818cf8;--color-primary-500: #6366f1;--color-primary-600: #4f46e5;--color-primary-700: #4338ca;--color-primary-800: #3730a3;--color-primary-900: #312e81;--color-success-50: #ecfdf5;--color-success-100: #d1fae5;--color-success-400: #34d399;--color-success-500: #10b981;--color-success-600: #059669;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--surface-bg: #f5f7fa;--surface-1: #ffffff;--surface-2: #ffffff;--surface-3: #f9fafb;--surface-elevated: #ffffff;--surface-hover: #f3f4f6;--text-primary: #111827;--text-secondary: #4b5563;--text-tertiary: #6b7280;--text-muted: #9ca3af;--text-on-primary: #ffffff;--border-default: #e5e7eb;--border-subtle: #f3f4f6;--border-strong: #d1d5db;--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-accent: linear-gradient(135deg, #06b6d4 0%, #6366f1 100%);--gradient-success: linear-gradient(135deg, #10b981 0%, #059669 100%);--gradient-hero: linear-gradient(135deg, #eef2ff 0%, #e0e7ff 50%, #f5f3ff 100%);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .06), 0 2px 4px -2px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .06), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .04);--shadow-primary: 0 4px 14px rgba(99, 102, 241, .2);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--surface-card: #ffffff;--border-light: #f3f4f6;--primary: #6366f1;--success: #10b981;--error: #ef4444;--warning: #f59e0b;--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--header-height: 48px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}*::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;height:100dvh;overflow:hidden}body{font-family:var(--font-family);background:var(--surface-bg);color:var(--text-primary);line-height:1.6;height:100%;height:100dvh;overflow:hidden}#root{height:100%;height:100dvh;overflow:hidden}a{color:var(--color-primary-600);text-decoration:none}a:hover{color:var(--color-primary-700)}button{background:none;border:none;font:inherit;cursor:pointer;color:inherit}input,select,textarea{font:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.app-layout{display:flex;height:100%;background:var(--surface-bg)}.main-content{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;transition:margin-left .3s ease}.page-content{flex:1;padding:var(--space-6) var(--space-8);max-width:1400px;width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;height:100dvh;background:var(--surface-1);border-right:1px solid var(--border-default);display:flex;flex-direction:column;z-index:100;transition:transform .3s ease;overflow-y:auto}.sb-header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-subtle)}.sb-logo-icon{width:32px;height:32px;border-radius:10px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#fff;flex-shrink:0}.sb-header-text{flex:1;min-width:0}.sb-app-name{font-weight:700;font-size:13px;color:var(--text-primary);line-height:1.2}.sb-room-name{font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.sb-close{background:none;border:none;cursor:pointer;padding:4px;border-radius:var(--radius-md);color:var(--text-muted);display:flex;align-items:center}.sb-close:hover{background:var(--color-primary-50);color:var(--text-primary)}.sb-status{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;flex-shrink:0}.sb-status-offline{background:#fef2f2;color:#ef4444}.sb-status-syncing{background:#eff6ff;color:#3b82f6}.sb-status-live{background:#f0fdf4;color:#16a34a}.sb-status-cached{background:#fff7ed;color:#f59e0b}@keyframes sb-spin-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sb-spin{animation:sb-spin-anim 1.2s linear infinite}.sb-nav{padding:8px;flex:1;overflow-y:auto}.sb-menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:2px;cursor:pointer;border:none;background:none;width:100%;text-align:left;text-decoration:none;transition:all .15s ease}.sb-menu-item:hover{background:var(--color-primary-50)}.sb-menu-item.sb-active{background:var(--color-primary-50);color:var(--color-primary-700)}.sb-menu-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s}.sb-menu-item:hover .sb-menu-icon{transform:scale(1.05)}.sb-menu-label{flex:1}.sb-count{font-size:10px;font-weight:600;color:var(--text-muted);background:var(--color-primary-50);padding:1px 6px;border-radius:10px;line-height:16px}.sb-refresh-masters{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--radius-full, 50%);background:transparent;color:var(--text-muted);cursor:pointer;padding:0;flex-shrink:0;transition:color .2s,background .2s}.sb-refresh-masters:hover:not(:disabled){color:var(--color-primary-600);background:var(--color-primary-50)}.sb-refresh-masters:disabled{cursor:default;color:var(--color-primary-500)}.sb-refresh-sub{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:var(--radius-full, 50%);background:transparent;color:var(--text-muted);cursor:pointer;padding:0;flex-shrink:0;margin-left:auto;transition:color .2s,background .2s;opacity:0}.sb-subgroup-btn:hover .sb-refresh-sub{opacity:1}.sb-refresh-sub:hover:not(:disabled){color:var(--color-primary-600);background:var(--color-primary-50);opacity:1}.sb-refresh-sub:disabled{cursor:default;color:var(--color-primary-500);opacity:1}.sb-chevron{color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.sb-chevron-open{transform:rotate(90deg)}.sb-section{margin-bottom:2px}.sb-section-body{overflow:hidden;transition:max-height .25s ease,opacity .2s ease}.sb-expanded{max-height:800px;opacity:1}.sb-collapsed{max-height:0;opacity:0;pointer-events:none}.sb-subgroup{margin-left:6px;margin-bottom:1px}.sb-subgroup-btn{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border:none;background:none;cursor:pointer;font-size:11px;font-weight:600;color:var(--text-muted);border-radius:8px;transition:all .15s}.sb-subgroup-btn:hover{background:#6366f10a;color:var(--text-secondary)}.sb-subgroup-btn.sb-sub-active{color:var(--color-primary-700)}.sb-subgroup-items{margin-left:8px;border-left:1.5px solid var(--border-subtle);padding-left:4px;overflow:hidden;transition:max-height .2s ease,opacity .15s ease}.sb-subgroup-items.sb-expanded{max-height:500px;opacity:1}.sb-subgroup-items.sb-collapsed{max-height:0;opacity:0;pointer-events:none}.sb-item{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:8px;font-size:12.5px;font-weight:500;color:var(--text-secondary);margin-bottom:1px;transition:all .12s ease;text-decoration:none}.sb-item:hover{background:var(--color-primary-50);color:var(--color-primary-700)}.sb-item.sb-active{background:var(--color-primary-50);color:var(--color-primary-700);font-weight:600}.sb-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;opacity:.6;transition:all .15s}.sb-item.sb-active .sb-dot{opacity:1;width:6px;height:6px;box-shadow:0 0 0 3px #6366f11f}.sb-item:hover .sb-dot{opacity:1}.sb-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-depth-1{padding-left:14px}.sb-depth-2{padding-left:8px}.sb-ist{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;flex-shrink:0;margin-left:auto;transition:all .2s ease}.sb-ist-live{color:#16a34a;background:#f0fdf4}.sb-ist-fetchable{color:#3b82f6;background:#eff6ff}.sb-ist-cached{color:#f59e0b;background:#fffbeb}.sb-ist-offline{color:#ef4444;background:#fef2f2}.sb-ist-syncing{color:#3b82f6;background:#eff6ff}.sb-ist-syncing svg{animation:sb-spin-anim 1.2s linear infinite}.sb-item:hover .sb-ist{transform:scale(1.15)}.sb-footer{padding:10px 14px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}.sb-conn-row{display:flex;align-items:center;gap:6px;font-size:11px}.sb-conn-icon{flex-shrink:0}.sb-conn-on{color:#16a34a}.sb-conn-off{color:#ef4444}.sb-conn-label{flex:1;color:var(--text-muted);font-weight:500}.sb-pending-badge{background:var(--color-warning-500);color:#fff;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700;line-height:16px}.sb-offline-badge{background:#f59e0b;color:#fff;border-radius:10px;padding:1px 6px;font-size:9px;font-weight:700;line-height:15px;margin-left:auto;flex-shrink:0}.sb-data-row{display:flex;align-items:center;gap:5px;font-size:10px;color:#16a34a;font-weight:500}.sb-data-warn{color:#ef4444}.sb-data-sync{color:#3b82f6}.sb-pending-syncing{background:#3b82f6;display:inline-flex;align-items:center}.main-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-8);height:var(--header-height);background:var(--surface-1);border-bottom:1px solid var(--border-default);position:sticky;top:0;z-index:50;gap:var(--space-2);overflow:visible;flex-shrink:0}.hide-mobile{display:inline}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.glass-card,.card{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-xl);transition:all .2s ease;box-shadow:var(--shadow-sm)}.glass-card:hover,.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-200)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.kpi-card{animation:fadeSlideUp .4s ease forwards;opacity:0}.kpi-value{font-size:var(--font-size-2xl);font-weight:800;line-height:1.2;margin-bottom:var(--space-1)}.kpi-label{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:500}.kpi-change{display:inline-flex;align-items:center;gap:2px;font-size:var(--font-size-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.kpi-change.positive{color:var(--color-success-600);background:var(--color-success-50)}.kpi-change.negative{color:var(--color-error-500);background:var(--color-error-50)}.charts-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-4)}.dashboard-grid{display:flex;flex-direction:column;gap:var(--space-6)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table thead{background:var(--gray-50);border-bottom:1px solid var(--border-default)}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.data-table tbody tr:hover{background:var(--gray-50)}.data-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;border:1px solid transparent;transition:all .15s ease;white-space:nowrap;cursor:pointer;line-height:1.5}.btn-primary{background:var(--gradient-primary);color:var(--text-on-primary);border:none;box-shadow:var(--shadow-primary)}.btn-primary:hover{opacity:.9;box-shadow:0 6px 20px #6366f14d;transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{color:var(--text-secondary);background:transparent}.btn-ghost:hover{background:var(--gray-100);color:var(--text-primary)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all .15s ease}.btn-icon:hover{background:var(--gray-100);color:var(--text-primary)}.input-group{display:flex;flex-direction:column;gap:var(--space-2)}.input-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary)}.input-field{padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);transition:all .15s ease;outline:none;width:100%}.input-field::placeholder{color:var(--text-muted)}.input-field:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11f}select.input-field{cursor:pointer}.full-page-screen{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.login-page{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;align-items:center;justify-content:center;background:var(--gradient-hero);padding:var(--space-4)}.login-card{width:100%;max-width:420px;padding:var(--space-10);border-radius:var(--radius-2xl);background:var(--surface-1);border:1px solid var(--border-default);box-shadow:var(--shadow-xl)}.login-title{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-1);color:var(--text-primary)}.login-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary)}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.badge-warning{background:var(--color-warning-50);color:#92400e;border:1px solid var(--color-warning-100)}.badge-success{background:var(--color-success-50);color:var(--color-success-600);border:1px solid var(--color-success-100)}.connection-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.connection-dot.connected{background:var(--color-success-500);box-shadow:0 0 6px #10b98166}.connection-dot.disconnected{background:var(--color-error-400)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-12)}.empty-state-icon{width:64px;height:64px;border-radius:var(--radius-xl);background:var(--color-primary-50);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4);color:var(--color-primary-500)}.empty-state-title{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-2);color:var(--text-primary)}.empty-state-text{font-size:var(--font-size-sm);color:var(--text-tertiary);max-width:320px}.toast-container{position:fixed;bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));right:var(--space-4);left:var(--space-4);z-index:1000;display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-end}.toast{padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:500;box-shadow:var(--shadow-lg);animation:slideInRight .25s ease;cursor:pointer;max-width:360px;border:1px solid}.toast-success{background:var(--color-success-50);color:var(--color-success-600);border-color:var(--color-success-100)}.toast-error{background:var(--color-error-50);color:var(--color-error-600);border-color:var(--color-error-100)}.toast-info{background:var(--color-primary-50);color:var(--color-primary-700);border-color:var(--color-primary-100)}.toast-warning{background:var(--color-warning-50);color:#92400e;border-color:var(--color-warning-100)}.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--surface-1);border-top:1px solid var(--border-default);z-index:100;padding:4px 8px env(safe-area-inset-bottom,4px)}.mobile-nav-items{display:flex;justify-content:space-around}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 10px;font-size:9px;font-weight:500;color:var(--text-muted);text-decoration:none;border-radius:var(--radius-md);transition:all .15s ease}.mobile-nav-item.active{color:var(--color-primary-600)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in{animation:fadeSlideUp .35s ease forwards}.scale-in{animation:scaleIn .15s ease forwards}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-spin,.spin-animation{animation:spin 1s linear infinite}@media (max-width: 1024px){.charts-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (max-width: 768px){.sidebar{transform:translate(-100%);box-shadow:var(--shadow-xl);z-index:200}.sidebar.open{transform:translate(0)}.main-content{margin-left:0;overflow:hidden;max-width:100vw;height:100vh;height:calc(var(--app-height, 100dvh))}.page-content{padding:var(--space-4) var(--space-5);padding-bottom:calc(56px + env(safe-area-inset-bottom,0px));box-sizing:border-box;max-width:100vw;overflow-x:hidden;overflow-y:auto}.main-header{padding:0;height:auto;min-height:auto;box-sizing:border-box;max-width:100vw;background:var(--surface-1);border-bottom:1px solid var(--border-default)}.mobile-nav{display:block}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.charts-grid{grid-template-columns:1fr}.mobile-menu-btn{display:flex!important}.page-header-row{gap:var(--space-2)!important}.dashboard-title{font-size:var(--font-size-xl)!important}.toast{max-width:100%;width:100%}}@media (max-width: 480px){.kpi-grid{grid-template-columns:1fr 1fr}.login-card{padding:var(--space-6)}.hide-mobile{display:none}.kpi-card [style*="font-size: var(--font-size-xl)"]{font-size:var(--font-size-lg)!important}}.masters-page{padding:var(--space-4) var(--space-3);max-width:900px;margin:0 auto}.masters-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.masters-header-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--gradient-primary);color:var(--text-on-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.masters-title{font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary);margin:0}.masters-subtitle{font-size:var(--font-size-xs);color:var(--text-muted);margin:0 0 var(--space-4);padding-left:calc(36px + 36px + var(--space-3) * 3)}.masters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3)}.masters-section-card{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-sm);transition:box-shadow .2s,border-color .2s}.masters-section-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-200)}.masters-section-title{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-light)}.masters-menu-list{display:flex;flex-direction:column;gap:var(--space-1)}.masters-menu-btn{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;transition:background .15s,transform .1s;width:100%;text-align:left;color:var(--text-primary);font-size:var(--font-size-sm)}.masters-menu-btn:hover{background:var(--surface-hover)}.masters-menu-btn:active{transform:scale(.98)}.masters-menu-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.masters-menu-label{flex:1;font-weight:500}.masters-shortcut-highlight{color:var(--primary);font-weight:700;text-decoration:underline}.masters-menu-arrow{color:var(--text-muted);opacity:0;transition:opacity .15s}.masters-menu-btn:hover .masters-menu-arrow{opacity:1}.page-content:has(.master-form-page){padding:0}.master-form-page{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface-bg, #f4f5f7);max-width:800px;margin:0 auto;width:100%}.master-form-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.page-content:has(.master-list-page){padding:0}.master-list-page{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--surface-bg, #f4f5f7)}.master-list-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.master-form-header{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2);flex-wrap:nowrap;min-height:40px;background:var(--surface-1, #fff);padding:14px 16px;border-bottom:1px solid var(--border-default);box-shadow:0 1px 4px #0000000f}.master-list-header{flex-shrink:0;display:flex;flex-direction:column;background:var(--surface-1, #fff);padding:14px 16px 12px;border-bottom:1px solid var(--border-default);box-shadow:0 1px 4px #0000000f}.master-header-title-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.master-list-header .master-form-title{font-size:17px;font-weight:700}.master-list-header .master-header-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}.master-btn-ghost{width:34px;height:34px;min-width:34px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .15s}.master-btn-ghost:hover{background:var(--surface-hover, rgba(0,0,0,.05));color:var(--text-primary);border-color:var(--text-secondary)}.master-back-btn{width:32px;height:32px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0}.master-back-btn:hover{background:var(--color-primary-50);color:var(--color-primary-600);border-color:var(--color-primary-200)}.master-form-title{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.master-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.master-header-count{display:flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-primary-50);color:var(--color-primary-600);font-size:11px;font-weight:600;flex-shrink:0}.master-offline-badge{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--warning);background:#f59e0b1a;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-weight:500}.master-result-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-3);font-size:var(--font-size-sm);font-weight:500}.master-result-success{background:#10b9811a;color:var(--success);border:1px solid rgba(16,185,129,.2)}.master-result-error{background:#ef44441a;color:var(--error);border:1px solid rgba(239,68,68,.2)}.master-result-close{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;opacity:.6;padding:var(--space-1)}.master-result-close:hover{opacity:1}.master-form{display:flex;flex-direction:column;gap:var(--space-3)}.master-field{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.master-field-row{display:flex;gap:var(--space-4)}.master-label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.master-required{color:var(--error)}.master-input{padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;color:var(--text-primary);font-size:var(--font-size-sm);transition:border-color .15s,box-shadow .15s;width:100%}.master-input:focus{outline:none;border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11f}.master-input[readonly]{cursor:pointer}.master-textarea{resize:vertical;min-height:60px}.master-select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.master-dropdown-wrapper{position:relative}.master-dropdown{position:absolute;top:100%;left:0;right:0;max-height:280px;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 12px 28px #0000001f,0 4px 10px #00000014;z-index:200;margin-top:4px}.master-dropdown-search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-default);background:var(--gray-50);flex-shrink:0}.master-dropdown-search svg{color:var(--text-muted);flex-shrink:0}.master-dropdown-search input{border:none;background:transparent;flex:1;font-size:var(--font-size-sm);color:var(--text-primary);outline:none;padding:var(--space-1) 0}.master-dropdown-search input::placeholder{color:var(--text-muted)}.master-dropdown-list{overflow-y:auto;flex:1}.master-dropdown-item{display:block;width:100%;padding:var(--space-2) var(--space-3);border:none;background:transparent;text-align:left;cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary);transition:background .1s}.master-dropdown-item:hover{background:var(--color-primary-50);color:var(--color-primary-700)}.master-dropdown-active{background:#6366f11a;color:var(--color-primary-700);font-weight:600}.master-dropdown-empty{padding:var(--space-4) var(--space-3);text-align:center;color:var(--text-muted);font-size:var(--font-size-sm)}.master-section-label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#6366f1;background:linear-gradient(135deg,#eef2ff,#e0e7ff);margin-top:var(--space-5);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border-left:3px solid #6366f1}.master-toggle{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary)}.master-toggle input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}.master-toggle-label{font-weight:500}.master-form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;padding-top:var(--space-4);border-top:1px solid var(--border-light);margin-top:var(--space-2)}.master-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 20px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;letter-spacing:.01em;min-width:110px;height:36px}.master-btn:disabled{opacity:.5;cursor:not-allowed}.master-btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 2px 6px #6366f14d}.master-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f159}.master-btn-teal{background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;box-shadow:0 2px 6px #10b9814d}.master-btn-teal:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98159}.master-btn-blue{background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;box-shadow:0 2px 6px #3b82f64d}.master-btn-blue:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f659}.master-btn-amber{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 6px #f59e0b4d}.master-btn-amber:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b59}.master-btn-secondary{background:var(--surface-hover);color:var(--text-secondary)}.master-btn-secondary:hover{background:var(--border-default)}.master-btn-danger{background:var(--error);color:#fff}.master-btn-danger:hover:not(:disabled){opacity:.9}.master-btn-icon{width:36px;height:36px;min-width:36px;padding:0;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer}.master-btn-icon:hover{background:var(--surface-hover)}.master-btn-primary.master-btn-icon{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;box-shadow:0 2px 6px #6366f14d}.master-btn-primary.master-btn-icon:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f159}@keyframes master-spin-anim{to{transform:rotate(360deg)}}.master-spin{animation:master-spin-anim 1s linear infinite}.master-picker{display:flex;flex-direction:column;gap:var(--space-3)}.master-search-box{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;margin-bottom:var(--space-2);transition:border-color .15s,box-shadow .15s}.master-search-box:focus-within{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11f}.master-search-box input{border:none;background:transparent;flex:1;font-size:var(--font-size-sm);color:var(--text-primary);outline:none}.master-search-box svg{color:var(--text-muted);flex-shrink:0}.master-search-clear{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;display:flex}.master-search-clear:hover{color:var(--text-primary)}.master-picker-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:60vh;overflow-y:auto}.master-picker-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:all .15s;text-align:left;width:100%}.master-picker-item:hover{border-color:var(--primary);background:#6366f10a}.master-picker-name{font-weight:500;color:var(--text-primary);font-size:var(--font-size-sm)}.master-picker-group{font-size:var(--font-size-xs);color:var(--text-muted)}.master-picker-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) 0;color:var(--text-muted);font-size:var(--font-size-sm)}.master-picker-card{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:#fff;cursor:pointer;transition:all .15s;text-align:left;width:100%}.master-picker-card:hover{border-color:var(--primary);background:#6366f10a;transform:translateY(-1px);box-shadow:0 2px 8px #6366f11a}.master-picker-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#eef2ff,#e0e7ff);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0;font-size:var(--font-size-xs);font-weight:600}.master-picker-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.master-picker-details .master-picker-name{font-weight:600;font-size:var(--font-size-sm)}.master-picker-details .master-picker-group{font-size:11px;color:var(--text-muted)}.master-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-family:inherit;color:var(--text-primary);transition:border-color .15s;text-align:left;min-height:38px}.master-dropdown-trigger:hover{border-color:var(--primary)}.master-dropdown-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.master-dropdown-placeholder{color:var(--text-muted)}.master-dropdown-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .2s}.master-dropdown-chevron-open{transform:rotate(180deg)}.master-view-toggle{display:flex;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.master-toggle-btn{padding:4px 10px;border:none;background:transparent;cursor:pointer;font-size:11px;font-weight:500;color:var(--text-secondary);transition:all .15s;white-space:nowrap}.master-toggle-btn.active{background:var(--primary);color:var(--text-on-primary)}.coa-summary{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.coa-filtered{color:var(--text-muted);font-style:italic}.master-card-list{display:flex;flex-direction:column;gap:var(--space-2)}.master-card{background:#fff;border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3);transition:box-shadow .2s,border-color .2s;box-shadow:var(--shadow-xs)}.master-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-primary-200)}.master-card-top{display:flex;align-items:center;gap:var(--space-3)}.master-card-avatar{width:36px;height:36px;border-radius:var(--radius-md);background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:700;flex-shrink:0;letter-spacing:.02em}.master-card-avatar-group{background:linear-gradient(135deg,#0ea5e9,#6366f1)}.master-card-avatar-stock{background:linear-gradient(135deg,#ec4899,#a855f7)}.master-card-info{flex:1;min-width:0}.master-card-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);line-height:1.3;word-break:break-word}.master-card-group{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-muted);margin-top:2px}.master-card-actions{display:flex;gap:var(--space-1);flex-shrink:0}.master-card-action-btn{width:30px;height:30px;border:none;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;background:transparent;color:var(--text-muted)}.master-card-edit:hover{background:var(--color-primary-50);color:var(--color-primary-600)}.master-card-del:hover,.master-card-delete:hover{background:#ef444414;color:#ef4444}.master-card-pending{border:1px dashed #f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7);opacity:.9}.master-card-avatar-pending{background:linear-gradient(135deg,#fde68a,#fbbf24)!important;color:#92400e!important;display:flex;align-items:center;justify-content:center}.master-pending-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#92400e;background:#fde68a;padding:2px 10px;border-radius:var(--radius-full);white-space:nowrap}.master-card-details{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.master-card-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:500;line-height:18px}.master-card-tag-balance{background:var(--color-primary-50);color:var(--color-primary-700)}.master-card-tag-gstin{background:var(--color-success-50);color:var(--color-success-600)}.master-card-tag-state{background:var(--gray-100);color:var(--text-secondary)}.master-card-tag-count{background:var(--color-primary-50);color:var(--color-primary-700)}.master-card-tag-unit{background:var(--color-warning-50);color:#92400e}.master-card-tag-gst{background:var(--color-success-50);color:var(--color-success-600)}.master-card-tag-qty{background:var(--color-primary-50);color:var(--color-primary-700)}.coa-flat-list{display:flex;flex-direction:column}.coa-flat-header{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:2px solid var(--border-default)}.coa-flat-row{display:grid;grid-template-columns:2fr 1.2fr 1fr auto;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--border-light);align-items:center;transition:background .1s}.coa-flat-row:hover{background:var(--surface-hover)}.coa-col-name{font-weight:500;color:var(--text-primary);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coa-col-group{color:var(--text-secondary);font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coa-col-balance{color:var(--text-secondary);font-size:var(--font-size-sm);text-align:right}.coa-col-actions{display:flex;gap:var(--space-1);justify-content:flex-end}.coa-action-btn{width:28px;height:28px;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;background:transparent}.coa-edit{color:var(--text-muted)}.coa-edit:hover{background:#6366f11a;color:var(--primary)}.coa-delete{color:var(--text-muted)}.coa-delete:hover{background:#ef44441a;color:var(--error)}.coa-tree,.coa-tree-node{display:flex;flex-direction:column}.coa-group-row-wrapper{display:flex;align-items:center}.coa-group-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);border:none;background:transparent;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);border-radius:var(--radius-sm);transition:background .1s;flex:1}.coa-group-row:hover{background:var(--surface-hover)}.coa-group-name{flex:1}.coa-group-count{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:400;background:var(--surface-hover);padding:1px 8px;border-radius:99px}.coa-tree-children{display:flex;flex-direction:column;border-left:1px solid var(--border-light);margin-left:var(--space-4)}.coa-ledger-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);border-bottom:1px solid var(--border-light);transition:background .1s}.coa-ledger-row:hover{background:var(--surface-hover)}.coa-ledger-name{flex:1;color:var(--text-primary)}.coa-ledger-balance{color:var(--text-muted);font-size:var(--font-size-xs);min-width:80px;text-align:right}.coa-ledger-actions{display:flex;gap:var(--space-1)}.master-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-4)}.master-confirm-dialog{background:#fff;border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;box-shadow:var(--shadow-xl)}.master-confirm-dialog p{margin:0;color:var(--text-primary);font-size:var(--font-size-sm)}.master-confirm-warn{color:var(--text-muted)!important;font-size:var(--font-size-xs)!important}.master-confirm-actions{display:flex;gap:var(--space-3);margin-top:var(--space-2)}@media (max-width: 640px){.masters-page,.master-list-page{padding:var(--space-2) var(--space-2)}.masters-subtitle{padding-left:0}.masters-grid{grid-template-columns:1fr}.master-field-row{flex-direction:column}.coa-flat-header,.coa-flat-row{grid-template-columns:1.5fr 1fr auto}.coa-col-balance{display:none}}.toast-container{position:fixed;bottom:72px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);width:90%;max-width:420px;pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:500;box-shadow:0 8px 24px #0000002e;pointer-events:auto;animation:toastSlideUp .35s ease-out}.toast-success{background:#065f46;color:#d1fae5}.toast-error{background:#991b1b;color:#fee2e2}.toast-message{flex:1}.toast-close{background:none;border:none;color:inherit;opacity:.7;cursor:pointer;padding:2px;display:flex;align-items:center}.toast-close:hover{opacity:1}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.report-print-header{display:none}
