*{box-sizing:border-box;margin:0;padding:0}body{color:#3d3a35;background-color:#f7f5f1;background-image:url(/bamboo.svg);background-repeat:repeat;background-size:360px 480px;min-height:100vh;font-family:Raleway,system-ui,-apple-system,sans-serif}#root{flex-direction:column;min-height:100vh;display:flex}:root{--primary:#6b8e7b;--primary-dark:#5a7d6b;--primary-light:#e8f0ec;--accent:#c67b5c;--bg-page:#f7f5f1;--bg-card:#fff;--text-primary:#3d3a35;--text-secondary:#7a756e;--text-muted:#a39e98;--border:#e5e0d8;--border-light:#f0ede8;--danger:#d32f2f}.auth-container{background:linear-gradient(135deg,#6b8e7b 0%,#5a7d6b 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:#fff;border-radius:16px;width:100%;max-width:420px;padding:40px;box-shadow:0 20px 60px #00000026}.auth-card h1{text-align:center;color:#3d3a35;margin-bottom:4px;font-size:24px}.auth-card h2{text-align:center;color:#7a756e;margin-bottom:24px;font-size:16px;font-weight:400}.form-group{margin-bottom:16px}.form-group label{color:#5c5852;margin-bottom:6px;font-size:14px;font-weight:500;display:block}.form-group input{border:1.5px solid #e5e0d8;border-radius:8px;outline:none;width:100%;padding:12px 14px;font-size:15px;transition:border-color .2s}.form-group input:focus{border-color:#6b8e7b}.auth-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#6b8e7b,#5a7d6b);border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-size:16px;font-weight:600;transition:opacity .2s}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-link{text-align:center;color:#7a756e;margin-top:20px;font-size:14px}.auth-link a{color:#6b8e7b;font-weight:500;text-decoration:none}.auth-link a:hover{text-decoration:underline}.error-message{color:#d32f2f;background:#fff0f0;border:1px solid #fde8e8;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:14px}.dashboard{background:0 0;min-height:100vh}.dashboard-header{background:#fff;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;box-shadow:0 2px 8px #0000000f}.dashboard-header h1{color:#3d3a35;font-size:20px}.logout-btn{color:#fff;cursor:pointer;background:#ff4757;border:none;border-radius:8px;padding:8px 20px;font-size:14px;transition:opacity .2s}.logout-btn:hover{opacity:.85}.dashboard-card{background:#fff;border-radius:16px;max-width:600px;margin:40px auto;padding:32px;box-shadow:0 4px 20px #0000000f}.dashboard-card.wide{max-width:80vw}.dashboard-card h2{color:#3d3a35;border-bottom:1.5px solid #f0ede8;margin-bottom:20px;padding-bottom:12px;font-size:18px}.info-grid{flex-direction:column;gap:12px;display:flex}.info-item{border-bottom:1px solid #f0ede8;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.info-item:last-child{border-bottom:none}.info-label{color:#7a756e;font-size:14px}.info-value{color:#3d3a35;font-size:15px;font-weight:500}.loading{color:#7a756e;justify-content:center;align-items:center;min-height:100vh;font-size:18px;display:flex}input:-webkit-autofill{-webkit-box-shadow:inset 0 0 0 30px #fff}.nav-links{gap:8px;display:flex}.nav-link{color:#7a756e;border-radius:8px;padding:8px 16px;font-size:14px;text-decoration:none;transition:background .2s}.nav-link:hover{background:#f7f5f1}.nav-link.active{color:#fff;background:#6b8e7b}.calendar-container{max-width:400px;margin:0 auto 24px}.calendar-header{justify-content:space-between;align-items:center;padding:12px 0;display:flex}.cal-title{color:#3d3a35;font-size:18px;font-weight:600}.cal-nav{cursor:pointer;color:#7a756e;background:0 0;border:1.5px solid #e5e0d8;border-radius:8px;padding:6px 14px;font-size:16px;transition:all .2s}.cal-nav:hover{color:#6b8e7b;border-color:#6b8e7b}.calendar-weekdays{text-align:center;grid-template-columns:repeat(7,1fr);padding:8px 0;display:grid}.weekday{color:#a39e98;font-size:13px;font-weight:500}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-day{aspect-ratio:1;cursor:pointer;color:#3d3a35;-webkit-tap-highlight-color:#6b8e7b4d;touch-action:manipulation;background:#f0ede8;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:36px;font-size:15px;transition:all .15s;display:flex}.cal-day:hover:not(.empty):not(.disabled){background:#e8f0ec}.cal-day:active:not(.empty):not(.disabled){color:#fff;background:#6b8e7b}.cal-day.empty{cursor:default;background:0 0}.cal-day.disabled{color:#a39e98;cursor:not-allowed;background:#f5f2ee}.cal-day.selected{color:#fff;background:#6b8e7b;font-weight:700;box-shadow:0 2px 8px #6b8e7b66}.calendar-grid{gap:6px}.cal-nav{min-width:44px;min-height:44px;font-size:18px}.cal-title{font-size:18px}@media (width<=480px){.calendar-container{max-width:100%}.cal-day{min-height:44px;font-size:16px}.cal-nav{font-size:20px}}.selected-date{text-align:center;color:#3d3a35;margin-bottom:16px;font-size:16px;font-weight:600}.time-label{color:#7a756e;margin-bottom:12px;font-size:14px}.slot-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px;display:grid}.slot-btn{cursor:pointer;color:#3d3a35;touch-action:manipulation;background:#fff;border:1.5px solid #e5e0d8;border-radius:10px;padding:14px 8px;font-size:14px;transition:all .15s;position:relative}.slot-btn:hover:not(:disabled){background:#e8f0ec;border-color:#6b8e7b}.slot-btn:active:not(:disabled){color:#fff;background:#6b8e7b;border-color:#6b8e7b}.slot-btn.selected{color:#fff;background:#6b8e7b;border-color:#6b8e7b;font-weight:600;box-shadow:0 2px 8px #6b8e7b4d}.slot-btn.booked{color:#a39e98;cursor:not-allowed;background:#f0ede8;border-color:#e5e0d8}.booked-tag{color:#a39e98;margin-top:2px;font-size:11px;display:block}.reservation-form{border-top:1.5px solid #f0ede8;padding-top:20px}.success-message{color:#5a7d6b;background:#e8f0ec;border:1px solid #d4e8dc;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:14px}.reservation-list{flex-direction:column;gap:12px;display:flex}.reservation-item{background:#f0ede8;border-radius:12px;justify-content:space-between;align-items:center;padding:16px;transition:background .2s;display:flex}.reservation-item.cancelled{opacity:.6}.reservation-info{flex-direction:column;gap:4px;display:flex}.reservation-date{color:#3d3a35;font-size:16px;font-weight:600}.reservation-time{color:#7a756e;font-size:14px}.reservation-status{border-radius:10px;width:fit-content;padding:2px 10px;font-size:12px}.reservation-note{color:#7a756e;font-size:13px}.cancel-btn{color:#ff4757;cursor:pointer;background:0 0;border:1.5px solid #ff4757;border-radius:8px;padding:6px 16px;font-size:13px;transition:all .2s}.cancel-btn:hover{color:#fff;background:#ff4757}.empty-text{text-align:center;color:#7a756e;padding:40px 0;font-size:15px}.admin-tabs{border-bottom:2px solid #f0ede8;gap:0;margin-bottom:20px;display:flex}.admin-tab{color:#7a756e;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 24px;font-size:15px;transition:all .2s}.admin-tab:hover{color:#6b8e7b}.admin-tab.active{color:#6b8e7b;border-bottom-color:#6b8e7b;font-weight:600}.admin-table-wrapper{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th{text-align:left;color:#5c5852;white-space:nowrap;background:#f0ede8;border-bottom:2px solid #e5e0d8;padding:10px 12px;font-weight:600}.admin-table td{color:#3d3a35;border-bottom:1px solid #f0ede8;padding:10px 12px}.admin-table tr:hover{background:#f0ede8}.admin-table input{border:1.5px solid #e5e0d8;border-radius:6px;width:90px;padding:6px 8px;font-size:13px}.admin-table select{border:1.5px solid #e5e0d8;border-radius:6px;padding:6px 8px;font-size:13px}.action-cell{gap:6px;display:flex}.edit-btn,.save-btn,.delete-btn{cursor:pointer;border:none;border-radius:6px;padding:4px 12px;font-size:13px;transition:opacity .2s}.edit-btn{color:#fff;background:#6b8e7b}.save-btn{color:#fff;background:#5a7d6b}.delete-btn{color:#fff;background:#ff4757}.delete-btn:hover{opacity:.85}.cancel-btn-sm{cursor:pointer;color:#7a756e;background:0 0;border:1.5px solid #a39e98;border-radius:6px;padding:4px 12px;font-size:13px}.refresh-bar{color:#7a756e;align-items:center;gap:10px;margin-bottom:16px;font-size:14px;display:flex}.refresh-bar select{background:#fff;border:1.5px solid #e5e0d8;border-radius:6px;padding:6px 10px;font-size:13px}.refresh-btn{color:#fff;cursor:pointer;background:#6b8e7b;border:none;border-radius:6px;padding:6px 14px;font-size:13px;transition:opacity .2s}.refresh-btn:hover{opacity:.85}.refresh-hint{color:#a39e98;font-size:12px}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.pagination-info{color:#7a756e;font-size:13px}.pagination-controls{align-items:center;gap:8px;display:flex}.pagination-limit{background:#fff;border:1.5px solid #e5e0d8;border-radius:6px;padding:6px 8px;font-size:13px}.page-btn{color:#fff;cursor:pointer;background:#6b8e7b;border:none;border-radius:6px;padding:6px 14px;font-size:13px;transition:opacity .2s}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-btn:hover:not(:disabled){opacity:.85}.page-info{color:#7a756e;text-align:center;min-width:60px;font-size:13px}.status-badge{border-radius:10px;padding:2px 10px;font-size:12px;display:inline-block}.status-confirmed{color:#5a7d6b;background:#e8f0ec}.status-cancelled{color:#c62828;background:#fbe9e7}.status-active{color:#5a7d6b;background:#e8f0ec}.status-disabled{color:#c62828;background:#fbe9e7}.add-btn{color:#fff;cursor:pointer;background:#6b8e7b;border:none;border-radius:8px;margin-bottom:16px;padding:8px 20px;font-size:14px;transition:opacity .2s}.add-btn:hover{opacity:.85}.add-form{background:#f0ede8;border-radius:12px;margin-bottom:16px;padding:20px}.add-form-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:12px;display:grid}.add-form-grid input,.add-form-grid select{border:1.5px solid #e5e0d8;border-radius:6px;padding:8px 10px;font-size:13px}.add-form .save-btn{margin-top:8px}.prod-thumb{object-fit:cover;border-radius:6px;width:40px;height:40px}.prod-preview{border-radius:8px;max-width:120px;max-height:120px;margin-bottom:8px;display:block}.desc-cell{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.sale-layout{flex-direction:column;gap:20px;display:flex}.sale-panel{background:#f0ede8;border-radius:12px;padding:20px}.sale-panel h3{color:#3d3a35;margin-bottom:12px;font-size:15px}.sale-search{box-sizing:border-box;border:1.5px solid #e5e0d8;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:14px}.sale-search:focus{border-color:#6b8e7b}.sale-member-list{border:1.5px solid #e5e0d8;border-radius:8px;margin-top:8px;overflow:hidden}.sale-member-item{cursor:pointer;border-bottom:1px solid #f0ede8;align-items:center;gap:12px;padding:10px 14px;transition:background .15s;display:flex}.sale-member-item:last-child{border-bottom:none}.sale-member-item:hover{background:#e8f0ec}.sale-member-item.active{color:#fff;background:#6b8e7b}.sale-member-item .member-name{min-width:60px;font-weight:600}.sale-member-item .member-phone{color:#7a756e;font-size:13px}.sale-member-item.active .member-phone{color:#d4cfc8}.sale-member-item .member-points{color:#a39e98;margin-left:auto;font-size:12px}.sale-selected-member{background:#e8f0ec;border-radius:8px;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;font-size:14px;display:flex}.sale-product-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.sale-product-card{cursor:pointer;background:#fff;border:1.5px solid #e5e0d8;border-radius:10px;padding:12px;transition:all .15s;position:relative}.sale-product-card:hover{border-color:#6b8e7b;box-shadow:0 2px 8px #6b8e7b26}.sale-product-card.in-cart{background:#e8f0ec;border-color:#6b8e7b}.prod-card-name{color:#3d3a35;margin-bottom:4px;font-size:14px;font-weight:600}.prod-card-price{color:#6b8e7b;font-size:16px;font-weight:700}.prod-card-stock{color:#a39e98;margin-top:4px;font-size:12px}.prod-card-qty{color:#fff;background:#6b8e7b;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.sale-cart-panel .auth-btn{margin-top:16px}.qty-control{align-items:center;gap:6px;display:flex}.qty-btn{cursor:pointer;background:#fff;border:1.5px solid #e5e0d8;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;transition:all .15s;display:flex}.qty-btn:hover{color:#6b8e7b;border-color:#6b8e7b}.sale-total{text-align:right;border-top:1.5px solid #e5e0d8;margin-top:12px;padding:12px 0;font-size:18px}.sale-total strong{color:#6b8e7b;font-size:22px}.sale-receipt{text-align:center;background:#e8f0ec;border-radius:12px;margin-bottom:16px;padding:20px}.sale-receipt h3{color:#5a7d6b;margin-bottom:8px;font-size:18px}.sale-receipt p{color:#3d3a35;margin-bottom:12px;font-size:15px}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:16px;min-width:320px;max-width:420px;padding:28px;box-shadow:0 20px 60px #0003}.modal-content h3{color:#3d3a35;margin-bottom:20px;font-size:18px}.special-points-row{align-items:center;gap:10px;margin-bottom:12px;font-size:14px;display:flex}.special-points-row input{text-align:center;border:1.5px solid #e5e0d8;border-radius:6px;width:80px;padding:8px 10px;font-size:14px}.special-points-row input:focus{border-color:#6b8e7b;outline:none}.special-hint{color:#7a756e;background:#fff8e1;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:13px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.settings-form{max-width:400px}.settings-form .form-group{align-items:center;gap:12px;margin-bottom:20px;display:flex}.settings-form label{color:#5c5852;white-space:nowrap;font-size:14px;font-weight:500}.settings-form input{box-sizing:border-box;border:1.5px solid #e5e0d8;border-radius:8px;outline:none;width:100%;padding:10px 14px;font-size:15px}.settings-form input:focus{border-color:#6b8e7b}.price-warning{color:#d32f2f;white-space:nowrap;background:#fff0f0;border-radius:4px;padding:4px 8px;font-size:12px}
