:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #818cf8;--primary-bg: #eef2ff;--secondary: #f59e0b;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--info: #3b82f6;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--bg-tertiary: #f3f4f6;--bg-card: #ffffff;--text-primary: #111827;--text-secondary: #6b7280;--text-muted: #9ca3af;--border-color: #e5e7eb;--hover-bg: #f3f4f6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--gradient-primary: linear-gradient(135deg, #6366f1 0%, #818cf8 100%);--sidebar-width: 260px;--sidebar-collapsed-width: 80px;--header-height: 70px}body.dark-mode{--primary: #818cf8;--primary-dark: #6366f1;--primary-light: #a5b4fc;--primary-bg: #312e81;--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: #1e293b;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border-color: #334155;--hover-bg: #334155;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-secondary);color:var(--text-primary);line-height:1.6;min-height:100vh}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}.app-container{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);height:100vh;position:fixed;left:0;top:0;background-color:var(--bg-card);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:all .3s ease;z-index:100}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{padding:20px;border-bottom:1px solid var(--border-color)}.logo{display:flex;align-items:center;gap:12px}.logo-icon{width:40px;height:40px;background:var(--gradient-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex-shrink:0}.logo-text{font-size:18px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;transition:opacity .3s ease}.sidebar.collapsed .logo-text{opacity:0;width:0}.nav-menu{flex:1;padding:16px 12px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;color:var(--text-secondary);transition:all .2s ease;margin-bottom:4px;cursor:pointer}.nav-item:hover{background-color:var(--hover-bg);color:var(--text-primary)}.nav-item.active{background-color:var(--primary-bg);color:var(--primary)}.nav-icon{width:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-text{white-space:nowrap;overflow:hidden;transition:opacity .3s ease}.sidebar.collapsed .nav-text{opacity:0;width:0}.sidebar-footer{padding:16px;border-top:1px solid var(--border-color)}.sidebar-toggle{width:100%;padding:10px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;color:var(--text-secondary);transition:all .2s ease}.sidebar-toggle:hover{background-color:var(--hover-bg);color:var(--text-primary)}.header{position:fixed;top:0;left:var(--sidebar-width);right:0;height:var(--header-height);background-color:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 32px;z-index:90;transition:left .3s ease}.sidebar.collapsed~.main-wrapper .header{left:var(--sidebar-collapsed-width)}.header-content{display:flex;align-items:center;justify-content:space-between;width:100%}.page-title{font-size:24px;font-weight:600;color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:16px}.search-box{position:relative;width:280px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.search-input{width:100%;padding:10px 14px 10px 42px;border:1px solid var(--border-color);border-radius:10px;background-color:var(--bg-secondary);color:var(--text-primary);transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.header-button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:var(--text-secondary);position:relative;transition:all .2s ease}.header-button:hover{background-color:var(--hover-bg);color:var(--text-primary)}.notification-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background-color:var(--danger);border-radius:50%}.user-avatar{width:40px;height:40px;background:var(--gradient-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;cursor:pointer}.main-wrapper{flex:1;margin-left:var(--sidebar-width);transition:margin-left .3s ease}.sidebar.collapsed~.main-wrapper{margin-left:var(--sidebar-collapsed-width)}.main-content{padding:32px;margin-top:var(--header-height);min-height:calc(100vh - var(--header-height));overflow-x:hidden}.card{background-color:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.card-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:18px;font-weight:600;color:var(--text-primary)}.card-body{padding:24px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-bottom:24px}.stats-grid-full{width:100%;display:flex;gap:24px}.stats-grid-full .stat-card{flex:1;min-width:0}@media(max-width:768px){.stats-grid-full{flex-direction:column}.filter-bar{flex-direction:column;align-items:stretch;gap:12px}.month-selector{justify-content:center}.month-display{font-size:16px;min-width:100px}.month-nav-btn{width:32px;height:32px}}.stat-card{background-color:var(--bg-card);border-radius:16px;padding:24px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.stat-card.highlight{background:var(--gradient-primary);border:none}.stat-card.highlight .stat-title,.stat-card.highlight .stat-value,.stat-card.highlight .stat-change{color:#fff}.stat-card.highlight .stat-icon{background-color:#fff3;color:#fff}.stat-header{display:flex;justify-content:space-between;align-items:flex-start}.stat-info{flex:1}.stat-title{font-size:14px;color:var(--text-secondary);margin-bottom:8px}.stat-value{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.stat-change{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:500}.stat-change.positive{color:var(--success)}.stat-change.negative{color:var(--danger)}.stat-icon{width:48px;height:48px;background-color:var(--primary-bg);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s ease;white-space:nowrap}.btn-primary{background:var(--gradient-primary);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--border-color)}.btn-success{background-color:var(--success);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-icon{width:36px;height:36px;padding:0;border-radius:8px}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px}.table-container{background-color:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden;width:100%;max-width:calc(100vw - var(--sidebar-width) - 64px)}.sidebar.collapsed~.main-wrapper .table-container{max-width:calc(100vw - var(--sidebar-collapsed-width) - 64px)}.table-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.table-title{font-size:18px;font-weight:600;color:var(--text-primary)}.table-actions{display:flex;align-items:center;gap:8px}.table-wrapper{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px 20px;text-align:left;border-bottom:1px solid var(--border-color)}.table th{font-size:13px;font-weight:600;color:var(--text-secondary);background-color:var(--bg-secondary);text-transform:uppercase;letter-spacing:.5px}.table td{font-size:14px;color:var(--text-primary)}.table tbody tr:hover{background-color:var(--hover-bg)}.table tbody tr:last-child td{border-bottom:none}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:8px}.form-input,.form-textarea,.form-control{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:10px;background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:all .2s ease}.form-input:focus,.form-textarea:focus,.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-bg)}.form-textarea{resize:vertical;min-height:100px}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background-color:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-secondary);transition:all .2s ease}.modal-close:hover{background-color:var(--hover-bg);color:var(--text-primary)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.badge-success{background-color:#10b9811a;color:var(--success)}.badge-warning{background-color:#f59e0b1a;color:var(--warning)}.badge-danger{background-color:#ef44441a;color:var(--danger)}.badge-info{background-color:#3b82f61a;color:var(--info)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.status-badge.active{background-color:#10b9811a;color:var(--success)}.status-badge.inactive{background-color:#9ca3af1a;color:var(--text-muted)}.status-dot{width:8px;height:8px;border-radius:50%;background-color:currentColor}.tabs-container{background-color:var(--bg-card);border-radius:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}.tabs-header{display:flex;border-bottom:1px solid var(--border-color);overflow-x:auto}.tab-button{padding:16px 24px;font-size:14px;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all .2s ease;white-space:nowrap}.tab-button:hover{color:var(--text-primary);background-color:var(--hover-bg)}.tab-button.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content{padding:24px}.loading-state,.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-state i,.empty-state i,.error-state i{font-size:48px;color:var(--text-muted);margin-bottom:16px}.loading-state p,.empty-state p,.error-state p{color:var(--text-secondary);font-size:16px}.loading-state i{color:var(--primary)}.error-state i{color:var(--danger)}.error-state .btn{margin-top:16px}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);padding:20px}.login-card{background-color:var(--bg-card);border-radius:20px;box-shadow:var(--shadow-xl);padding:48px;width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:32px}.login-logo{width:60px;height:60px;background:var(--gradient-primary);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;margin:0 auto 16px}.login-header h1{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.login-header p{color:var(--text-secondary);font-size:14px}.login-form .form-group{margin-bottom:24px}.login-form .btn{width:100%;padding:14px;font-size:16px}.login-error{background-color:#ef44441a;color:var(--danger);padding:12px 16px;border-radius:10px;font-size:14px;margin-bottom:20px;display:flex;align-items:center;gap:8px}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-primary{color:var(--primary)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:8px}.gap-2{gap:16px}.gap-3{gap:24px}@media(max-width:1024px){.sidebar{width:var(--sidebar-collapsed-width)}.sidebar .logo-text,.sidebar .nav-text{opacity:0;width:0}.main-wrapper{margin-left:var(--sidebar-collapsed-width)}.header{left:var(--sidebar-collapsed-width)}}@media(max-width:768px){.sidebar{transform:translate(-100%);width:var(--sidebar-width)}.sidebar.mobile-open{transform:translate(0);z-index:100}.sidebar.mobile-open .logo-text,.sidebar.mobile-open .nav-text{opacity:1;width:auto}.main-wrapper{margin-left:0}.header{left:0;padding:0 20px}.main-content{padding:20px}.search-box{display:none}.page-title{font-size:20px}.stats-grid{grid-template-columns:1fr}.modal-content{margin:20px}.login-card{padding:32px 24px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-spin{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .3s ease}.multi-input-container{display:flex;flex-direction:column;gap:8px}.multi-input-row{display:flex;gap:8px;align-items:center}.multi-input-row .form-input{flex:1}.multi-input-row .btn-icon{flex-shrink:0}.add-row-btn{align-self:flex-start}.filter-bar{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:14px;color:var(--text-secondary);white-space:nowrap}.filter-select{padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;min-width:150px}.filter-select:focus{outline:none;border-color:var(--primary)}.date-picker{display:flex;align-items:center;gap:8px}.date-picker input[type=date]{padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-primary);color:var(--text-primary);font-size:14px}.date-picker input[type=date]:focus{outline:none;border-color:var(--primary)}.cv-input-section{background-color:var(--bg-secondary);border-radius:12px;padding:20px;margin-bottom:24px}.cv-input-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.cv-input-row .form-group{margin-bottom:0;flex:1;min-width:150px}.cv-input-row .btn{flex-shrink:0}.summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.summary-card{background-color:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border-color)}.summary-card-label{font-size:13px;color:var(--text-secondary);margin-bottom:4px}.summary-card-value{font-size:24px;font-weight:700;color:var(--text-primary)}.summary-card-value.highlight{color:var(--primary)}.cv-table-wrapper{overflow-x:scroll;overflow-y:visible;width:100%;position:relative;max-width:100%}.cv-table{width:max-content;border-collapse:separate;border-spacing:0}.cv-table th,.cv-table td{padding:8px 12px;white-space:nowrap;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);text-align:center}.cv-table th:last-child,.cv-table td:last-child{border-right:none}.cv-table .sticky-col{position:sticky;background-color:var(--bg-card);z-index:10}.cv-table thead .sticky-col{background-color:var(--bg-secondary);z-index:20}.cv-table .col-name{left:0;min-width:100px;width:100px}.cv-table .col-id{left:100px;min-width:90px;width:90px}.cv-table .col-pass{left:190px;min-width:80px;width:80px}.cv-table .col-price{left:270px;min-width:70px;width:70px}.cv-table .col-total{left:340px;min-width:60px;width:60px;font-weight:600}.cv-table .col-total-sales{left:400px;min-width:90px;width:90px;font-weight:600;border-right:3px solid var(--primary);box-shadow:4px 0 8px -2px #00000026}.cv-table .col-day{min-width:80px;text-align:center;font-size:12px}.cv-table .col-day-data{text-align:center;padding:4px 8px}.day-cell{display:flex;flex-direction:column;align-items:center;gap:2px}.cv-value{font-weight:600;font-size:14px;color:var(--text-primary);cursor:pointer;padding:4px 8px;border-radius:4px;min-width:40px;display:inline-block;transition:background-color .2s}.cv-value:hover{background-color:var(--primary-bg)}.sales-value{font-size:11px;color:var(--text-muted)}.cv-input{width:60px;padding:4px 8px;border:2px solid var(--primary);border-radius:4px;text-align:center;font-size:14px;font-weight:600;background-color:var(--bg-primary);color:var(--text-primary)}.cv-input:focus{outline:none;box-shadow:0 0 0 3px var(--primary-bg)}.cv-table .total-row{background-color:var(--bg-tertiary)}.cv-table .total-row th{font-weight:600;background-color:var(--bg-tertiary);border-bottom:2px solid var(--primary)}.cv-table .total-row .sticky-col{background-color:var(--bg-tertiary)}.cv-table .inactive-row{background-color:#f3f4f6}.cv-table .inactive-row .sticky-col{background-color:#e9eaec}.cv-table .inactive-row:hover{background-color:#9ca3af33}.status-label{display:inline-block;font-size:10px;padding:2px 6px;border-radius:4px;margin-left:6px;font-weight:500;vertical-align:middle}.status-label.inactive{background-color:#9ca3af33;color:var(--text-muted)}.total-cell .cv-value{cursor:default;font-weight:700}.total-cell .cv-value:hover{background-color:transparent}.saving-indicator{color:var(--primary);font-size:14px;display:flex;align-items:center;gap:8px}.month-selector{display:flex;align-items:center;gap:12px;background-color:var(--bg-card);padding:8px 16px;border-radius:12px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.month-nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-secondary);background-color:var(--bg-secondary);border:1px solid var(--border-color);transition:all .2s ease;cursor:pointer}.month-nav-btn:hover{background-color:var(--primary-bg);color:var(--primary);border-color:var(--primary)}.month-nav-btn:active{transform:scale(.95)}.month-display{font-size:18px;font-weight:600;color:var(--text-primary);min-width:120px;text-align:center}.month-today-btn{margin-left:8px;padding:6px 12px;font-size:12px;border-radius:6px;background-color:var(--primary-bg);color:var(--primary);border:1px solid var(--primary);cursor:pointer;transition:all .2s ease}.month-today-btn:hover{background-color:var(--primary);color:#fff}.required{color:var(--danger)}.cv-table a{color:var(--primary);text-decoration:none}.cv-table a:hover{text-decoration:underline}@media(max-width:768px){.table-container{border-radius:8px;margin:0 -12px;max-width:calc(100vw - 8px)}.table-header{padding:12px 16px}.table-title{font-size:14px;white-space:nowrap}.cv-table-wrapper{-webkit-overflow-scrolling:touch}.cv-table .col-name{left:0;min-width:80px;width:80px;font-size:11px}.cv-table .col-id,.cv-table .col-pass,.cv-table .col-price,.cv-table .col-total,.cv-table .col-total-sales{position:static;min-width:50px;width:auto;font-size:11px}.cv-table th,.cv-table td{padding:6px 8px;font-size:11px}.cv-table .col-day{min-width:50px;font-size:10px}.cv-table .col-day-data{padding:4px 6px}.day-cell{min-width:40px}.cv-value{font-size:12px}.sales-value{font-size:9px}.cv-input{width:40px;font-size:12px;padding:2px 4px}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:600px}.table th,.table td{padding:10px 12px;font-size:12px;white-space:nowrap}.table th{font-size:11px}.table .btn-icon{width:32px;height:32px}.table .table-actions{gap:4px}.status-badge{padding:4px 8px;font-size:11px}.modal-content{max-width:calc(100vw - 24px)!important;margin:12px}.modal-body{max-height:70vh!important;padding:16px}.modal-header,.modal-footer{padding:12px 16px}.form-row{grid-template-columns:1fr;gap:12px}.form-group{margin-bottom:12px}.form-input,.form-control{padding:10px 12px;font-size:14px}}
