:root { color-scheme: light; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #183b30; background: #f6f7f2; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.access-shell, .terminal-shell { min-height: 100vh; padding: clamp(24px, 6vw, 72px); }
.access-shell { display: grid; align-content: center; justify-items: center; gap: 32px; background: radial-gradient(circle at top right, #dfeedd 0, transparent 36%), #f6f7f2; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-align: left; }
.brand > span { display: grid; width: 45px; height: 45px; place-items: center; border-radius: 13px; background: #d7ab56; color: #174f3b; font-size: 27px; font-weight: 900; }
.brand b, .brand small { display: block; }.brand b { font-size: 19px; }.brand small { color: #668077; margin-top: 2px; }
.pin-card { width: min(100%, 460px); padding: clamp(28px, 5vw, 48px); border: 1px solid #d8e5d9; border-radius: 25px; background: #fff; box-shadow: 0 18px 50px #26493416; }
.eyebrow { margin: 0 0 10px; color: #a67524; font-size: 12px; font-weight: 800; letter-spacing: .14em; }.pin-card h1, .terminal-welcome h1 { margin: 0; font-size: clamp(31px, 5vw, 47px); line-height: 1.03; }.pin-card > p:not(.eyebrow), .terminal-welcome > p:not(.eyebrow) { color: #668077; font-size: 17px; line-height: 1.55; }
form { display: grid; gap: 10px; margin-top: 28px; } label { font-size: 14px; font-weight: 750; } input { width: 100%; padding: 16px; border: 1px solid #c9dacf; border-radius: 12px; color: #183b30; font-size: 24px; letter-spacing: .45em; text-align: center; outline: none; } input:focus { border-color: #187550; box-shadow: 0 0 0 4px #1875501a; }
form button { margin-top: 8px; min-height: 52px; border: 0; border-radius: 13px; background: #187550; color: #fff; font-weight: 800; } form button:disabled { opacity: .7; cursor: progress; }.form-message { min-height: 20px; margin: 0; color: #a93c35; font-size: 14px; }.form-message:not(.visible) { visibility: hidden; }.security-note { display: block; margin-top: 22px; color: #70877e; line-height: 1.5; }
.terminal-shell { max-width: 1360px; margin: auto; }.terminal-header { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding-bottom: 28px; border-bottom: 1px solid #d8e5d9; }.terminal-actions { display: flex; align-items: center; gap: 12px; }.session-badge { padding: 9px 12px; border-radius: 999px; background: #e4f3e8; color: #187550; font-size: 13px; font-weight: 750; }.logout { border: 1px solid #c9dacf; border-radius: 11px; padding: 10px 14px; background: #fff; color: #183b30; font-weight: 700; }.pos-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, .34fr); align-items: start; gap: 20px; padding-top: 32px; }.catalog-panel, .cart-panel { padding: clamp(18px, 3vw, 30px); border: 1px solid #d8e5d9; border-radius: 23px; background: #fff; }.cart-panel { position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow: auto; }.catalog-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, .38fr); gap: 14px; }.catalog-toolbar label { display: grid; gap: 7px; color: #526d63; font-size: 13px; font-weight: 800; }.catalog-toolbar input, .catalog-toolbar select { padding: 13px 14px; border: 1px solid #c9dacf; border-radius: 11px; background: #fff; color: #183b30; font-size: 16px; letter-spacing: normal; text-align: left; }.catalog-meta { display: flex; justify-content: space-between; gap: 12px; padding: 23px 0 17px; color: #668077; }.catalog-meta b { color: #183b30; }.catalog-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); gap: 16px; }.product-card { overflow: hidden; border: 1px solid #d8e5d9; border-radius: 17px; background: #fff; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }.product-card:hover { border-color: #71ae92; box-shadow: 0 10px 24px #244b3516; transform: translateY(-2px); }.product-card:focus-visible, .selection-option:focus-visible { outline: 3px solid #d7ab56; outline-offset: 3px; }.product-card.status-agotado { opacity: .76; }.product-card.status-reserva { border-color: #e6d2ab; }.product-image { display: block; width: 100%; height: 156px; object-fit: cover; background: #edf3ed; }.product-image-fallback { display: grid; place-items: center; color: #187550; font-size: 48px; font-weight: 900; }.product-body { display: grid; gap: 8px; padding: 15px; }.product-line { display: flex; justify-content: space-between; gap: 8px; align-items: center; }.availability { padding: 5px 8px; border-radius: 999px; font-size: 11px; font-weight: 800; }.availability-disponible { background: #e4f3e8; color: #187550; }.availability-agotado { background: #f8e4e0; color: #a93c35; }.availability-reserva { background: #faf0db; color: #996a19; }.product-price { color: #187550; font-size: 15px; font-weight: 850; white-space: nowrap; }.product-body h2 { margin: 3px 0 0; font-size: 18px; line-height: 1.16; }.product-body p { min-height: 39px; margin: 0; color: #668077; font-size: 14px; line-height: 1.4; }.card-action-label, .selection-action-label { display: block; margin-top: 5px; color: #187550; font-size: 13px; font-weight: 850; }.catalog-loading, .catalog-empty { grid-column: 1 / -1; margin: 0; padding: 28px; color: #668077; text-align: center; }.catalog-error { grid-column: 1 / -1; padding: 25px; border: 1px solid #e7c3bd; border-radius: 13px; background: #fff8f7; color: #863b33; }.catalog-error p { color: #668077; }.catalog-error button { padding: 10px 14px; border: 0; border-radius: 10px; background: #187550; color: #fff; font-weight: 800; }.cart-heading { display: flex; justify-content: space-between; gap: 10px; align-items: start; padding-bottom: 17px; border-bottom: 1px solid #e1ebe3; }.cart-heading .eyebrow { margin-bottom: 6px; }.cart-heading h2 { margin: 0; font-size: 24px; }.cart-heading h2 span { display: inline-grid; min-width: 25px; min-height: 25px; place-items: center; border-radius: 999px; background: #187550; color: #fff; font-size: 13px; vertical-align: middle; }.clear-cart { padding: 6px 0; border: 0; background: transparent; color: #a93c35; font-size: 13px; font-weight: 800; }.cart-lines { display: grid; gap: 13px; padding: 18px 0; }.cart-line { display: flex; justify-content: space-between; gap: 8px; align-items: center; }.cart-line b, .cart-line small, .cart-line strong { display: block; }.cart-line b { font-size: 14px; }.cart-line small { margin-top: 3px; color: #668077; font-size: 12px; }.cart-line strong { margin-top: 5px; color: #187550; font-size: 14px; }.quantity-control { display: flex; align-items: center; gap: 8px; }.quantity-control button { display: grid; width: 29px; height: 29px; place-items: center; border: 1px solid #c9dacf; border-radius: 8px; background: #fff; color: #183b30; font-size: 19px; }.quantity-control span { min-width: 15px; text-align: center; font-weight: 800; }.cart-empty { margin: 0; color: #668077; font-size: 14px; line-height: 1.5; }.cart-total { display: flex; justify-content: space-between; gap: 12px; padding: 16px 0; border-top: 1px solid #e1ebe3; font-size: 14px; }.cart-total b { color: #187550; font-size: 21px; }.checkout-pending { width: 100%; min-height: 45px; border: 0; border-radius: 11px; background: #e8eeea; color: #778a80; font-weight: 800; cursor: not-allowed; }.cart-note { margin: 13px 0 0; color: #70877e; font-size: 12px; line-height: 1.45; }.selection-modal { width: min(680px, calc(100vw - 32px)); max-height: min(780px, calc(100vh - 32px)); padding: 0; border: 0; border-radius: 23px; color: #183b30; box-shadow: 0 28px 70px #1b3f3255; }.selection-modal::backdrop { background: #173b30a6; }.selection-header { display: flex; justify-content: space-between; gap: 20px; padding: 25px 25px 18px; border-bottom: 1px solid #d8e5d9; }.selection-header h2 { margin: 0; font-size: 30px; }.selection-header p:not(.eyebrow) { margin: 8px 0 0; color: #668077; }.modal-close { display: grid; width: 39px; height: 39px; place-items: center; border: 0; border-radius: 999px; background: #edf3ed; color: #183b30; font-size: 28px; line-height: 1; }.selection-options { display: grid; gap: 12px; max-height: calc(100vh - 220px); padding: 20px 25px 25px; overflow: auto; }.selection-option { display: grid; grid-template-columns: 110px minmax(0, 1fr); overflow: hidden; border: 1px solid #d8e5d9; border-radius: 14px; }.selection-option.is-selectable { cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }.selection-option.is-selectable:hover { border-color: #71ae92; box-shadow: 0 8px 20px #244b3516; transform: translateY(-1px); }.selection-option.status-agotado { opacity: .72; }.selection-option .product-image { height: 100%; min-height: 142px; }.selection-option-body { padding: 13px; }.selection-option h3 { margin: 8px 0 3px; font-size: 17px; }.selection-option p { margin: 0; color: #668077; font-size: 14px; }.selection-option-footer { display: flex; justify-content: space-between; gap: 10px; align-items: end; margin-top: 11px; }.selection-option-footer b { color: #187550; }.selection-option-footer small { color: #668077; text-align: right; }.pos-toast { position: fixed; right: 22px; bottom: 22px; z-index: 10; max-width: 360px; margin: 0; padding: 13px 16px; border-radius: 12px; background: #183b30; color: #fff; box-shadow: 0 12px 32px #173b3050; opacity: 0; pointer-events: none; transform: translateY(15px); transition: .2s ease; }.pos-toast.visible { opacity: 1; transform: translateY(0); }.mobile-cart-toggle { display: none; }
.checkout-pending:not(:disabled) { background: #187550; color: #fff; cursor: pointer; box-shadow: 0 8px 18px #1875502b; }
.checkout-pending:not(:disabled):hover { background: #126443; }
.payment-form { gap: 16px; padding: 22px 25px 25px; margin: 0; }
.payment-form label { display: grid; gap: 8px; color: #526d63; }
.payment-form select { width: 100%; padding: 14px; border: 1px solid #c9dacf; border-radius: 11px; background: #fff; color: #183b30; font-size: 17px; }
.payment-form .form-message.visible { visibility: visible; }
.cash-status { padding: 9px 12px; border-radius: 999px; font-size: 13px; font-weight: 750; }
.cash-status.is-open { background: #e4f3e8; color: #187550; }
.cash-status.is-closed { background: #f8e4e0; color: #a93c35; }
.cash-action { border: 0; border-radius: 11px; padding: 10px 14px; background: #d7ab56; color: #183b30; font-weight: 800; }
.cash-action:disabled { opacity: .65; cursor: progress; }
.payment-form input { padding: 13px 14px; font-size: 17px; letter-spacing: normal; text-align: left; }
.cash-breakdown { display: grid; gap: 9px; padding: 14px; border: 1px solid #d8e5d9; border-radius: 13px; background: #f7faf7; }
.cash-breakdown span { display: flex; justify-content: space-between; gap: 16px; color: #668077; font-size: 14px; }
.cash-breakdown b { color: #183b30; }
.sale-receipt { padding: 22px 25px 25px; }
.sale-total { display: flex; justify-content: space-between; align-items: end; padding: 0 0 17px; border-bottom: 1px solid #d8e5d9; color: #668077; }
.sale-total strong { color: #187550; font-size: 29px; }
.sale-receipt > p { color: #526d63; }
.sale-receipt ul { display: grid; gap: 10px; padding: 0; margin: 19px 0 24px; list-style: none; }
.sale-receipt li { display: flex; justify-content: space-between; gap: 16px; color: #526d63; font-size: 14px; }
.sale-receipt li b { color: #183b30; white-space: nowrap; }
.sale-receipt button { width: 100%; min-height: 50px; border: 0; border-radius: 13px; background: #187550; color: #fff; font-weight: 800; }
@media (max-width: 960px) { .pos-workspace { grid-template-columns: 1fr; }.cart-panel { position: static; max-height: none; }.mobile-cart-toggle { position: fixed; right: 18px; bottom: 18px; z-index: 7; display: flex; align-items: center; gap: 9px; padding: 12px 14px; border: 0; border-radius: 999px; background: #187550; color: #fff; box-shadow: 0 12px 32px #173b3050; font-weight: 800; }.mobile-cart-toggle b { display: grid; min-width: 22px; min-height: 22px; place-items: center; border-radius: 999px; background: #fff; color: #187550; font-size: 12px; }.mobile-cart-toggle strong { font-size: 13px; } }
@media (max-width: 700px) { .access-shell, .terminal-shell { padding: 24px; }.terminal-header { align-items: flex-start; flex-direction: column; }.terminal-actions { width: 100%; flex-wrap: wrap; }.catalog-toolbar { grid-template-columns: 1fr; }.catalog-meta { align-items: flex-start; flex-direction: column; }.catalog-products { grid-template-columns: 1fr; }.selection-header { padding: 20px 18px 15px; }.selection-options { padding: 15px 18px 18px; }.selection-option { grid-template-columns: 82px minmax(0, 1fr); }.selection-option .product-image { min-height: 155px; }.pos-toast { right: 16px; bottom: 78px; left: 16px; max-width: none; }.mobile-cart-toggle { right: 16px; bottom: 16px; } }
