.admin-layout{display:block;min-height:100vh;width:100%;max-width:100%;position:relative}.admin-sidebar{position:fixed;top:0;bottom:0;left:0;width:260px;height:100vh;background-color:var(--color-charcoal-dark);color:var(--color-ivory);z-index:100;overflow-y:auto;overflow-x:hidden;transition:transform var(--transition-normal)}.admin-sidebar-inner{display:flex;flex-direction:column;min-height:100%;padding:var(--space-6) var(--space-4);box-sizing:border-box}.admin-sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);padding-left:var(--space-2)}.admin-brand{font-family:var(--font-family-display);font-size:var(--font-size-2xl);color:var(--color-gold);letter-spacing:.5px;text-decoration:none;font-weight:var(--font-weight-bold);display:inline-flex;align-items:center;min-height:44px}@media (max-width: 992px){.admin-brand{font-size:var(--font-size-xl)}}.admin-sidebar-close-btn{display:none;background:transparent;border:none;color:var(--color-gray-300);font-size:1.75rem;line-height:1;cursor:pointer;padding:0;min-width:44px;min-height:44px;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.admin-sidebar-close-btn:hover{color:var(--color-ivory)}.admin-nav{display:flex;flex-direction:column;gap:var(--space-2);flex-grow:1}.admin-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--color-gray-300);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;transition:all var(--transition-fast);min-height:44px}.admin-nav-item:hover{background-color:var(--color-charcoal-light);color:var(--color-ivory)}.admin-nav-item.is-active{background-color:var(--color-charcoal);color:var(--color-gold);border-left:3px solid var(--color-gold);font-weight:var(--font-weight-semibold)}.admin-sidebar-footer{border-top:1px solid var(--color-charcoal-light);padding-top:var(--space-4);margin-top:auto}.admin-btn-back{width:100%;min-height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-gray-300)!important;border-color:var(--color-charcoal-light)!important}.admin-btn-back:hover{color:var(--color-ivory)!important;border-color:var(--color-gold)!important}.admin-mobile-toggle{display:none;background:transparent;border:1px solid var(--color-gray-300);color:var(--color-charcoal-dark);border-radius:var(--radius-md);padding:0;min-width:44px;min-height:44px;font-size:1.25rem;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.admin-mobile-toggle:hover{border-color:var(--color-gold);background-color:var(--color-gray-100)}.admin-sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#121212a6;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:990;opacity:0;transition:opacity var(--transition-normal)}.admin-sidebar-backdrop.is-visible{display:block;opacity:1}.admin-main{margin-left:260px;width:calc(100% - 260px);min-height:100vh;background-color:var(--color-gray-50);display:flex;flex-direction:column;min-width:0;position:relative;box-sizing:border-box}@media (max-width: 992px){.admin-sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;max-width:85vw;height:100vh;height:100dvh;z-index:995;transform:translate(-100%);box-shadow:var(--shadow-xl)}.admin-sidebar.is-drawer-open{transform:translate(0)}.admin-sidebar-close-btn{display:inline-flex}.admin-main{margin-left:0;width:100%}.admin-mobile-toggle{display:inline-flex;align-items:center;justify-content:center}}.admin-topbar{background-color:#fff;border-bottom:1px solid var(--color-gray-200);padding:var(--space-4) var(--space-8);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}.admin-topbar [data-action=change-lang]{min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.admin-topbar [data-action=reset-demo]{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.admin-content{padding:var(--space-8);flex-grow:1;min-width:0;max-width:100%}@media (max-width: 768px){.admin-topbar{padding:var(--space-3) var(--space-4)}.admin-content{padding:var(--space-4)}}@media (max-width: 480px){.admin-topbar{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.admin-topbar-actions{gap:var(--space-2)!important;width:100%;flex-wrap:wrap!important}.admin-topbar-actions .btn{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);min-height:38px}.admin-content{padding:var(--space-3)}}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-6);margin-bottom:var(--space-8)}.metric-card{background-color:#fff;border-radius:var(--radius-xl);padding:var(--space-6);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm)}.metric-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-gray-500);margin-bottom:var(--space-2)}.metric-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-charcoal-dark)}.metric-sub{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-top:var(--space-1)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;margin-bottom:var(--space-6);background:#fff;padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm);max-width:100%}.admin-toolbar>.d-flex{flex-wrap:wrap;gap:var(--space-2)}.toolbar-group{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;max-width:100%}.search-input-wrap{position:relative;min-width:240px;max-width:100%}@media (max-width: 640px){.admin-toolbar{padding:var(--space-3);flex-direction:column;align-items:stretch;gap:var(--space-3)}.toolbar-group{width:100%;flex-direction:column;align-items:stretch;gap:var(--space-3)}.search-input-wrap{min-width:0;width:100%}.filter-select{width:100%;min-height:44px}.search-input-wrap input{min-height:44px}.admin-toolbar .btn,.admin-toolbar button{min-height:44px;width:100%;justify-content:center}}.search-input-wrap input{width:100%;min-height:44px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-8);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);outline:none;box-sizing:border-box;transition:border-color var(--transition-fast)}.search-input-wrap input:focus{border-color:var(--color-gold)}.search-input-wrap .search-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-gray-400);pointer-events:none}.filter-select{min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);background-color:#fff;color:var(--color-charcoal);outline:none;cursor:pointer;box-sizing:border-box}.filter-select:focus{border-color:var(--color-gold)}.admin-toolbar [id*=clear-filters],.admin-toolbar .btn-clear-filters{min-height:44px;padding:var(--space-2) var(--space-4);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}.admin-card{background-color:#fff;border-radius:var(--radius-xl);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm);overflow:hidden;position:relative}@media (max-width: 768px){.admin-card:has(.admin-table-wrap):before{content:"👉 Vuốt ngang để xem thêm cột & thao tác";display:block;padding:var(--space-2) var(--space-4);background-color:#fffdf9;color:var(--color-gold-dark, #e07a84);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-bottom:1px dashed var(--color-gold-light, #ffb3bc);text-align:right;letter-spacing:.02em}html[lang=en] .admin-card:has(.admin-table-wrap):before{content:"👉 Swipe horizontally to view more columns & actions"}}.admin-table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative;scrollbar-width:thin;scrollbar-color:var(--color-gold, #ff98a2) transparent;background:linear-gradient(to right,#fff 30%,#fff0),linear-gradient(to right,#fff0,#fff 70%) 100% 0,radial-gradient(farthest-side at 0 50%,#2d251e29,#2d251e00),radial-gradient(farthest-side at 100% 50%,#2d251e29,#2d251e00) 100% 0;background-repeat:no-repeat;background-color:#fff;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}.admin-table-wrap::-webkit-scrollbar{height:6px}.admin-table-wrap::-webkit-scrollbar-track{background:var(--color-gray-100, #F3F4F6)}.admin-table-wrap::-webkit-scrollbar-thumb{background:var(--color-gold, #ff98a2);border-radius:var(--radius-sm)}.admin-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--color-gold-dark, #e07a84)}.admin-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--font-size-sm)}.admin-table th{background-color:var(--color-gray-100);color:var(--color-gray-600);padding:var(--space-3) var(--space-4);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-gray-200);white-space:nowrap}.admin-table td{padding:var(--space-4);border-bottom:1px solid var(--color-gray-200);vertical-align:middle}.admin-table td.col-code,.admin-table .booking-code-cell,.admin-table td a[href*="appointments.html?id="]{white-space:nowrap;font-family:monospace;font-weight:600}.admin-table tbody tr:hover{background-color:var(--color-gray-50)}.service-thumb{width:44px;height:44px;border-radius:var(--radius-md);object-fit:cover;background-color:var(--color-gray-100);border:1px solid var(--color-gray-200)}.service-meta-title{font-weight:var(--font-weight-semibold);color:var(--color-charcoal-dark);margin-bottom:var(--space-1)}.service-meta-desc{font-size:var(--font-size-xs);color:var(--color-gray-500);max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-buttons{display:inline-flex;gap:var(--space-3);align-items:center;flex-wrap:nowrap}.admin-table .btn,.admin-table a.btn,.action-buttons .btn{min-height:44px;min-width:44px;padding:var(--space-2) var(--space-3);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:1.2;white-space:nowrap;touch-action:manipulation;border-radius:var(--radius-md)}.action-buttons .btn-danger,.action-buttons .btn-quick-cancel,.action-buttons [class*=btn-delete]{min-width:44px;min-height:44px;padding:0 var(--space-2);margin-left:var(--space-1);display:inline-flex;align-items:center;justify-content:center}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-charcoal);margin-bottom:var(--space-1)}.form-label.required:after{content:" *";color:var(--color-error)}.form-control{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);background-color:#fff;color:var(--color-charcoal);outline:none;transition:border-color var(--transition-fast)}.form-control:focus{border-color:var(--color-gold)}.form-control.is-invalid{border-color:var(--color-error);background-color:#fff5f5}.form-error-msg{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-1)}.empty-state{padding:var(--space-12) var(--space-4);text-align:center;color:var(--color-gray-500)}.empty-state-icon{font-size:40px;margin-bottom:var(--space-3)}.period-filter-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--color-gray-300);background:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-charcoal);cursor:pointer;transition:all var(--transition-fast)}.period-filter-btn:hover{border-color:var(--color-gold);color:var(--color-gold-dark)}.period-filter-btn.is-active{background-color:var(--color-charcoal-dark);color:#fff;border-color:var(--color-charcoal-dark)}.resource-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-4);background:#fff;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);max-width:100%}.resource-item{display:flex;align-items:center;gap:var(--space-3);min-width:0}.resource-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-gray-100);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.dashboard-2col{display:grid;grid-template-columns:1.6fr 1.1fr;gap:var(--space-6);margin-top:var(--space-6);min-width:0;max-width:100%}.dashboard-2col>*{min-width:0;max-width:100%}@media (max-width: 1024px){.dashboard-2col{grid-template-columns:minmax(0,1fr)}}.service-rank-item{padding:var(--space-3) 0;border-bottom:1px solid var(--color-gray-100)}.service-rank-item:last-child{border-bottom:none}.progress-bar-wrap{width:100%;height:8px;background-color:var(--color-gray-100);border-radius:var(--radius-sm);overflow:hidden;margin-top:var(--space-2)}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-gold-light),var(--color-gold));border-radius:var(--radius-sm);transition:width .4s ease-out}.cat-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.cat-stat-card{background:#fff;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-gray-200);box-shadow:var(--shadow-sm)}.cat-stat-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.cat-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-charcoal-dark);font-family:var(--font-serif)}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--font-size-sm)}.data-table th{background-color:var(--color-gray-100);color:var(--color-gray-600);padding:var(--space-3) var(--space-4);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-gray-200);white-space:nowrap}.data-table td{padding:var(--space-4);border-bottom:1px solid var(--color-gray-200);vertical-align:middle}.data-table tbody tr:hover{background-color:var(--color-gray-50)}.dashboard-2col .admin-card .btn,.dashboard-2col .admin-card a.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
