@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--primary-color:#494cff;--primary-hover:#0a58ca;--secondary-color:#6366f1;--dark-color:#03233C;--light-bg:#f8f9fa;--white:#fff;--text-dark:#333;--text-light:#666;--border-color:#e0e0e0;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 24px #0000001f;--transition:all .3s ease}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;background-color:var(--light-bg);font-family:'Inter',sans-serif;color:var(--text-dark);line-height:1.6}
.sidebar{position:fixed;top:0;left:0;width:260px;height:100vh;background:var(--white);border-right:1px solid var(--border-color);padding:1.5rem 0;overflow-y:auto;box-shadow:4px 0 12px #0000000d;z-index:100;transition:var(--transition)}
.sidebar-header{padding:0 1.5rem 2rem;text-align:center;border-bottom:1px solid var(--border-color)}
.sidebar-header img{display:block;max-width:80%;height:auto;margin:0 auto}
.nav-item{margin:.25rem 0}
.nav-link{display:block;padding:.75rem 1.5rem;color:#555;text-decoration:none;transition:var(--transition);border-left:3px solid transparent;font-weight:500;font-size:15px}
.nav-link:hover{background-color:#f8f9fa;color:var(--primary-color);border-left-color:var(--primary-color);padding-left:2rem}
.nav-link.active{background-color:#f0f0f0;color:var(--primary-color);border-left-color:var(--primary-color);font-weight:600}
.main-content{margin-left:260px;min-height:100vh;background-color:var(--light-bg);padding:0;transition:var(--transition)}
.navbar{position:sticky;top:0;z-index:99;background:var(--white)!important;border-bottom:1px solid var(--border-color);padding:1rem 0;box-shadow:var(--shadow-sm)}
.navbar-brand{color:#333!important;font-weight:600;font-size:1.25rem}
.container{padding:2rem}
.card{background-color:var(--white);border-radius:12px;border:none;box-shadow:var(--shadow-md);transition:var(--transition);overflow:hidden}
.card:hover{box-shadow:var(--shadow-lg)}
.card-body{padding:1.5rem}
.stats-card{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem}
.stats-card h6{margin-bottom:.5rem;font-size:.875rem;opacity:.9;font-weight:500}
.stats-card .stat-value{font-size:2rem;font-weight:700;margin-bottom:.25rem}
.stats-card .stat-label{font-size:1rem;opacity:.9}
.table{margin-bottom:0}
.table thead th{background-color:var(--primary-color);color:#fff;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.5px;padding:1rem;border:none}
.table thead th a{color:#fffc;transition:var(--transition)}
.table thead th a:hover{color:#fff}
.table tbody td{padding:1rem;vertical-align:middle;border-color:var(--border-color)}
.table tbody tr{transition:var(--transition)}
.table tbody tr:hover{background-color:#494cff0d}
.table-warning{background-color:#fff8e6!important}
.product-image{width:150px;height:150px;object-fit:cover;border-radius:8px;box-shadow:var(--shadow-sm);cursor:pointer;transition:opacity .2s}
.product-image:hover{opacity:.8}
.no-image-placeholder{width:100px;height:100px;background:var(--light-bg);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-color)}
.btn{border-radius:8px;padding:.5rem 1.5rem;font-weight:500;transition:var(--transition);border:none;display:inline-flex;align-items:center;gap:.5rem}
.btn-primary{background:var(--primary-color);color:#fff}
.btn-primary:hover{background:var(--secondary-color);transform:translateY(-2px);box-shadow:0 5px 15px #494cff4d}
.btn-success{background:linear-gradient(135deg,#48bb78 0%,#38a169 100%);color:#fff}
.btn-success:hover{transform:translateY(-2px);box-shadow:0 5px 15px #48bb784d}
.btn-warning{background:linear-gradient(135deg,#ed8936 0%,#dd6b20 100%);color:#fff}
.btn-danger{background:linear-gradient(135deg,#f56565 0%,#e53e3e 100%);color:#fff}
.btn-secondary{background:#6c757d;color:#fff}
.btn-sm{padding:.375rem 1rem;font-size:.875rem}
.form-control,.form-select{border:2px solid var(--border-color);border-radius:8px;padding:.75rem 1rem;font-size:1rem;transition:var(--transition);background-color:var(--white)}
.form-control:focus,.form-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #494cff1a;background-color:#fff}
.form-label{font-weight:600;color:var(--text-dark);margin-bottom:.5rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}
.search-box{position:relative}
.search-box input{padding-left:2.5rem}
.search-box::before{content:"🔍";position:absolute;left:1rem;top:50%;transform:translateY(-50%);opacity:.5}
.pagination{margin-top:2rem}
.page-link{color:var(--primary-color);border-radius:8px;margin:0 2px;border:none;padding:.5rem 1rem;font-weight:500;transition:var(--transition)}
.page-link:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-2px)}
.page-item.active .page-link{background:var(--primary-color);border:none}
.upload-label{border:2px dashed var(--border-color);border-radius:12px;padding:3rem;text-align:center;background-color:var(--light-bg);transition:var(--transition);cursor:pointer;display:block}
.upload-label:hover{border-color:var(--primary-color);background-color:#494cff0d}
.upload-label i{font-size:3rem;color:var(--primary-color);margin-bottom:1rem;display:block}
.upload-wrapper{position:relative;overflow:hidden;display:inline-block;width:100%}
.upload-wrapper input[type=file]{position:absolute;left:-9999px}
.upload-wrapper .upload-label{min-height:150px;height:150px;display:flex;flex-direction:column;justify-content:center;align-items:center}
.alert{border-radius:8px;border:none;padding:1rem 1.5rem;font-weight:500}
.alert-success{background-color:#d4edda;color:#155724}
.alert-danger{background-color:#f8d7da;color:#721c24}
.form-section{background:var(--white);padding:2rem;border-radius:12px;box-shadow:var(--shadow-sm);margin-bottom:2rem}
.form-section h5{margin-bottom:1.5rem;color:var(--primary-color);font-weight:600}
.form-header,.edit-header{color:#fff;padding:2rem;border-radius:12px 12px 0 0;margin:-1.5rem -1.5rem 2rem}
.form-header{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%)}
.edit-header{background:linear-gradient(135deg,#ed8936 0%,#dd6b20 100%)}
.form-header h3,.edit-header h3{margin:0;font-weight:600;display:flex;align-items:center;gap:1rem}
.form-header i,.edit-header i{font-size:2rem;opacity:.8}
.form-footer{background:var(--light-bg);padding:2rem;margin:2rem -1.5rem -1.5rem;border-radius:0 0 12px 12px;border-top:1px solid var(--border-color)}
.variation-row{background:var(--light-bg);padding:1rem;border-radius:8px;margin-bottom:1rem;border:2px solid transparent;transition:var(--transition);position:relative}
.variation-row:hover{border-color:var(--primary-color);box-shadow:var(--shadow-sm)}
.variation-row.to-be-removed{opacity:.5;background:#fee}
.preview-container{margin-top:1rem;display:none}
.preview-image,.image-preview{max-width:200px;max-height:200px;border-radius:12px;object-fit:cover;box-shadow:var(--shadow-md);margin-top:1rem}
.current-image{width:269px;height:269px;object-fit:cover;border-radius:8px;box-shadow:var(--shadow-md)}
.remove-image-checkbox{padding:.5rem 1rem;background:#fee;border-radius:8px;display:inline-flex;align-items:center;gap:.5rem}
.remove-image-checkbox input[type="checkbox"]{width:20px;height:20px;cursor:pointer}
.remove-variation,.remove-new-variation,.remove-variation-btn{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0}
.image-preview-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:none;z-index:9998}
.image-preview-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:none;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;padding:20px;z-index:9999;max-width:90vw;max-height:90vh}
.image-preview-popup img{max-width:600px;max-height:600px;width:auto;height:auto;display:block;border-radius:8px}
.preview-close-btn{position:absolute;top:10px;right:10px;background:#fff;border:none;font-size:30px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;transition:all .2s}
.preview-close-btn:hover{background:#f0f0f0;transform:scale(1.1)}
.variation-actions{display:flex;gap:.5rem}
.input-group-text{background:var(--primary-color);color:#fff;border:none;font-weight:600}
.stock-info-card{background:linear-gradient(135deg,#4299e1 0%,#3182ce 100%);color:#fff;padding:1.5rem;border-radius:12px;margin-bottom:2rem}
.stock-info-card h6{margin-bottom:.5rem;opacity:.9}
.stock-info-card .stock-value{font-size:2rem;font-weight:700}
.stock-info-card .text-sm{font-size:.875rem;font-weight:400}
.stock-info-card .text-md{font-size:1.5rem}
body.login-page{min-height:100vh;margin:0;display:flex;align-items:center;justify-content:center;background:var(--primary-color);position:relative;overflow:hidden}
.bg-shape{position:absolute;opacity:.08}
.shape-1{width:600px;height:600px;background:#fff;border-radius:50%;top:-300px;right:-200px;animation:float 20s infinite ease-in-out}
.shape-2{width:400px;height:400px;background:#fff;border-radius:50%;bottom:-200px;left:-150px;animation:float 15s infinite ease-in-out reverse}
.shape-3{width:300px;height:300px;background:#fff;transform:rotate(45deg);top:40%;left:5%;animation:rotate 25s infinite linear}
@keyframes float {
0%,100%{transform:translateY(0) translateX(0)}
25%{transform:translateY(-30px) translateX(20px)}
50%{transform:translateY(20px) translateX(-20px)}
75%{transform:translateY(-20px) translateX(30px)}
}
@keyframes rotate {
from{transform:rotate(0deg)}
to{transform:rotate(360deg)}
}
.login-container{width:100%;max-width:480px;margin:0 20px;position:relative;z-index:1}
.login-card{background:#fff;border-radius:24px;box-shadow:0 20px 40px #0003;overflow:hidden}
.login-header{background:#fff;padding:3rem 2.5rem 2rem;text-align:center;border-bottom:1px solid var(--border-color)}
.logo-container{margin:0 auto 1.5rem}
.logo-container img{width:100%;max-width:200px;height:auto}
.login-header h2{color:var(--text-dark);font-size:1.5rem;font-weight:600;margin:0;letter-spacing:-.02em}
.login-body{padding:2.5rem}
.form-floating{margin-bottom:1.25rem;position:relative}
.form-floating input{border:1px solid var(--border-color);border-radius:10px;font-size:.9375rem;padding:1rem;transition:all .2s ease;background:var(--white)}
.form-floating input:focus{border-color:var(--primary-color);background:#fff;box-shadow:0 0 0 3px #494cff1a}
.form-floating label{color:#9ca3af;font-size:.875rem}
.password-toggle{position:absolute;right:1rem;top:50%;transform:translateY(-50%);cursor:pointer;color:#9ca3af;font-size:1.25rem;z-index:10;transition:all .2s ease}
.password-toggle:hover{color:var(--text-dark)}
.login-btn{width:100%;padding:.875rem;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;background:var(--primary-color);color:#fff;cursor:pointer;transition:all .2s ease;margin-top:.5rem;letter-spacing:-.01em}
.login-btn:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #0a58ca4d}
.login-btn:active{transform:translateY(0)}
.remember-forgot{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;font-size:.875rem}
.form-check{margin:0}
.form-check-input{width:18px;height:18px;margin-right:.5rem;cursor:pointer;border:1px solid var(--border-color)}
.form-check-input:checked{background-color:var(--primary-color);border-color:var(--primary-color)}
.form-check-label{cursor:pointer;color:var(--text-dark);font-weight:500}
.forgot-link{color:var(--primary-color);text-decoration:none;font-weight:500;transition:all .2s ease}
.forgot-link:hover{color:var(--primary-hover);text-decoration:underline}
.login-btn.loading{color:transparent;position:relative;pointer-events:none}
.login-btn.loading::after{content:"";position:absolute;width:18px;height:18px;top:50%;left:50%;margin-left:-9px;margin-top:-9px;border:2px solid #fff;border-radius:50%;border-top-color:transparent;animation:spinner .8s linear infinite}
@keyframes spinner {
to{transform:rotate(360deg)}
}
.mobile-menu-toggle{display:none!important;background:none;border:none;font-size:1.75rem;color:var(--text-dark);padding:.5rem;margin-right:1rem;cursor:pointer;transition:var(--transition)}
.mobile-menu-toggle:hover{color:var(--primary-color)}
.mobile-menu-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1049;opacity:0;transition:opacity .3s ease}
.mobile-menu-overlay.active{display:block;opacity:1}
body.menu-open{overflow:hidden}
.navbar-logo{flex:1;text-align:right}
.sidebar-close{position:absolute;top:10px;right:10px;background:#ffffff1a;border:none;color:#fff;font-size:1.5rem;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:1}
.sidebar-close:hover{background:#fff3;transform:scale(1.1)}
@media (max-width: 991px) {
.mobile-menu-toggle{display:block!important}
.sidebar{position:fixed;transform:translateX(-100%);width:280px;box-shadow:4px 0 20px #0000001a;z-index:1050;top:0;height:100vh;overflow-y:auto}
.sidebar.active{transform:translateX(0)}
.main-content{margin-left:0}
.container{padding:1.5rem}
.navbar{padding:.75rem 0}
.navbar-brand{font-size:1.1rem}
.table-responsive{-webkit-overflow-scrolling:touch}
.table{font-size:.875rem}
.table thead th{padding:.75rem;font-size:.7rem}
.table tbody td{padding:.75rem}
.product-image{width:80px;height:80px}
.no-image-placeholder{width:60px;height:60px;font-size:.75rem}
.card{margin-bottom:1.5rem}
.card-body{padding:1.25rem}
.stats-card{padding:1.5rem;margin-bottom:.75rem}
.stats-card .stat-value{font-size:1.75rem}
.stats-card .stat-label{font-size:.875rem}
.form-control,.form-select{font-size:16px;padding:.75rem}
.form-label{font-size:.8rem}
.btn{padding:.625rem 1.25rem;font-size:.875rem}
.btn-sm{padding:.375rem .75rem;font-size:.8rem}
.btn-group{display:flex;flex-wrap:wrap;gap:.25rem}
.form-section{padding:1.5rem;margin-bottom:1.5rem}
.form-header,.edit-header{padding:1.5rem;margin:-1.25rem -1.25rem 1.5rem}
.form-footer{padding:1.5rem;margin:1.5rem -1.25rem -1.25rem}
.variation-row{padding:.75rem;margin-bottom:.75rem}
.remove-variation,.remove-new-variation,.remove-variation-btn{width:28px;height:28px;font-size:.875rem}
.current-image{width:200px;height:200px}
.preview-image,.image-preview{max-width:150px;max-height:150px}
.modal-dialog{margin:1rem}
.modal-content{border-radius:12px}
.image-preview-popup{padding:15px;max-width:95vw;max-height:95vh}
.image-preview-popup img{max-width:100%;max-height:70vh}
.stock-info-card{padding:1.25rem}
.stock-info-card .stock-value{font-size:1.5rem}
.pagination{flex-wrap:wrap;gap:.25rem}
.page-link{padding:.375rem .75rem;font-size:.875rem}
}
@media (max-width: 576px) {
.container{padding:1rem}
.search-box input.form-control{font-size:14px!important;padding:.5rem .75rem!important;height:38px}
.search-box + .btn{font-size:14px!important;padding:.5rem .75rem!important;height:38px;display:flex;align-items:center}
.btn{font-size:14px!important;padding:.5rem .75rem!important}
form.d-flex.gap-3{gap:.5rem!important}
.navbar-brand{font-size:1rem;flex:1}
.d-none-mobile{display:none!important}
.row .col-md-4,.row .col-lg-3{margin-bottom:1rem}
.stats-card{padding:1.25rem}
.stats-card .stat-value{font-size:1.5rem}
.stats-card h6{font-size:.8rem}
.table{font-size:.8rem}
.table thead th{padding:.5rem;font-size:.65rem}
.table tbody td{padding:.5rem}
.product-image{width:60px;height:60px}
.btn{padding:.5rem 1rem;font-size:.8rem}
.btn-sm{padding:.25rem .5rem;font-size:.75rem}
.table .btn-group{flex-direction:column;width:100%}
.table .btn-group .btn{width:100%;margin-bottom:.25rem}
.form-control,.form-select{font-size:16px;padding:.625rem}
.form-section{padding:1rem}
.form-header,.edit-header{padding:1.25rem 1rem;margin:-1rem -1rem 1rem}
.form-header h3,.edit-header h3{font-size:1.25rem}
.form-footer{padding:1rem;margin:1rem -1rem -1rem}
.variation-row .row{margin:0}
.variation-row .col-md-3,.variation-row .col-md-4{padding:0;margin-bottom:.75rem}
.variation-row{padding:1rem .75rem .25rem}
.upload-label{padding:2rem 1rem}
.upload-label i{font-size:2rem}
.current-image-container{text-align:center}
.current-image{width:150px;height:150px;margin:0 auto}
.modal-dialog{margin:.5rem}
.modal-header{padding:1rem}
.modal-body{padding:1rem}
.modal-footer{padding:1rem}
.login-container{margin:0 10px}
.login-card{border-radius:16px}
.login-header{padding:2rem 1.5rem 1.5rem}
.login-body{padding:1.5rem}
.login-header h2{font-size:1.1rem}
.search-box{margin-bottom:1rem}
.search-box input{font-size:14px!important}
.search-box input::placeholder{font-size:14px!important}
.input-group{flex-wrap:nowrap}
.input-group-text{padding:.5rem .75rem;font-size:.875rem}
.alert{padding:.75rem 1rem;font-size:.875rem}
.pagination{justify-content:center}
.page-link{padding:.25rem .5rem;font-size:.8rem;margin:0 1px}
.activity-item{font-size:.8rem;padding:.75rem}
.settings-group{margin-bottom:1.5rem}
}
.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}
@media (max-width: 991px) {
.table-wrapper{margin:0 -1.5rem;padding:0 1.5rem}
}
@media (max-width: 576px) {
.table-wrapper{margin:0 -1rem;padding:0 1rem}
}
.swipe-hint{position:absolute;bottom:10px;right:10px;background:#000000b3;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.75rem;pointer-events:none;animation:pulse 2s ease-in-out infinite;z-index:10}
@keyframes pulse {
0%,100%{opacity:.8;transform:scale(1)}
50%{opacity:1;transform:scale(1.05)}
}
.touch-device .btn:hover{transform:none!important;box-shadow:none!important}
.touch-device .card:hover{box-shadow:var(--shadow-md)!important}
@media (max-width: 576px) {
.text-truncate-mobile{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}
.hide-mobile{display:none!important}
.show-mobile{display:block!important}
}
@media (max-width: 768px) {
.row.g-3 > *{padding-bottom:.5rem}
.btn-group-mobile{display:flex;flex-direction:column;gap:.5rem}
.btn-group-mobile .btn{width:100%}
.modal-dialog{max-width:calc(100% - 2rem)}
.modal-fullscreen-sm-down{max-width:100%;margin:0;height:100%}
.modal-fullscreen-sm-down .modal-content{height:100%;border-radius:0}
}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:var(--light-bg)}
::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--text-light)}
@keyframes fadeIn {
from{opacity:0;transform:translateY(20px)}
to{opacity:1;transform:translateY(0)}
}
.fade-in{animation:fadeIn .5s ease-out}
@keyframes slideIn {
from{opacity:0;transform:translateY(-10px)}
to{opacity:1;transform:translateY(0)}
}
@keyframes fadeOut {
from{opacity:1;transform:translateY(0)}
to{opacity:0;transform:translateY(-10px)}
}
@media (max-width: 768px) {
.product-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}
.product-card{padding:1rem}
.product-card img{height:120px}
}
.d-sm-table-cell{display:none}
@media (min-width: 576px) {
.d-sm-table-cell{display:table-cell}
}
@media (max-width: 991px) {
.complex-form-row{flex-direction:column}
.search-form .form-control{width:100%}
.data-table td:before{content:attr(data-label);float:left;font-weight:700;text-transform:uppercase}
.upload-label{padding:2rem 1rem}
}