@import url(https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700;800&display=swap);:root{--primary:#00a76f;--primary-dark:#007867;--primary-light:#5be49b;--primary-soft:#c8fad6;--sidebar-bg:#fff;--sidebar-bg-2:#fff;--sidebar-text:#454f5b;--sidebar-active:#00a76f;--content-bg:#f9fafb;--card-radius:8px;--radius:8px;--shadow-sm:0 1px 2px #919eab1a;--shadow-md:0 0 2px #919eab29,0 12px 24px -4px #919eab1f;--border:#eaecf0;--bg-muted:#f4f6f8;--text:#212b36;--text-muted:#637381;--success:#22c55e;--success-dark:#118d57;--warning:#ffab00;--danger:#ff5630;--danger-dark:#b71d18;--info:#00b8d9;--header-h:64px;--sidebar-w:260px;--sidebar-w-collapsed:72px}*{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;background:#f9fafb;background:var(--content-bg);color:#212b36;color:var(--text);font-family:Public Sans,Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.btn{align-items:center;border:1px solid #0000;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;line-height:1.4;padding:8px 16px;transition:all .15s ease}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:#00a76f;background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:#007867;background:var(--primary-dark)}.btn-secondary{background:#fff;border-color:#eaecf0;border-color:var(--border);color:#212b36;color:var(--text)}.btn-secondary:hover:not(:disabled){background:#f4f6f8;background:var(--bg-muted);border-color:#dfe3e8}.btn-success{background:#22c55e;background:var(--success);color:#fff}.btn-danger{background:#ff5630;background:var(--danger);color:#fff}.btn-danger-outline{background:#fff;border-color:#fecaca;color:#ff5630;color:var(--danger)}.btn-danger-outline:hover{background:#ffe9d5}.btn-warning{background:#ffab00;background:var(--warning);color:#fff}.btn-info{background:#00b8d9;background:var(--info);color:#fff}.btn-sm{border-radius:6px;font-size:12px;padding:5px 10px}.btn-lg{font-size:15px;padding:12px 22px}.btn-block{width:100%}.btn-block,.btn-icon{justify-content:center}.btn-icon{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:6px;color:#637381;color:var(--text-muted);cursor:pointer;display:inline-flex;padding:6px;transition:all .15s}.btn-icon:hover{background:#c8fad6;background:var(--primary-soft);border-color:#00a76f;border-color:var(--primary);color:#00a76f;color:var(--primary)}.btn-icon.danger:hover{background:#ffe9d5;border-color:#ff5630;border-color:var(--danger);color:#ff5630;color:var(--danger)}.btn-icon.success:hover{background:#f0fdf4;border-color:#22c55e;border-color:var(--success);color:#22c55e;color:var(--success)}.card{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;border-radius:var(--card-radius);box-shadow:0 1px 2px #919eab1a;box-shadow:var(--shadow-sm)}.card-header{align-items:center;border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.card-title{color:#212b36;color:var(--text);font-size:15px;font-weight:700}.card-body{padding:20px}.page{padding:22px 26px}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:20px}.page-title{color:#212b36;color:var(--text);font-size:22px;font-weight:700}.page-subtitle{margin-top:2px}.breadcrumb,.page-subtitle{color:#637381;color:var(--text-muted);font-size:13px}.breadcrumb{align-items:center;display:flex;gap:8px;margin-bottom:6px}.breadcrumb a:hover{color:#00a76f;color:var(--primary)}.breadcrumb .sep{color:#c3cad6}.form-group{margin-bottom:16px}.form-label{color:#212b36;color:var(--text);display:block;font-size:13px;font-weight:600;margin-bottom:6px}.form-label .req{color:#ff5630;color:var(--danger)}.form-control,.form-select{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;color:#212b36;color:var(--text);font-family:inherit;font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s;width:100%}.form-control:focus,.form-select:focus{border-color:#00a76f;border-color:var(--primary);box-shadow:0 0 0 3px #00a76f1f}textarea.form-control{min-height:80px;resize:vertical}.form-error{color:#ff5630;color:var(--danger);font-size:12px;margin-top:4px}.input-group{align-items:center;display:flex}.input-group .form-control{border-radius:8px 0 0 8px}.input-group .input-addon{background:#f4f6f8;background:var(--bg-muted);border:1px solid #eaecf0;border:1px solid var(--border);border-left:none;border-radius:0 8px 8px 0;color:#637381;color:var(--text-muted);font-size:13px;padding:9px 12px}.invalid{border-color:#ff5630!important;border-color:var(--danger)!important}.form-control.is-invalid,.form-select.is-invalid,textarea.form-control.is-invalid{border-color:#ff5630;border-color:var(--danger);box-shadow:0 0 0 3px #ff563024}.form-control.is-invalid:focus,.form-select.is-invalid:focus,textarea.form-control.is-invalid:focus{border-color:#ff5630;border-color:var(--danger);box-shadow:0 0 0 3px #ff563033}.invalid-feedback{color:#ff5630;color:var(--danger);display:block;font-size:12px;font-weight:500;margin-top:5px;width:100%}.table-wrap{overflow-x:auto;position:relative}.table{border-collapse:collapse;width:100%}.table th{background:#f4f6f8;background:var(--bg-muted);color:#637381;color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.table td,.table th{border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);padding:12px 16px}.table td{color:#212b36;color:var(--text);font-size:13.5px;vertical-align:middle}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:#f4f6f8;background:var(--bg-muted)}.table tbody tr:last-child td{border-bottom:none}.table .actions{display:flex;gap:6px;justify-content:flex-end}.table-num{text-align:right}.table-center{text-align:center}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:4px 10px;white-space:nowrap}.badge-dot{background:currentColor;border-radius:50%;height:6px;width:6px}.badge-green{background:#d3fcd2;color:#118d57}.badge-blue{background:#cafdf5;color:#006c9c}.badge-red{background:#ffe9d5;color:#b71d18}.badge-yellow{background:#fff5cc;color:#b76e00}.badge-gray{background:#f4f6f8;background:var(--bg-muted);color:#637381}.badge-indigo{background:#c8fad6;background:var(--primary-soft);color:#007867;color:var(--primary-dark)}.badge-orange{background:#fff5cc;color:#b76e00}.badge-purple{background:#f6f0fd;color:#9c6ade}.badge-cyan{background:#e0f5f5;color:#00848e}.app-layout{display:flex;min-height:100vh}.sidebar{background:linear-gradient(180deg,#fff,#fff);background:linear-gradient(180deg,var(--sidebar-bg) 0,var(--sidebar-bg-2) 100%);border-right:1px solid #eaecf0;border-right:1px solid var(--border);bottom:0;color:#454f5b;color:var(--sidebar-text);display:flex;flex-direction:column;left:0;overflow-y:auto;position:fixed;top:0;transition:width .25s ease,transform .25s ease;width:260px;width:var(--sidebar-w);z-index:100}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-thumb{background:#00a76f33;border-radius:4px}.sidebar-logo{align-items:center;border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);color:#212b36;color:var(--text);display:flex;gap:12px;min-height:64px;min-height:var(--header-h);padding:18px 20px}.sidebar-logo .logo-badge{align-items:center;background:linear-gradient(135deg,#00a76f,#00b8d9);border-radius:10px;color:#fff;display:flex;flex-shrink:0;font-size:18px;font-weight:800;height:36px;justify-content:center;width:36px}.sidebar-logo .logo-name{color:#212b36;font-size:16px;font-weight:800;letter-spacing:.02em}.sidebar-logo .logo-sub{color:#637381;color:var(--text-muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.sidebar-nav{flex:1 1;padding:14px 12px 40px}.nav-group-label{color:#637381;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.12em;padding:14px 10px 6px;text-transform:uppercase}.nav-item{align-items:center;background:none;border:none;border-radius:8px;color:#454f5b;color:var(--sidebar-text);cursor:pointer;display:flex;font-family:inherit;font-size:13.5px;font-weight:500;gap:12px;margin-bottom:2px;padding:9px 12px;text-align:left;transition:background .15s,color .15s;width:100%}.nav-item:hover{background:#f4f6f8;background:var(--bg-muted);color:#212b36;color:var(--text)}.nav-item.active{background:#00a76f14;box-shadow:none;color:#00a76f;color:var(--primary);font-weight:700}.nav-item .nav-icon{display:inline-flex;font-size:16px;justify-content:center;width:20px}.nav-item .nav-arrow{font-size:12px;margin-left:auto;transition:transform .2s}.nav-item .nav-arrow.open{transform:rotate(90deg)}.nav-sub{overflow:hidden;padding-left:12px}.nav-sub-item{align-items:center;border-radius:8px;color:#637381;color:var(--text-muted);display:flex;font-size:13px;gap:10px;padding:8px 12px;transition:all .15s}.nav-sub-item:hover{background:#c8fad6;background:var(--primary-soft);color:#00a76f;color:var(--primary)}.nav-sub-item.active{color:#00a76f;color:var(--primary);font-weight:600}.nav-sub-item .dot{background:#c4cdd5;border-radius:50%;height:5px;width:5px}.nav-sub-item.active .dot{background:#00a76f;background:var(--primary)}.app-layout.sidebar-collapsed .sidebar{width:72px;width:var(--sidebar-w-collapsed)}.app-layout.sidebar-collapsed .main-area{margin-left:72px;margin-left:var(--sidebar-w-collapsed)}.app-layout.sidebar-collapsed .sidebar-nav{padding:14px 10px 40px}.app-layout.sidebar-collapsed .sidebar-logo{justify-content:center;padding:18px 10px}.app-layout.sidebar-collapsed .logo-name,.app-layout.sidebar-collapsed .logo-sub,.app-layout.sidebar-collapsed .nav-arrow,.app-layout.sidebar-collapsed .nav-group-label,.app-layout.sidebar-collapsed .nav-item>span:not(.nav-icon),.app-layout.sidebar-collapsed .nav-sub,.app-layout.sidebar-collapsed .sidebar-logo .modal-close{display:none}.app-layout.sidebar-collapsed .nav-item{justify-content:center;padding:9px 0}.app-layout.sidebar-collapsed .nav-item .nav-icon{width:auto}.main-area{display:flex;flex:1 1;flex-direction:column;margin-left:260px;margin-left:var(--sidebar-w);min-height:100vh;min-width:0;transition:margin-left .25s ease}.main-area main{flex:1 1}.topbar{align-items:center;background:#fff;border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);display:flex;height:64px;height:var(--header-h);justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:50}.topbar-toggle{display:inline-flex}.topbar-left{align-items:center;display:flex;gap:14px}.topbar-search{position:relative}.topbar-search input{background:#f4f6f8;background:var(--bg-muted);border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;font-size:13px;outline:none;padding:8px 12px 8px 34px;transition:all .15s;width:260px}.topbar-search input:focus{background:#fff;border-color:#00a76f;border-color:var(--primary);box-shadow:0 0 0 3px #00a76f1f}.topbar-search .search-icon{color:#637381;color:var(--text-muted);left:11px;position:absolute;top:50%;transform:translateY(-50%)}.topbar-right{gap:10px}.topbar-icon-btn,.topbar-right{align-items:center;display:flex}.topbar-icon-btn{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:10px;color:#637381;color:var(--text-muted);cursor:pointer;font-size:16px;height:38px;justify-content:center;position:relative;transition:all .15s;width:38px}.topbar-icon-btn:hover{background:#c8fad6;background:var(--primary-soft);border-color:#00a76f;border-color:var(--primary);color:#00a76f;color:var(--primary)}.topbar-icon-btn .count-badge{align-items:center;background:#ff5630;background:var(--danger);border-radius:8px;color:#fff;display:flex;font-size:10px;font-weight:700;height:16px;justify-content:center;min-width:16px;padding:0 4px;position:absolute;right:-4px;top:-4px}.user-menu{align-items:center;border:1px solid #0000;border-radius:10px;cursor:pointer;display:flex;gap:10px;padding:6px 10px;position:relative;transition:all .15s}.user-menu:hover{background:#f4f6f8;background:var(--bg-muted);border-color:#eaecf0;border-color:var(--border)}.user-avatar{align-items:center;background:linear-gradient(135deg,#00a76f,#00b8d9);border-radius:10px;color:#fff;display:flex;font-size:15px;font-weight:700;height:36px;justify-content:center;width:36px}.user-meta .user-name{color:#212b36;color:var(--text);font-size:13px;font-weight:600;line-height:1.2}.user-meta .user-role{color:#637381;color:var(--text-muted);font-size:11px}.dropdown-menu{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:12px;box-shadow:0 0 2px #919eab29,0 12px 24px -4px #919eab1f;box-shadow:var(--shadow-md);min-width:190px;overflow:hidden;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:200}.dropdown-item{align-items:center;background:none;border:none;border-radius:8px;color:#212b36;color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:10px;padding:9px 12px;text-align:left;transition:background .12s;width:100%}.dropdown-item:hover{background:#f4f6f8;background:var(--bg-muted);color:#00a76f;color:var(--primary)}.dropdown-item.danger:hover{background:#ffe9d5;color:#ff5630;color:var(--danger)}.dropdown-divider{background:#eaecf0;background:var(--border);height:1px;margin:6px 4px}.stats-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:22px}.stat-card{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;border-radius:var(--card-radius);box-shadow:0 1px 2px #919eab1a;box-shadow:var(--shadow-sm);display:flex;gap:16px;overflow:hidden;padding:18px;position:relative;transition:transform .15s,box-shadow .15s}.stat-card:hover{box-shadow:0 0 2px #919eab29,0 12px 24px -4px #919eab1f;box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:22px;height:48px;justify-content:center;width:48px}.stat-icon.indigo{background:#c8fad6;background:var(--primary-soft);color:#00a76f;color:var(--primary)}.stat-icon.green{background:#d3fcd2;color:#118d57}.stat-icon.orange{background:#fff5cc;color:#b76e00}.stat-icon.blue{background:#cafdf5;color:#006c9c}.stat-icon.purple{background:#f6f0fd;color:#9c6ade}.stat-icon.red{background:#ffe9d5;color:#b71d18}.stat-icon.cyan{background:#e0f5f5;color:#00848e}.stat-value{color:#212b36;color:var(--text);font-size:20px;font-weight:800;line-height:1.2}.stat-label{color:#637381;color:var(--text-muted);font-size:12.5px;margin-top:2px}.charts-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:2fr 1fr;margin-bottom:22px}@media (max-width:1100px){.charts-grid{grid-template-columns:1fr}}.chart-box{padding:20px}.chart-box .card-title{margin-bottom:16px}.modal-overlay{align-items:center;animation:fadeIn .15s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#212b3673;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:300}.modal{animation:slideUp .2s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #919eab47;display:flex;flex-direction:column;max-height:90vh;width:100%}.modal-sm{max-width:440px}.modal-md{max-width:640px}.modal-lg{max-width:900px}.modal-xl{max-width:1200px}.modal-header{align-items:center;border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:18px 22px}.modal-title{font-size:16px;font-weight:700}.modal-close{align-items:center;background:#f4f6f8;background:var(--bg-muted);border:none;border-radius:8px;color:#637381;color:var(--text-muted);cursor:pointer;display:flex;font-size:15px;height:30px;justify-content:center;transition:all .15s;width:30px}.modal-close:hover{background:#fee2e2;color:#ff5630;color:var(--danger)}.modal-body{flex:1 1;min-height:0;overflow-y:auto;padding:22px}.modal-footer{border-top:1px solid #eaecf0;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 22px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.auth-page{background:#fff;display:flex;min-height:100vh}.auth-left{background:linear-gradient(150deg,#004b50,#007867 55%,#00a76f);color:#fff;display:flex;flex:1 1;flex-direction:column;justify-content:space-between;overflow:hidden;padding:60px;position:relative}.auth-left:before{background:radial-gradient(circle,#5be49b4d 0,#0000 60%);height:500px;right:-120px;top:-180px;width:500px}.auth-left:after,.auth-left:before{border-radius:50%;content:"";position:absolute}.auth-left:after{background:radial-gradient(circle,#00b8d947 0,#0000 60%);bottom:-140px;height:380px;left:-100px;width:380px}.auth-left-content{position:relative;z-index:2}.auth-brand{align-items:center;display:flex;gap:14px}.auth-brand .logo-badge{align-items:center;background:linear-gradient(135deg,#00a76f,#00b8d9);border-radius:12px;display:flex;font-size:24px;font-weight:800;height:46px;justify-content:center;width:46px}.auth-brand .logo-name{font-size:20px;font-weight:800}.auth-brand .logo-sub{color:#ffffffa6;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.auth-headline{margin-top:70px}.auth-headline h1{font-size:34px;font-weight:800;line-height:1.25;margin-bottom:16px}.auth-headline p{color:#ffffffb8;font-size:15px;line-height:1.7;max-width:420px}.auth-features{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr;margin-top:48px;max-width:460px}.auth-feature{align-items:flex-start;display:flex;gap:12px}.auth-feature .f-icon{align-items:center;background:#ffffff1f;border-radius:10px;color:#b9f6d3;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.auth-feature .f-title{font-size:13px;font-weight:700}.auth-feature .f-desc{color:#fff9;font-size:12px;margin-top:2px}.auth-foot{color:#ffffff8c;font-size:12px;position:relative;z-index:2}.auth-right{align-items:center;display:flex;flex:1 1;justify-content:center;padding:40px}.auth-card{max-width:420px;width:100%}.auth-card-title{color:#212b36;color:var(--text);font-size:26px;font-weight:800}.auth-card-sub{color:#637381;color:var(--text-muted);font-size:14px;margin-bottom:28px;margin-top:6px}.auth-input-wrap{position:relative}.auth-input-wrap .form-control{border-radius:10px;font-size:14px;padding:12px 12px 12px 42px}.auth-input-wrap .input-icon{font-size:16px;left:14px}.auth-input-wrap .eye-toggle,.auth-input-wrap .input-icon{color:#637381;color:var(--text-muted);position:absolute;top:50%;transform:translateY(-50%)}.auth-input-wrap .eye-toggle{background:none;border:none;cursor:pointer;font-size:15px;right:12px}.auth-options{align-items:center;display:flex;font-size:13px;justify-content:space-between;margin:6px 0 20px}.auth-options label{align-items:center;color:#637381;color:var(--text-muted);cursor:pointer;display:flex;gap:7px}.auth-link{color:#00a76f;color:var(--primary);font-weight:600}.auth-link:hover{text-decoration:underline}.auth-divider{align-items:center;color:#637381;color:var(--text-muted);display:flex;font-size:12px;gap:14px;margin:22px 0}.auth-divider:after,.auth-divider:before{background:#eaecf0;background:var(--border);content:"";flex:1 1;height:1px}@media (max-width:900px){.auth-left{display:none}}.tabs{border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);display:flex;gap:4px;margin-bottom:20px}.tab-item{background:none;border:none;border-bottom:2px solid #0000;color:#637381;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;padding:10px 18px;transition:all .15s}.tab-item:hover{color:#212b36;color:var(--text)}.tab-item.active{border-bottom-color:#00a76f;border-bottom-color:var(--primary);color:#00a76f;color:var(--primary)}.filters-bar{align-items:center;display:flex;flex-wrap:nowrap;gap:10px;margin-bottom:16px;overflow:visible}.filters-bar .form-control,.filters-bar .form-select{min-width:140px;width:auto}.filters-bar .searchable-select{flex-shrink:0;min-width:150px;width:auto}.filters-bar .topbar-search input{min-width:120px;width:180px}.filters-bar .topbar-search{flex-shrink:0}.pagination{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 4px}.pagination .info{color:#637381;color:var(--text-muted);font-size:13px}.pagination .pages{display:flex;gap:6px}.page-btn{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;color:#212b36;color:var(--text);cursor:pointer;display:flex;font-size:13px;height:34px;justify-content:center;min-width:34px;padding:0 8px;transition:all .12s}.page-btn:hover:not(:disabled){color:#00a76f;color:var(--primary)}.page-btn.active,.page-btn:hover:not(:disabled){border-color:#00a76f;border-color:var(--primary)}.page-btn.active{background:#00a76f;background:var(--primary);color:#fff}.page-btn:disabled{cursor:not-allowed;opacity:.5}.loader{align-items:center;color:#637381;color:var(--text-muted);display:flex;flex-direction:column;font-size:13px;gap:14px;justify-content:center;padding:60px}.spinner{animation:spin .8s linear infinite;border:3px solid #eaecf0;border-top-color:#00a76f;border:3px solid var(--border);border-radius:50%;border-top-color:var(--primary);height:38px;width:38px}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{color:#637381;color:var(--text-muted);padding:46px 20px;text-align:center}.empty-state .e-icon{color:#c4cdd5;font-size:44px;margin-bottom:12px}.empty-state h4{color:#212b36;color:var(--text);font-size:15px;margin-bottom:4px}.alert-banner,.empty-state p{font-size:13px}.alert-banner{align-items:center;border-radius:10px;display:flex;gap:10px;margin-bottom:16px;padding:12px 16px}.alert-banner.info{background:#cafdf5;border:1px solid #9ceaf0;color:#006c9c}.alert-banner.warn{background:#fff5cc;border:1px solid #ffe082;color:#b76e00}.section-title{color:#212b36;color:var(--text);font-size:14px;font-weight:700;margin-bottom:14px}.grid-2{grid-gap:16px;grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-gap:16px;grid-template-columns:repeat(3,1fr)}.grid-4{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.detail-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}.detail-item{background:#f4f6f8;background:var(--bg-muted);border:1px solid #eaecf0;border:1px solid var(--border);border-radius:10px;padding:12px 14px}.detail-item .d-label{color:#637381;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.detail-item .d-value{color:#212b36;color:var(--text);font-size:14px;font-weight:600;margin-top:3px}.amount-credit{color:#22c55e;color:var(--success);font-weight:700}.amount-debit{color:#ff5630;color:var(--danger);font-weight:700}@media (max-width:900px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar-toggle{display:inline-flex}.topbar-search input{width:150px}.page{padding:16px}.user-meta{display:none}}.swal-popup{border-radius:12px!important;font-family:Public Sans,Inter,Segoe UI,sans-serif!important}.swal-title{color:#212b36!important;color:var(--text)!important;font-size:18px!important}.swal-html{color:#637381!important;color:var(--text-muted)!important}.swal-cancel-btn,.swal-confirm-btn{border-radius:8px!important;font-weight:600!important}.coa-toolbar{align-items:center;background:linear-gradient(180deg,#f4faf7,#fff);border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);gap:12px;justify-content:space-between;padding:16px 20px}.coa-stats,.coa-toolbar{display:flex;flex-wrap:wrap}.coa-stats{gap:8px}.coa-stat{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:20px;color:#637381;color:var(--text-muted);display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:6px 12px}.coa-stat b{color:#007867;color:var(--primary-dark);font-size:13px}.coa-actions{align-items:center;display:flex;gap:8px}.coa-expand-btn{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;color:#637381;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 14px;transition:all .15s}.coa-expand-btn:hover{color:#00a76f;color:var(--primary)}.coa-expand-btn.on,.coa-expand-btn:hover{border-color:#00a76f;border-color:var(--primary)}.coa-expand-btn.on{background:#00a76f;background:var(--primary);box-shadow:0 4px 12px #00a76f4d;color:#fff}.coa-switch{align-items:center;color:#637381;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px;-webkit-user-select:none;user-select:none}.coa-switch-track{background:#dfe3e8;border-radius:20px;height:22px;position:relative;transition:background .2s;width:40px}.coa-switch-track.on{background:#00a76f;background:var(--primary)}.coa-switch-track:after{background:#fff;border-radius:50%;box-shadow:0 1px 3px #00000040;content:"";height:16px;left:3px;position:absolute;top:3px;transition:transform .2s;width:16px}.coa-switch-track.on:after{transform:translateX(18px)}.coa-body{padding:12px 16px 24px}.coa-tree{display:flex;flex-direction:column;gap:6px}.coa-category{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:box-shadow .2s}.coa-category:hover{box-shadow:0 2px 12px #0000000f}.coa-category-header{align-items:center;border-left:4px solid;cursor:pointer;display:flex;gap:12px;padding:14px 18px;transition:filter .15s;-webkit-user-select:none;user-select:none}.coa-category-header:hover{filter:brightness(.97)}.coa-category-caret{background:#ffffffb3;border:1px solid #00000014;border-radius:6px;font-size:12px;height:22px;width:22px}.coa-category-caret,.coa-category-icon{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.coa-category-icon{border-radius:10px;font-size:16px;height:32px;width:32px}.coa-category-name{flex:1 1;font-size:15px;font-weight:700;letter-spacing:.03em}.coa-category-count{border-radius:20px;font-size:11.5px;font-weight:700;padding:4px 10px;white-space:nowrap}.coa-category-body{display:flex;flex-direction:column;gap:3px;padding:4px 12px 12px}.coa-empty{color:#637381;color:var(--text-muted);font-size:13px;font-style:italic;padding:20px;text-align:center}.coa-branch{border-left:2px solid #e5e7eb;flex-direction:column;gap:2px;margin-bottom:4px;margin-left:16px;margin-top:4px;padding-left:14px}.coa-branch,.coa-node{display:flex;position:relative}.coa-node{align-items:center;border-radius:8px;cursor:pointer;gap:8px;padding:8px 12px;transition:background .15s}.coa-node:hover{background:#c8fad6;background:var(--primary-soft)}.coa-node--parent{font-weight:600}.coa-node--leaf{cursor:default;padding-left:28px}.coa-dot{background:#00a76f;background:var(--primary);border-radius:50%;flex-shrink:0;height:7px;width:7px}.coa-dot.leaf-dot{background:#d1d5db}.coa-caret{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:5px;color:#637381;color:var(--text-muted);display:inline-flex;flex-shrink:0;font-size:11px;height:18px;justify-content:center;width:18px}.coa-caret.leaf{visibility:hidden}.coa-icon{align-items:center;border-radius:8px;display:inline-flex;flex-shrink:0;font-size:14px;height:26px;justify-content:center;width:26px}.coa-name{color:#212b36;color:var(--text);font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coa-code{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:6px;color:#637381;color:var(--text-muted);letter-spacing:.04em;padding:2px 7px}.coa-chip,.coa-code{font-size:11px;font-weight:600}.coa-chip{align-items:center;background:#c8fad6;background:var(--primary-soft);border-radius:20px;color:#007867;color:var(--primary-dark);display:inline-flex;gap:4px;padding:3px 9px}.coa-meta{color:#637381;color:var(--text-muted);font-size:11.5px;font-weight:600}.coa-bal,.coa-meta{margin-left:auto;white-space:nowrap}.coa-bal{color:#212b36;color:var(--text);font-size:12.5px;font-weight:700}.coa-bal.debit{color:#b71d18;color:var(--danger-dark)}.coa-bal.credit{color:#118d57;color:var(--success-dark)}.coa-node .actions,.coa-node .actions-right{align-items:center;display:inline-flex;gap:2px}.coa-node .actions{opacity:0;transition:opacity .15s}.coa-node:hover .actions{opacity:1}.coa-node .actions-right{margin-left:auto;opacity:0;transition:opacity .15s}.coa-node:hover .actions-right{opacity:1}.attachment-list{display:flex;flex-wrap:wrap;gap:12px}.attachment-item{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:10px;display:flex;gap:10px;max-width:100%;min-width:220px;padding:10px;transition:box-shadow .15s}.attachment-item:hover{box-shadow:0 1px 2px #919eab1a;box-shadow:var(--shadow-sm)}.attachment-thumb{border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;object-fit:cover}.attachment-file,.attachment-thumb{flex-shrink:0;height:46px;width:46px}.attachment-file{align-items:center;background:#c8fad6;background:var(--primary-soft);border-radius:8px;color:#007867;color:var(--primary-dark);display:inline-flex;font-size:20px;justify-content:center}.attachment-info{flex:1 1;min-width:0}.attachment-name{color:#212b36;color:var(--text);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-meta{color:#637381;color:var(--text-muted);font-size:11.5px}.attachment-item .btn-icon{flex-shrink:0}.searchable-select{font-size:13.5px;position:relative;width:100%}.searchable-select-trigger{align-items:center;background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius);box-sizing:border-box;color:#212b36;color:var(--text);cursor:pointer;display:flex;gap:8px;min-height:36px;padding:6px 30px 6px 11px;transition:border-color .15s,box-shadow .15s;width:100%}.searchable-select-trigger:hover{border-color:#00a76f;border-color:var(--primary)}.searchable-select-trigger.disabled{background:#f4f6f8;background:var(--bg-muted);cursor:not-allowed;opacity:.7}.searchable-select.open .searchable-select-trigger{border-color:#00a76f;border-color:var(--primary);box-shadow:0 0 0 3px #c8fad6;box-shadow:0 0 0 3px var(--primary-soft)}.searchable-select.is-invalid .searchable-select-trigger{border-color:#ff5630;border-color:var(--danger)}.searchable-select.is-invalid.open .searchable-select-trigger{box-shadow:0 0 0 3px #dc35451f}.searchable-select-value{color:#212b36;color:var(--text)}.searchable-select-placeholder,.searchable-select-value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select-clear,.searchable-select-placeholder{color:#637381;color:var(--text-muted)}.searchable-select-clear{align-items:center;background:#0000;border:none;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:14px;height:20px;justify-content:center;line-height:1;padding:0;width:20px}.searchable-select-clear:hover{background:#c8fad6;background:var(--primary-soft);color:#ff5630;color:var(--danger)}.searchable-select-arrow{color:#637381;color:var(--text-muted);flex-shrink:0;font-size:15px;transition:transform .15s}.searchable-select-arrow.open{color:#00a76f;color:var(--primary);transform:rotate(180deg)}.searchable-select-menu{background:#fff;border:1px solid #eaecf0;border:1px solid var(--border);border-radius:8px;border-radius:var(--radius);box-shadow:0 10px 30px #0000001f;display:flex;flex-direction:column;left:0;max-height:300px;min-width:220px;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);z-index:120}.searchable-select-search{border-bottom:1px solid #eaecf0;border-bottom:1px solid var(--border);position:relative}.searchable-select-search-icon{color:#637381;color:var(--text-muted);font-size:14px;left:11px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.searchable-select-search input{background:#0000;border:none;color:#212b36;color:var(--text);font-size:13px;outline:none;padding:9px 11px 9px 32px;width:100%}.searchable-select-list{flex:1 1;max-height:260px;overflow-y:auto;padding:4px}.searchable-select-option{border-radius:7px;color:#212b36;color:var(--text);cursor:pointer;font-size:13px;overflow:hidden;padding:8px 10px;text-overflow:ellipsis;transition:background .1s;white-space:nowrap}.searchable-select-option.active,.searchable-select-option.selected,.searchable-select-option:hover{background:#c8fad6;background:var(--primary-soft);color:#007867;color:var(--primary-dark)}.searchable-select-option.selected{font-weight:700}.searchable-select-option .hierarchy-separator{color:#637381;color:var(--text-muted);margin:0 2px}.searchable-select-empty{color:#637381;color:var(--text-muted);font-size:12.5px;padding:16px 10px;text-align:center}.searchable-select .invalid-feedback,.searchable-select.is-invalid+.invalid-feedback{display:block}.app-footer{border-top:1px solid #eaecf0;border-top:1px solid var(--border);color:#637381;color:var(--text-muted);font-size:12px;margin-top:auto;padding:14px 20px;text-align:center}.app-footer a{color:#00a76f;color:var(--primary);font-weight:600;text-decoration:none}.app-footer a:hover{text-decoration:underline}.invoice-type-toggle{border:1px solid #eaecf0;border:1px solid var(--border);border-radius:10px;display:flex;gap:0;overflow:hidden;width:fit-content}.toggle-label{align-items:center;background:#f9fafb;border-right:1px solid #eaecf0;border-right:1px solid var(--border);color:#637381;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 24px;transition:all .2s;-webkit-user-select:none;user-select:none}.toggle-label:last-child{border-right:none}.toggle-label.active{background:#00a76f;background:var(--primary);color:#fff}.toggle-label input[type=radio]{display:none}.toggle-text{align-items:center;display:flex;gap:6px}.commission-header{border-bottom:2px solid #000;margin-bottom:24px;padding:20px 0 16px;text-align:center}.commission-title{color:#111;font-size:22px;font-weight:800;margin-bottom:6px}.commission-subtitle{color:#555;font-size:11.5px;line-height:1.5;margin:0 auto;max-width:600px}.commission-fields{max-width:800px}.comm-field{margin-bottom:16px}.comm-label{color:#111;display:block;font-size:13px;font-weight:700;margin-bottom:4px}.comm-value{border-bottom:1px solid #ccc;color:#637381;color:var(--text-muted);font-size:14px;padding:8px 0}.commission-fields .form-control{background:#0000;border:none;border-bottom:1px solid #ccc;border-radius:0;font-size:14px;padding:8px 0}.commission-fields .form-control:focus{border-bottom-color:#00a76f;border-bottom-color:var(--primary);box-shadow:none;outline:none}.commission-fields .form-group{margin-bottom:16px}.voucher-rule-hint{align-items:center;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0369a1;display:flex;font-size:12.5px;gap:8px;line-height:1.5;margin-top:14px;padding:10px 14px}.voucher-locked-row{background:#fafbfc}.voucher-locked-row td input:disabled{background:#f1f5f9;border-bottom:1px dashed #cbd5e1;color:#94a3b8;cursor:not-allowed}.toggle-btn{background:#d1d5db;border:none;border-radius:12px;cursor:pointer;height:24px;padding:0;position:relative;transition:background .2s;width:44px}.toggle-btn.active{background:#00a76f;background:var(--primary)}.toggle-btn .toggle-knob{background:#fff;border-radius:50%;box-shadow:0 1px 3px #00000026;height:18px;left:3px;position:absolute;top:3px;transition:transform .2s;width:18px}.toggle-btn.active .toggle-knob{transform:translateX(20px)}
/*# sourceMappingURL=main.06e37afe.css.map*/