@import"https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&display=swap";.sidebar{grid-column:1;grid-row:1;background-color:#fff;height:100vh;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;z-index:var(--z-sidebar);scrollbar-width:none;border-right:1px solid #e5e7eb}.sidebar::-webkit-scrollbar{display:none}.sidebar-brand{display:flex;align-items:center;gap:var(--spacing-2);padding:0 var(--spacing-2);flex-shrink:0;height:48px;border-bottom:1px solid #e5e7eb}.sidebar-brand-icon{width:32px;height:32px;border-radius:var(--radius-md);background:var(--color-gray-900);color:var(--color-white);display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-brand-meta{display:flex;flex-direction:column;min-width:0}.sidebar-brand-text{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--color-gray-900);letter-spacing:-.3px;line-height:1.2;white-space:nowrap}.sidebar-brand-sub{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav{flex:1;padding:var(--spacing-1) 0;overflow-y:auto;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-menu{list-style:none;padding:0;margin:1;display:flex;flex-direction:column}.sidebar-section-title{padding:var(--spacing-4) var(--spacing-5) var(--spacing-2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.sidebar-link{display:flex;align-items:center;gap:var(--spacing-3);padding:6px var(--spacing-4);border-radius:var(--radius-md);margin:0;color:#020617;text-decoration:none;font-size:15px;font-weight:500;transition:background-color var(--transition-fast),color var(--transition-fast);border:none;background:none;cursor:pointer;width:calc(100% - calc(var(--spacing-3) * 2));text-align:left;white-space:nowrap}.sidebar-link:hover{background-color:#f3f4f6;color:#000}.sidebar-link.active{background-color:#e6eaf1;color:#020617;margin:0;font-weight:500}.sidebar-link.active .sidebar-icon{color:#020617}.sidebar-icon{width:18px;height:18px;flex-shrink:0;color:#020617;transition:color var(--transition-fast)}.sidebar-masters-section{margin-top:var(--spacing-2)}.sidebar-masters-toggle{justify-content:space-between;color:#020617;font-size:15px;font-weight:500}.sidebar-masters-inner{display:flex;align-items:center;gap:var(--spacing-3)}.sidebar-submenu-toggle{display:flex;align-items:center;justify-content:space-between;background:none;border:none;margin:0;padding:6px var(--spacing-4);border-radius:var(--radius-lg);cursor:pointer;color:#020617;font-size:15px;font-weight:500}.sidebar-submenu-toggle:hover{background-color:#f3f4f6;color:#000}.sidebar-submenu-inner{display:flex;align-items:center;gap:var(--spacing-3)}.sidebar-submenu{margin:2px var(--spacing-3) 2px calc(var(--spacing-3) + 10px);border-left:1px solid #e5e7eb;padding-left:var(--spacing-3)}.sidebar-submenu-link{padding:7px var(--spacing-3);font-size:14px;font-weight:400;color:#020617}.sidebar-submenu-link.active{background-color:#e6eaf1;color:#020617;font-weight:500}.sidebar-footer{margin-top:auto;padding:var(--spacing-3);border-top:1px solid #e5e7eb;background:#f3f4f6;display:flex;flex-direction:column;gap:2px;flex-shrink:0}.sidebar-footer-dir-btn{background-color:#dbeafe;color:#2563eb;border:1px solid #bfdbfe;justify-content:center;font-size:12px;font-weight:600}.sidebar-footer-dir-btn:hover:not(:disabled){background-color:#d1e3ff}.sidebar-footer-signout{justify-content:center;background-color:#fee2e2;color:#ef4444;border:1px solid #fecaca;font-size:12px;font-weight:600}.sidebar-footer-signout:hover:not(:disabled){background-color:#fecaca}.sidebar-apps-title{padding:4px var(--spacing-3) 6px;color:#020617}.sidebar-footer .sidebar-link--app{margin:0;width:100%;padding:6px var(--spacing-3);font-size:13px;color:#020617}.sidebar-link--app .sidebar-icon{color:#020617}.sidebar-link--app:hover{background-color:#0000001a;color:#020617}.sidebar-link--app:hover .sidebar-icon{color:#020617}.sidebar-app-label{flex:1}.sidebar-app-arrow{opacity:.45}.sidebar.is-collapsed .sidebar-brand{justify-content:center;padding:0}.sidebar-link.is-icon-only{justify-content:center;gap:0;width:44px;margin:0 auto;padding:6px 0}.app-header{height:56px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 20px;gap:12px;flex-shrink:0}.app-header-menu{padding:6px;border-radius:8px;color:#475569;background:transparent;border:none;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,background-color .15s ease}.app-header-menu:hover{color:#0f172a;background:#f1f5f9}.app-header-title{font-size:.875rem;font-weight:600;color:#334155;flex:1}.app-header-right{display:flex;align-items:center;gap:4px}.app-header-user{display:flex;align-items:center;gap:12px;margin-left:4px}.app-header-avatar{width:32px;height:32px;border-radius:9999px;background:#f1f5f9;border:1px solid #cbd5e1;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#334155;flex-shrink:0}.app-header-user-meta{display:none;flex-direction:column;align-items:flex-start}@media(min-width:640px){.app-header-user-meta{display:flex}}.app-header-user-name{font-size:.875rem;font-weight:600;color:#0f172a;line-height:1.2}.app-header-user-role{font-size:.75rem;color:#64748b}.app-header-logout{padding:6px;border-radius:8px;color:#475569;background:transparent;border:none;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,background-color .15s ease}.app-header-logout:hover{color:#f43f5e;background:#fff1f2}.page-spinner-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:240px;width:100%;color:var(--color-slate-500, #64748b)}.page-spinner-icon{width:32px;height:32px;color:var(--color-primary, #2563eb);animation:page-spinner-rotate .9s linear infinite}.page-spinner-text{font-size:.875rem;font-weight:500}@keyframes page-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--color-primary: #2563EB;--color-primary-dark: #1D4ED8;--color-primary-light: #3B82F6;--color-primary-subtle: #EFF6FF;--color-accent: #0EA5E9;--color-accent-light: #38BDF8;--color-accent-dark: #0284C7;--color-success: #10B981;--color-success-light: #34D399;--color-success-dark: #059669;--color-success-subtle: #ECFDF5;--color-warning: #F59E0B;--color-warning-light: #FCD34D;--color-warning-dark: #D97706;--color-warning-subtle: #FFFBEB;--color-error: #EF4444;--color-error-light: #F87171;--color-error-dark: #DC2626;--color-error-subtle: #FEF2F2;--color-info: #6366F1;--color-info-light: #818CF8;--color-info-dark: #4F46E5;--color-info-subtle: #EEF2FF;--color-white: #FFFFFF;--color-gray-50: #F8FAFC;--color-gray-100: #F1F5F9;--color-gray-200: #E2E8F0;--color-gray-300: #CBD5E1;--color-gray-400: #94A3B8;--color-gray-500: #64748B;--color-gray-600: #475569;--color-gray-700: #334155;--color-gray-800: #1E293B;--color-gray-900: #0F172A;--color-black: #000000;--color-sidebar-bg: #ffffff;--color-sidebar-border: #e2e8f0;--color-sidebar-text: #475569;--color-sidebar-text-hover: #0f172a;--color-sidebar-text-active: #0f172a;--color-sidebar-active-bg: rgba(15, 23, 42, .08);--color-sidebar-hover: rgba(15, 23, 42, .04);--color-bg-page: #F8FAFC;--color-bg-card: #FFFFFF;--font-primary: "Lexend", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--fs-xs: .6875rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-lg: 1.0625rem;--fs-xl: 1.1875rem;--fs-2xl: 1.375rem;--fs-3xl: 1.75rem;--fs-4xl: 2.125rem;--fw-light: 300;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.25;--lh-normal: 1.5;--lh-relaxed: 1.75;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .625rem;--radius-xl: .875rem;--radius-2xl: 1.25rem;--radius-full: 9999px;--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 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .06);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .12), 0 8px 16px rgba(0, 0, 0, .08);--transition-fast: .12s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--z-sidebar: 30;--z-header: 20;--z-dropdown: 100;--z-modal-backdrop: 200;--z-modal: 300}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box;font-family:var(--font-primary)}body{font-family:var(--font-primary);font-size:var(--fs-base);font-weight:var(--fw-normal);line-height:var(--lh-normal);color:var(--color-gray-900)}button,input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-400)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app-page{position:relative;padding:var(--spacing-8);display:flex;flex-direction:column;gap:var(--spacing-6);flex:1}.app-badge{display:inline-block;padding:6px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.app-badge-gray{background:var(--color-gray-100);color:var(--color-gray-600);border:1px solid rgba(226,232,240,.6)}.app-badge-green{background:var(--color-success-subtle);color:var(--color-success-dark);border:1px solid rgba(16,185,129,.2)}.app-badge-red{background:var(--color-error-subtle);color:var(--color-error-dark);border:1px solid rgba(239,68,68,.2)}.app-error{padding:var(--spacing-3);color:#b91c1c;background:#fee2e2;border:1px solid #f87171;border-radius:4px;margin-bottom:var(--spacing-4);font-size:var(--fs-sm)}.app-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px var(--spacing-6);color:var(--color-gray-400);gap:var(--spacing-3);font-size:var(--fs-sm)}:root{--sidebar-width: 260px;--header-height: 56px}.app-layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:1fr;height:100vh;overflow:hidden;background-color:#f8fafc;transition:grid-template-columns .3s cubic-bezier(.4,0,.2,1)}.app-layout.is-collapsed{grid-template-columns:64px 1fr}.app-main-wrapper{grid-column:2;grid-row:1;display:flex;flex-direction:column;overflow:hidden}.main-content{flex:1;overflow-y:auto;padding:0;background-color:#f9f9f9}.main-content .main-content{padding:0;overflow:visible}.app-loader-wrapper{min-height:100vh;background-color:#f8fafc;display:flex;align-items:center;justify-content:center}.app-loader-spinner{width:2rem;height:2rem;border:4px solid #000000;border-top-color:transparent;border-radius:9999px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);border-radius:10px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--transition-fast);border:none;white-space:nowrap}.app-btn:disabled{opacity:.7;cursor:not-allowed}.app-btn-primary{background:#0f172a;color:var(--color-white);padding:9px 18px}.app-btn-primary:hover:not(:disabled){background:#1e293b}.app-btn-primary:active:not(:disabled){transform:scale(.98)}.app-btn-secondary{background:var(--color-white);color:var(--color-gray-600);border:1px solid var(--color-gray-200);padding:8px 16px}.app-btn-secondary:hover:not(:disabled){background:var(--color-gray-50);border-color:#000;color:var(--color-black)}.app-btn-icon{background:transparent;border:none;color:var(--color-gray-400);padding:8px;border-radius:10px;cursor:pointer}.app-btn-icon:hover{color:var(--color-gray-900);background:var(--color-gray-100)}.app-btn-icon:focus:not(:focus-visible){outline:none}.app-btn-danger{background-color:var(--color-error);color:var(--color-white);font-weight:var(--fw-bold);padding:9px 20px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:var(--spacing-2);transition:background-color var(--transition-fast)}.app-btn-danger:hover{background-color:var(--color-error-dark)}.app-btn-danger:disabled{opacity:.5;cursor:not-allowed}.app-card{background:var(--color-white);border:1px solid #e5e7eb;border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}.app-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.app-card-title{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--color-black);margin-bottom:var(--spacing-4);line-height:1.3}.app-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:var(--spacing-5)}.app-stat-card{background:var(--color-white);border:1px solid #e5e7eb;border-radius:var(--radius-xl);padding:var(--spacing-5);box-shadow:var(--shadow-xs);transition:box-shadow .15s ease}.app-stat-card:hover{box-shadow:var(--shadow-md)}.app-stat-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.app-stat-value{font-size:26px;line-height:1.2;font-weight:var(--fw-bold);color:var(--color-black)}.app-form{display:flex;flex-direction:column;gap:var(--spacing-6)}.app-form-grid,.app-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-4)}.app-label{display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:6px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--color-gray-700)}.app-input{width:100%;padding:10px 16px;border:1px solid var(--color-gray-200);border-radius:12px;outline:none;transition:all .15s ease;background:var(--color-white);font-family:inherit;font-size:var(--fs-sm);box-sizing:border-box}.app-input:focus{border-color:var(--color-black)}.app-input--readonly{background:var(--color-gray-100, #f1f5f9);color:var(--color-gray-600, #475569);cursor:not-allowed}.app-textarea{width:100%;padding:12px 16px;border:1px solid var(--color-gray-200);border-radius:12px;outline:none;transition:all .15s ease;background:var(--color-white);font-family:inherit;font-size:var(--fs-sm);resize:none;box-sizing:border-box}.app-textarea:focus{border-color:var(--color-black)}.app-search-wrapper{background:var(--color-white);border-radius:8px;border:1px solid var(--color-gray-200);box-shadow:var(--shadow-xs);display:flex;align-items:center;gap:var(--spacing-2)}.app-search-icon-wrapper{padding-left:12px;color:var(--color-gray-400);display:flex;align-items:center}.app-search-input{flex:1;border:none;outline:none;background:transparent;color:var(--color-gray-900);padding:10px 0;font-family:inherit;font-size:var(--fs-sm)}.app-table-wrapper{background:var(--color-white);border-radius:var(--radius-xl);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-xs);overflow:hidden}.app-table-container{overflow-x:auto}.app-table{width:100%;text-align:left;border-collapse:collapse;background-color:var(--color-white);font-size:14px}.app-table-thead-row{background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200)}.app-table-th{padding:12px var(--spacing-5);font-size:var(--fs-sm);font-weight:600;color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.app-table-tbody>tr+tr{border-top:1px solid var(--color-gray-100)}.app-table-row{transition:background-color .15s ease}.app-table-row:hover{background:var(--color-gray-50)}.app-table-td{padding:12px var(--spacing-5);font-size:var(--fs-sm);color:var(--color-gray-700);vertical-align:middle}.app-table-th--right,.app-table-td--right{text-align:right}.app-table-td p{margin:0}.app-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--spacing-4)}.app-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .15s ease}.app-modal-content{background:var(--color-white);border-radius:16px;box-shadow:var(--shadow-xl);width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;position:relative;z-index:var(--z-modal);animation:appZoomIn .2s ease-out;overflow:hidden}@keyframes appZoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.app-modal-header{padding:var(--spacing-6);border-bottom:1px solid var(--color-gray-100);display:flex;align-items:center;justify-content:space-between;background:#f8fafc80}.app-modal-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--color-gray-900)}.app-modal-close{padding:8px;color:var(--color-gray-400);border-radius:12px;transition:background-color .15s ease,color .15s ease;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.app-modal-close:hover{color:var(--color-gray-700);background:var(--color-gray-100)}.app-modal-body{padding:var(--spacing-6);overflow-y:auto;font-size:var(--fs-sm)}.app-modal-footer{padding:var(--spacing-5);border-top:1px solid var(--color-gray-100);background:#f8fafc80;display:flex;justify-content:flex-end;gap:var(--spacing-3)}.ss-wrapper{position:relative;width:100%}.ss-input-wrap{position:relative}.ss-input-wrap .app-input{padding-right:36px}.ss-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#94a3b8;pointer-events:none}.ss-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 16px #00000014;max-height:200px;overflow-y:auto;z-index:50}.ss-item{display:block;width:100%;text-align:left;padding:10px 16px;font-size:var(--fs-sm);color:#1e293b;background:transparent;border:none;cursor:pointer;font-family:inherit}.ss-item:hover{background:#f1f5f9}.ss-item:first-child{border-radius:12px 12px 0 0}.ss-item:last-child{border-radius:0 0 12px 12px}@keyframes util-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes util-pulse{0%,to{opacity:1}50%{opacity:.5}}.icon-spin{animation:util-spin .9s linear infinite}.text-pulse{animation:util-pulse 1.6s ease-in-out infinite}.text-blue{color:#3b82f6}.text-green{color:#10b981}.text-purple{color:#8b5cf6}.text-amber{color:#f59e0b}.text-rose{color:#f43f5e}.text-slate-300{color:#cbd5e1}.text-slate-400{color:#94a3b8}.text-slate-500{color:#64748b}.text-slate-600{color:#475569}.text-slate-700{color:#334155}.text-slate-900{color:#0f172a}.bg-slate-50{background-color:#f8fafc}.bg-slate-100{background-color:#f1f5f9}.text-center{text-align:center}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.app-divider{height:1px;margin:4px 0;background-color:#f1f5f9}.app-empty-cell{text-align:center;padding:32px 0}.app-icon-12{width:12px;height:12px}.app-icon-14{width:14px;height:14px}.app-icon-16{width:16px;height:16px}.app-icon-20{width:20px;height:20px}.app-icon-24{width:24px;height:24px}.app-icon-32{width:32px;height:32px}.app-mr-2{margin-right:8px}.app-mt-1{margin-top:4px}.app-gap-1{gap:4px}.app-gap-3{gap:12px}.app-py-8{padding-top:32px;padding-bottom:32px}.app-flex{display:flex}.app-flex-1{flex:1}.app-flex-col{display:flex;flex-direction:column}.app-items-center{align-items:center}.app-justify-center{justify-content:center}.app-items-start{align-items:flex-start}.app-relative{position:relative}.app-pointer-none{pointer-events:none}.app-search-icon-trailing{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#94a3b8;pointer-events:none}.app-rounded-full{border-radius:9999px}.app-border{border:1px solid #e2e8f0}.app-cat-icon-wrap{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:8px;border:1px solid #f1f5f9;border-radius:9999px;background:#f8fafc}
