@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-canvas:#f8fafc;--bg-surface:#fff;--bg-surface-hover:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--primary:#3b82f6;--primary-hover:#2563eb;--primary-tint:#eff6ff;--accent:#f97316;--accent-tint:#fff7ed;--border-color:#e2e8f0;--border-hover:#cbd5e1;--status-success-bg:#dcfce7;--status-success-text:#15803d;--status-warning-bg:#fef3c7;--status-warning-text:#b45309;--status-error-bg:#fee2e2;--status-error-text:#b91c1c;--status-info-bg:#e0f2fe;--status-info-text:#0369a1;--font-headline:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 3px 0 #0000000d, 0 1px 2px -1px #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -4px #0000000d;--shadow-primary:0 4px 14px 0 #3b82f64d;--shadow-accent:0 4px 14px 0 #f973164d;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background-color:var(--bg-canvas);color:var(--text-primary);height:100vh;overflow-x:hidden}#root{width:100%;height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#cbd5e1}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-container{width:100%;height:100vh;display:flex}.sidebar{color:#f8fafc;background-color:#0f172a;border-right:1px solid #ffffff1a;flex-direction:column;flex-shrink:0;width:260px;padding:24px 16px;display:flex}.brand-section{border-bottom:1px solid #ffffff1a;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:24px;display:flex}.brand-icon{background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:var(--radius-md);color:#fff;width:40px;height:40px;font-family:var(--font-headline);justify-content:center;align-items:center;font-size:20px;font-weight:800;display:flex;box-shadow:0 4px 12px #3b82f64d}.brand-name{font-family:var(--font-headline);letter-spacing:-.02em;background:linear-gradient(90deg,#fff,#cbd5e1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:700}.menu-list{flex-direction:column;flex-grow:1;gap:6px;list-style:none;display:flex;overflow-y:auto}.menu-item{color:#94a3b8;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:12px;padding:12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.menu-item:hover,.menu-item.active{color:#fff;background-color:#ffffff14}.menu-item.active{background-color:var(--primary);box-shadow:var(--shadow-primary);color:#fff}.sidebar-footer{border-top:1px solid #ffffff1a;align-items:center;gap:12px;margin-top:auto;padding-top:16px;display:flex}.user-avatar{border-radius:var(--radius-full);color:#0f172a;background-color:#38bdf8;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:600;display:flex}.user-info{flex-direction:column;font-size:13px;display:flex}.user-name{color:#fff;font-weight:600}.user-role{color:#64748b;font-size:11px}.main-content{flex-direction:column;flex-grow:1;height:100vh;display:flex;overflow:hidden}.top-bar{background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;height:70px;padding:0 32px;display:flex}.page-title{font-family:var(--font-headline);color:var(--text-primary);letter-spacing:-.02em;font-size:24px;font-weight:700}.top-bar-actions{align-items:center;gap:20px;display:flex}.search-input-wrapper{width:280px;position:relative}.search-input-wrapper input{border-radius:var(--radius-full);width:100%;transition:var(--transition-fast);background-color:#f1f5f9;border:1px solid #0000;outline:none;padding:10px 16px 10px 40px;font-size:14px}.search-input-wrapper input:focus{background-color:var(--bg-surface);border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.search-icon{color:var(--text-muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.notification-btn{cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-full);transition:var(--transition-fast);background:0 0;border:none;padding:4px;position:relative}.notification-btn:hover{background-color:var(--bg-surface-hover)}.notification-dot{background-color:var(--accent);border-radius:var(--radius-full);border:2px solid var(--bg-surface);width:8px;height:8px;position:absolute;top:4px;right:4px}.view-container{background-color:var(--bg-canvas);flex-grow:1;padding:32px;overflow-y:auto}.card{background-color:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:24px}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-bottom:32px;display:grid}.metric-card{justify-content:space-between;align-items:flex-start;display:flex}.metric-info{flex-direction:column;gap:6px;display:flex}.metric-label{font-family:var(--font-mono);text-transform:uppercase;color:var(--text-secondary);letter-spacing:.05em;font-size:11px;font-weight:600}.metric-value{font-family:var(--font-headline);color:var(--text-primary);font-size:32px;font-weight:700;line-height:1}.metric-change{align-items:center;gap:4px;font-size:12px;font-weight:600;display:flex}.metric-change.up{color:var(--status-success-text)}.metric-change.down{color:var(--status-error-text)}.metric-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.metric-icon.blue{color:#3b82f6;background-color:#eff6ff}.metric-icon.emerald{color:#10b981;background-color:#ecfdf5}.metric-icon.orange{color:#f97316;background-color:#fff7ed}.metric-icon.indigo{color:#6366f1;background-color:#eef2ff}.dashboard-columns{grid-template-columns:2fr 1.2fr;align-items:start;gap:24px;display:grid}.chart-section{flex-direction:column;gap:20px;display:flex}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-title{font-family:var(--font-headline);color:var(--text-primary);font-size:18px;font-weight:700}.btn{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);border:1px solid #0000;outline:none;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-primary)}.btn-secondary{background-color:var(--bg-surface);border-color:var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{border-color:var(--border-hover);background-color:var(--bg-surface-hover)}.btn-danger{background-color:var(--status-error-bg);color:var(--status-error-text)}.btn-danger:hover{background-color:#fca5a5}.btn-icon{border-radius:var(--radius-md);padding:10px}.badge{border-radius:var(--radius-full);text-transform:capitalize;justify-content:center;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-active{background-color:var(--status-success-bg);color:var(--status-success-text)}.badge-expired{background-color:var(--status-error-bg);color:var(--status-error-text)}.badge-frozen{background-color:var(--status-warning-bg);color:var(--status-warning-text)}.badge-cancelled{color:#475569;background-color:#f1f5f9}.table-responsive{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{font-family:var(--font-mono);text-transform:uppercase;color:var(--text-secondary);border-bottom:2px solid var(--border-color);padding:16px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border-color);color:var(--text-secondary);vertical-align:middle;padding:16px;font-size:14px}.data-table tr:hover td{background-color:var(--bg-surface-hover)}.member-cell{align-items:center;gap:12px;display:flex}.member-avatar{border-radius:var(--radius-full);object-fit:cover;width:36px;height:36px;color:var(--text-primary);background-color:#e2e8f0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.member-name{color:var(--text-primary);font-weight:600}.member-id{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.kanban-board{align-items:flex-start;gap:20px;height:calc(100vh - 180px);padding-bottom:16px;display:flex;overflow-x:auto}.kanban-column{border-radius:var(--radius-lg);background-color:#f1f5f9;flex-direction:column;flex-shrink:0;width:290px;max-height:100%;padding:16px;display:flex}.kanban-column-header{justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 4px;display:flex}.column-title{font-family:var(--font-headline);color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.column-count{font-family:var(--font-mono);background-color:var(--bg-surface);border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--text-secondary);padding:2px 8px;font-size:12px;font-weight:600}.kanban-cards{flex-direction:column;flex-grow:1;gap:12px;min-height:200px;display:flex;overflow-y:auto}.kanban-card{background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);cursor:grab;transition:var(--transition-fast);padding:16px}.kanban-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.kanban-card-title{color:var(--text-primary);margin-bottom:8px;font-size:14px;font-weight:600}.kanban-card-info{color:var(--text-secondary);flex-direction:column;gap:4px;font-size:12px;display:flex}.kanban-card-meta{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#0f172a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-surface);border-radius:var(--radius-lg);width:100%;max-width:550px;box-shadow:var(--shadow-lg);animation:.3s cubic-bezier(.16,1,.3,1) modalFadeIn;overflow:hidden}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:24px;display:flex}.modal-title{font-family:var(--font-headline);font-size:20px;font-weight:700}.modal-body{max-height:70vh;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);background-color:#f8fafc;justify-content:flex-end;gap:12px;padding:24px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group.full-width{grid-column:span 2}.form-label{color:var(--text-secondary);font-size:13px;font-weight:600}.form-control{border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:var(--transition-fast);outline:none;padding:10px 14px;font-size:14px}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.pos-container{grid-template-columns:2fr 1fr;align-items:stretch;gap:24px;height:calc(100vh - 180px);display:grid}.pos-catalog{flex-direction:column;gap:20px;height:100%;display:flex}.pos-grid{flex-grow:1;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;padding:4px;display:grid;overflow-y:auto}.product-card{background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-color);cursor:pointer;transition:var(--transition-fast);flex-direction:column;padding:12px;display:flex}.product-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.product-image-placeholder{background-color:var(--bg-canvas);border-radius:var(--radius-sm);width:100%;height:100px;color:var(--text-muted);justify-content:center;align-items:center;margin-bottom:12px;display:flex}.product-name{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.product-stock{color:var(--text-muted);margin-bottom:8px;font-size:11px}.product-price-section{justify-content:space-between;align-items:center;margin-top:auto;display:flex}.product-price{color:var(--primary);font-size:14px;font-weight:700}.pos-cart{background-color:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);height:100%;box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.cart-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px;display:flex}.cart-items{flex-direction:column;flex-grow:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.cart-item{justify-content:space-between;align-items:center;display:flex}.cart-item-detail{flex-direction:column;gap:2px;display:flex}.cart-item-name{color:var(--text-primary);font-size:13px;font-weight:600}.cart-item-price{color:var(--text-muted);font-size:12px}.cart-item-controls{align-items:center;gap:8px;display:flex}.quantity-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--bg-surface);cursor:pointer;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.quantity-display{font-family:var(--font-mono);text-align:center;width:20px;font-size:13px;font-weight:600}.cart-totals{border-top:1px solid var(--border-color);background-color:#f8fafc;flex-direction:column;gap:8px;padding:20px;display:flex}.totals-row{color:var(--text-secondary);justify-content:space-between;font-size:13px;display:flex}.totals-row.grand-total{font-family:var(--font-headline);color:var(--text-primary);border-top:1px dashed var(--border-color);margin-top:8px;padding-top:8px;font-size:18px;font-weight:700}.door-control-panel{grid-template-columns:1fr 2fr;align-items:start;gap:24px;display:grid}.door-access-widget{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.door-button{border-radius:var(--radius-full);color:#fff;cursor:pointer;background:radial-gradient(circle,#3b82f6,#1d4ed8);border:8px solid #eff6ff;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:140px;height:140px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:0 10px 25px #3b82f666}.door-button:hover{transform:scale(1.05)}.door-button.unlocked{background:radial-gradient(circle,#10b981,#047857);border-color:#ecfdf5;box-shadow:0 10px 25px #10b98166}.door-status-text{font-family:var(--font-headline);margin-top:20px;font-size:18px;font-weight:700}.profile-layout{grid-template-columns:280px 1fr;align-items:start;gap:32px;display:grid}.profile-sidebar{text-align:center;flex-direction:column;align-items:center;display:flex}.profile-avatar-large{border-radius:var(--radius-full);border:4px solid var(--bg-surface);width:120px;height:120px;box-shadow:var(--shadow-md);object-fit:cover;background-color:var(--border-color);color:var(--text-secondary);justify-content:center;align-items:center;margin-bottom:16px;font-size:40px;display:flex}.profile-name-lg{font-family:var(--font-headline);margin-bottom:4px;font-size:20px;font-weight:700}.profile-id-mono{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:16px;font-size:12px}.tab-nav{border-bottom:1px solid var(--border-color);gap:24px;margin-bottom:24px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;padding:12px 4px;font-size:14px;font-weight:600}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--primary);border-color:var(--primary)}.detail-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.detail-row{flex-direction:column;gap:4px;display:flex}.detail-label{color:var(--text-muted);font-size:12px;font-weight:600}.detail-value{color:var(--text-primary);font-size:14px;font-weight:500}.calendar-view{background-color:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:24px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.calendar-grid{border-top:1px solid var(--border-color);border-left:1px solid var(--border-color);grid-template-columns:repeat(7,1fr);display:grid}.calendar-day-header{text-align:center;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background-color:#f8fafc;padding:12px;font-size:12px;font-weight:600}.calendar-cell{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background-color:var(--bg-surface);flex-direction:column;gap:6px;min-height:110px;padding:8px;display:flex}.calendar-cell.today{background-color:var(--primary-tint)}.calendar-cell.different-month{background-color:#fafafa}.calendar-date-number{font-family:var(--font-mono);color:var(--text-muted);font-size:12px;font-weight:600}.calendar-event{border-radius:var(--radius-sm);padding:6px 8px;font-size:11px;font-weight:600;line-height:1.2}.event-blue{color:#0369a1;background-color:#e0f2fe;border-left:3px solid #0284c7}.event-orange{color:#c2410c;background-color:#ffedd5;border-left:3px solid #ea580c}.event-green{color:#15803d;background-color:#dcfce7;border-left:3px solid #16a34a}.event-purple{color:#6b21a8;background-color:#f3e8ff;border-left:3px solid #8b5cf6}.portal-nav-item{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:12px;font-size:13px;font-weight:600;display:flex}.portal-nav-item:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.portal-nav-item.active{background-color:var(--primary);color:#fff!important}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.member-portal-toggle{transition:all .2s}.member-portal-toggle:hover{opacity:.9;transform:translateY(-1px)}
