@import url(https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap);.login-page{align-items:center;background:linear-gradient(135deg,#f5f5f5,#e8f5e0);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;max-width:380px;overflow:hidden;width:100%}.login-header{background:#7dc242;padding:28px 24px;text-align:center}.login-leaf{display:block;font-size:36px;margin-bottom:8px}.login-header h1{color:#fff;font-size:20px;font-weight:700;margin-bottom:4px}.login-header p{color:#ffffffd9;font-size:12px}.login-form{gap:16px;padding:28px 24px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:5px}.login-field label{color:#444;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.login-field input{border:1px solid #ddd;border-radius:6px;color:#1a1a1a;font-size:14px;outline:none;padding:10px 12px;transition:border-color .15s;width:100%}.login-field input:focus{border-color:#7dc242;box-shadow:0 0 0 3px #7dc2421f}.login-pass-wrap{position:relative}.login-pass-wrap input{padding-right:40px}.login-toggle-pass{background:none;border:none;cursor:pointer;font-size:16px;padding:2px;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.login-error{background:#fff3f3;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;font-size:13px;line-height:1.4;padding:10px 12px}.login-btn{background:#7dc242;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;margin-top:4px;padding:12px;transition:background .15s,opacity .15s}.login-btn:hover:not(:disabled){background:#6aad35}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid #f0f0f0;color:#aaa;font-size:11px;padding:14px;text-align:center}.admin-layout{background:#f5f5f5;display:flex;font-family:Roboto,sans-serif;min-height:100vh}.admin-sidebar{background:#1e1e1e;display:flex;flex-direction:column;flex-shrink:0;height:100vh;overflow-y:auto;position:sticky;top:0;width:220px}.admin-sidebar__brand{align-items:center;background:#7dc242;display:flex;font-size:22px;gap:10px;padding:20px 16px}.admin-sidebar__title{color:#fff;font-size:14px;font-weight:700;line-height:1.2}.admin-sidebar__sub{color:#fffc;font-size:11px}.admin-nav{display:flex;flex:1 1;flex-direction:column;padding:12px 0}.admin-nav__item{border-left:3px solid #0000;color:#aaa;font-size:13px;font-weight:500;padding:11px 18px;text-decoration:none;transition:background .15s,color .15s}.admin-nav__item:hover{background:#2a2a2a;color:#fff}.admin-nav__item.active{background:#2a2a2a;border-left-color:#7dc242;color:#7dc242}.admin-sidebar__footer{border-top:1px solid #333;padding:16px}.admin-sidebar__user{color:#ddd;font-size:13px;font-weight:600}.admin-sidebar__rol{color:#7dc242;font-size:11px;margin-bottom:10px}.btn-logout{background:#ff6b6b1a;border:1px solid #ff6b6b4d;border-radius:6px;color:#ff6b6b;cursor:pointer;font-size:12px;font-weight:600;padding:8px;transition:background .15s;width:100%}.btn-logout:hover{background:#ff6b6b33}.admin-main{display:flex;flex:1 1;flex-direction:column;min-width:0}.admin-topbar{background:#fff;border-bottom:1px solid #e0e0e0;padding:14px 24px;position:sticky;top:0;z-index:10}.admin-page-title{color:#1a1a1a;font-size:18px;font-weight:700}.admin-content{flex:1 1;padding:20px 24px}.admin-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.admin-count{color:#666;font-size:13px}.admin-loading{color:#888;padding:40px;text-align:center}.admin-error{background:#fff3f3;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;font-size:13px;margin-bottom:12px;padding:10px 14px}.admin-table-wrap{border:1px solid #e0e0e0;border-radius:8px;overflow-x:auto}.admin-table{background:#fff;border-collapse:collapse;font-size:13px;width:100%}.admin-table th{background:#f8f8f8;border-bottom:2px solid #e0e0e0;color:#444;font-weight:700;padding:10px 12px;text-align:left;white-space:nowrap}.admin-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:9px 12px;vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#fafffe}.row-inactive td{opacity:.55}.no-data{color:#aaa;padding:32px!important;text-align:center}.badge{border-radius:100px;display:inline-block;font-size:11px;font-weight:700;padding:3px 8px}.badge-admin{background:#7dc24226;color:#4a8c1c}.badge-usuario{background:#3a7bd51f;color:#1a5dab}.badge-active{background:#7dc24226;color:#4a8c1c}.badge-inactive{background:#ef44441f;color:#b91c1c}.btn-primary{background:#7dc242;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background .15s}.btn-primary:hover{background:#6aad35}.btn-secondary{background:#f0f0f0;border:1px solid #ddd;border-radius:6px;color:#444;cursor:pointer;font-size:13px;font-weight:500;padding:8px 14px}.btn-secondary:hover{background:#e4e4e4}.btn-success{background:#2196f3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 14px}.btn-success:hover{background:#1976d2}.btn-danger{background:#ef5350;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px}.btn-danger:hover{background:#d32f2f}.actions-cell{display:flex;flex-wrap:wrap;gap:6px}.btn-sm{border:none;border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;padding:4px 10px;white-space:nowrap}.btn-edit{background:#3a7bd51f;color:#1a5dab}.btn-edit:hover{background:#3a7bd538}.btn-toggle{background:#7dc2421f;color:#4a8c1c}.btn-toggle:hover{background:#7dc24240}.btn-delete{background:#ef44441a;color:#b91c1c}.btn-delete:hover{background:#ef444433}.modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal{background:#fff;border-radius:10px;box-shadow:0 16px 48px #0003;display:flex;flex-direction:column;gap:10px;max-width:420px;padding:24px;width:100%}.modal-sm{max-width:340px}.modal h3{color:#1a1a1a;font-size:16px;font-weight:700;margin-bottom:4px}.modal p{color:#555;font-size:13px}.modal label{color:#444;font-size:11px;font-weight:700;letter-spacing:.5px;margin-top:4px;text-transform:uppercase}.modal input,.modal select{border:1px solid #ddd;border-radius:6px;color:#1a1a1a;font-size:13px;outline:none;padding:8px 10px;width:100%}.modal input:focus,.modal select:focus{border-color:#7dc242}.modal-error{background:#fff3f3;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;font-size:12px;padding:8px 10px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.logs-filters{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.logs-filters input,.logs-filters select{background:#fff;border:1px solid #ddd;border-radius:6px;color:#333;font-size:12px;outline:none;padding:7px 10px}.logs-table td{font-size:12px}.log-date{white-space:nowrap}.log-detail{color:#555;font-size:11px;max-width:300px}.log-row.log-warn td{background:#fff8f0}.log-row.log-ok td{background:#f6fff0}code{background:#f0f0f0;border-radius:3px;font-size:11px;padding:1px 5px}.pagination{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.pagination button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:12px;padding:5px 10px}.pagination button.active{background:#7dc242;border-color:#7dc242;color:#fff}.pagination button:disabled{cursor:not-allowed;opacity:.4}.ping-time{color:#7dc242;font-size:12px;font-weight:600}.hint{color:#999;font-size:11px}.req{color:#ef5350}.text-muted{color:#bbb}:root{--bg:#f5f5f5;--bg-white:#fff;--bg-cart-bar:#2d2d2d;--bg-cart-body:#1e1e1e;--green-vp:#7dc242;--green-header:#7dc242;--green-price:#7dc242;--green-total:#7dc242;--blue-badge:#3a7bd5;--text-dark:#1a1a1a;--text-mid:#444;--text-light:#888;--text-white:#fff;--text-discount:#ff6b6b;--border:#e0e0e0;--radius:4px;--shadow:0 1px 3px #00000014}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#f5f5f5;background:var(--bg);color:#1a1a1a;color:var(--text-dark);font-family:Roboto,sans-serif;font-size:14px;line-height:1.4}button{background:none;border:none;cursor:pointer}button,input,select{font-family:inherit}.app{display:flex;flex-direction:column;min-height:100vh}.app__layout{align-items:flex-start;display:flex;flex:1 1;gap:24px;margin:0 auto;max-width:1200px;padding:0 16px 120px;width:100%}.app__main{flex:1 1;min-width:0;padding-top:0}.app-header{background:#7dc242;background:var(--green-header);box-shadow:0 2px 6px #00000026;padding:14px 20px;position:sticky;top:0;z-index:300}.app-header,.app-header__inner{align-items:center;display:flex;justify-content:space-between}.app-header__inner{width:100%}.app-header__brand{align-items:center;display:flex;gap:10px}.app-header__leaf{font-size:24px}.app-header__title{color:#fff;font-size:18px;font-weight:700;letter-spacing:.2px}.app-header__subtitle{color:#fffc;font-size:11px;font-weight:400}.app-header__meta{display:flex;gap:6px}.app-header__badge{background:#fff3;border-radius:100px;color:#fff;font-size:11px;font-weight:600;padding:3px 8px}.spinner{animation:spin .7s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top:3px solid var(--green-vp);height:28px;margin:0 auto 10px;width:28px}@keyframes spin{to{transform:rotate(1turn)}}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f0f0f0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}@media (max-width:860px){.app__layout{flex-direction:column;padding-bottom:280px}}.catalog{padding-top:0}.catalog__grid-wrapper{padding-top:12px}.catalog__controls{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 8px #0000001a;margin-bottom:12px;padding:12px 14px;position:sticky;top:57px;z-index:200}.catalog__search{align-items:center;display:flex;margin-bottom:10px;position:relative}.catalog__search-icon{color:var(--text-light);font-size:13px;left:10px;position:absolute}.catalog__search-input{background:#fafafa;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dark);font-size:13px;outline:none;padding:8px 32px 8px 30px;transition:border-color .15s;width:100%}.catalog__search-input:focus{border-color:var(--green-vp)}.catalog__search-input::placeholder{color:#aaa}.catalog__search-clear{border-radius:3px;color:#aaa;font-size:13px;padding:2px 5px;position:absolute;right:8px}.catalog__search-clear:hover{color:var(--text-dark)}.catalog__categories{display:flex;flex-wrap:wrap;gap:6px}.catalog__cat-btn{background:#f0f0f0;border:1px solid var(--border);border-radius:100px;color:var(--text-mid);font-size:11px;font-weight:500;padding:5px 12px;transition:all .15s;white-space:nowrap}.catalog__cat-btn:hover{border-color:var(--green-vp);color:var(--green-vp)}.catalog__cat-btn.active{background:var(--green-vp);border-color:var(--green-vp);color:#fff;font-weight:600}.catalog__count{color:var(--text-light);font-size:11px;margin-bottom:8px;padding-left:2px}.catalog__grid{display:flex;flex-direction:column;gap:0}.catalog__loading{color:var(--text-light);padding:48px 0;text-align:center}.catalog__error{background:#fff3f3;border:1px solid #ffcdd2;border-radius:var(--radius);color:#c62828;font-size:13px;padding:12px 16px}.catalog__empty{color:var(--text-light);padding:48px 0;text-align:center}.catalog__empty span{display:block;font-size:40px;margin-bottom:8px}.product-card{align-items:stretch;background:var(--bg-white);border-bottom:1px solid var(--border);display:flex;min-height:100px;position:relative;transition:background .12s}.product-card:first-child{border-top:1px solid var(--border)}.product-card:hover{background:#fafffe}.product-card__qty-badge{background:var(--blue-badge);color:#fff;font-size:11px;font-weight:700;height:20px;left:0;position:absolute;top:0;width:20px;z-index:2}.product-card__image,.product-card__qty-badge{align-items:center;display:flex;justify-content:center}.product-card__image{background:#fafafa;border-right:1px solid var(--border);flex-shrink:0;padding:10px 6px;width:78px}.product-card__icon{font-size:38px}.product-card__body{display:flex;flex:1 1;flex-direction:column;gap:2px;justify-content:center;padding:10px 12px}.product-card__meta{color:var(--text-light);font-size:10px;font-weight:500;letter-spacing:.3px;margin-bottom:2px;text-transform:uppercase}.product-card__name{color:var(--text-dark);font-size:13px;font-weight:500;line-height:1.35;margin-bottom:5px}.product-card__price-row{align-items:baseline;display:flex;gap:6px}.product-card__vp{color:var(--green-price);font-size:12px;font-weight:700}.product-card__separator{color:var(--text-light);font-size:11px}.product-card__price{color:var(--green-price);font-size:14px;font-weight:700}.product-card__pvp{color:var(--text-light);font-size:10px;margin-top:2px}.product-card__actions{flex-direction:column;gap:6px;padding:10px 10px 10px 6px}.product-card__actions,.product-card__add-btn{align-items:center;display:flex;justify-content:center}.product-card__add-btn{background:var(--green-vp);border-radius:50%;color:#fff;flex-shrink:0;font-size:20px;font-weight:300;height:28px;line-height:1;transition:background .15s,transform .1s;width:28px}.product-card__add-btn:hover{background:#6aad35}.product-card__add-btn:active{transform:scale(.93)}.product-card__qty-controls{align-items:center;display:flex;gap:4px}.product-card__qty-btn{align-items:center;background:#f0f0f0;border-radius:50%;color:var(--text-dark);display:flex;font-size:15px;height:22px;justify-content:center;transition:background .12s;width:22px}.product-card__qty-btn:hover{background:var(--green-vp);color:#fff}.product-card__qty-num{color:var(--text-dark);font-size:13px;font-weight:600;min-width:16px;text-align:center}.product-card__img{display:block;height:62px;object-fit:contain;width:62px}.cart-panel{background:var(--bg-cart-body);bottom:0;box-shadow:0 -4px 20px #00000040;display:flex;flex-direction:column;left:0;max-height:80vh;position:fixed;right:0;z-index:200}@media (min-width:861px){.cart-panel{border-radius:6px;bottom:auto;box-shadow:var(--shadow);left:auto;max-height:calc(100vh - 80px);overflow:hidden;position:sticky;right:0;top:70px;width:340px}}.cart-panel__header{align-items:center;background:var(--green-vp);cursor:pointer;display:flex;flex-shrink:0;justify-content:space-between;padding:11px 16px;-webkit-user-select:none;user-select:none}.cart-panel__header-left{align-items:center;display:flex;gap:8px}.cart-panel__icon{font-size:16px}.cart-panel__title{color:#fff;font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.cart-panel__counts{color:#ffffffe6;font-size:12px}.cart-panel__header-right{align-items:center;display:flex;gap:10px}.cart-panel__toggle{color:#fff;font-size:13px}.cart-panel__body{background:var(--bg-cart-body);display:flex;flex:1 1;flex-direction:column;overflow-y:auto}.cart-panel__controls{grid-gap:8px;background:#2a2a2a;border-bottom:1px solid #3a3a3a;display:grid;gap:8px;grid-template-columns:1fr 1fr;padding:10px 12px}.cart-panel__control-group{display:flex;flex-direction:column;gap:3px}.cart-panel__label{color:#888;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}.cart-panel__select{appearance:auto;background:#1a1a1a;border:1px solid #444;border-radius:var(--radius);color:#fff;cursor:pointer;font-size:12px;font-weight:500;outline:none;padding:6px 8px;transition:border-color .15s}.cart-panel__select:focus{border-color:var(--green-vp)}.cart-panel__items{flex:1 1;overflow-y:auto;padding:6px 0}.cart-panel__empty{color:#666;padding:28px 16px;text-align:center}.cart-panel__empty span{display:block;font-size:32px;margin-bottom:6px}.cart-panel__empty p{font-size:13px}.cart-panel__empty-hint{color:#555;font-size:11px!important;margin-top:2px}.cart-item{border-bottom:1px solid #2e2e2e;gap:8px;padding:8px 12px}.cart-item,.cart-item__badge{align-items:center;display:flex}.cart-item__badge{background:var(--green-vp);border-radius:3px;color:#fff;flex-shrink:0;font-size:10px;font-weight:700;height:30px;justify-content:center;width:30px}.cart-item__info{flex:1 1;min-width:0}.cart-item__sku{color:#666;display:block;font-size:9px;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.cart-item__name{color:#ddd;font-size:11px;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item__price-row{align-items:baseline;display:flex;gap:6px;margin-top:2px}.cart-item__vp{color:var(--green-vp);font-size:10px;font-weight:600}.cart-item__price{color:var(--green-vp);font-size:12px;font-weight:700}.cart-item__controls{align-items:center;display:flex;flex-shrink:0;gap:4px}.cart-item__qty-btn{align-items:center;background:#333;border-radius:3px;color:#ccc;display:flex;font-size:14px;height:20px;justify-content:center;transition:background .12s;width:20px}.cart-item__qty-btn:hover{background:var(--green-vp);color:#fff}.cart-item__qty{color:#fff;font-size:12px;font-weight:700;min-width:16px;text-align:center}.cart-item__remove{border-radius:3px;color:#555;font-size:13px;margin-left:2px;padding:2px 4px;transition:color .12s}.cart-item__remove:hover{color:#ff6b6b}.cart-panel__summary-wrapper{align-items:stretch;border-top:1px solid #333;display:flex;flex-shrink:0}.cart-panel__vp-circle{align-items:center;background:var(--green-vp);display:flex;flex-direction:column;flex-shrink:0;justify-content:center;padding:14px 8px;width:90px}.cart-panel__vp-label{color:#fff;font-size:15px;font-weight:900;letter-spacing:1px}.cart-panel__vp-value{color:#fff;font-size:18px;font-weight:900;line-height:1.1}.cart-panel__summary{background:var(--bg-cart-body);flex:1 1;padding:10px 14px}.cart-panel__summary-row{align-items:center;color:#ccc;display:flex;font-size:12px;justify-content:space-between;padding:3px 0}.cart-panel__summary-row span:last-child{color:#ddd;font-weight:500}.cart-panel__summary-row--discount span{color:var(--text-discount)!important}.cart-panel__summary-row--total{border-top:1px solid #444;font-size:14px;font-weight:700;margin-top:4px;padding-top:6px}.cart-panel__summary-row--total span{color:var(--green-total)!important}.cart-panel__clear{background:#ff6b6b14;border:1px solid #ff6b6b40;border-radius:var(--radius);color:#ff6b6b;font-size:11px;font-weight:600;margin:6px 12px 8px;padding:7px;transition:background .15s;width:calc(100% - 24px)}.cart-panel__clear:hover{background:#ff6b6b26}
/*# sourceMappingURL=main.7b889031.css.map*/