:root{--green:#174b32;--green2:#236847;--ink:#17221c;--muted:#66756c;--line:#dce4df;--bg:#f4f7f5;--white:#fff;--warn:#fff5d6;--red:#9b2c2c;--shadow:0 10px 28px rgba(25,55,39,.08)}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.45;overflow-x:hidden}.container{width:min(1120px,calc(100% - 28px));margin:32px auto 80px}.topbar{width:100%;min-height:66px;padding:0 max(18px,calc((100% - 1120px)/2));background:var(--green);color:#fff;display:flex;align-items:center;gap:24px;box-shadow:0 2px 16px #173e2b44;position:sticky;top:0;z-index:10}.brand{font-weight:800;color:#fff;text-decoration:none;white-space:nowrap}.topbar nav{display:flex;gap:4px;flex:1;overflow:auto}.topbar nav a,.link-button{color:#e8f3ec;background:transparent;border:0;padding:10px 12px;text-decoration:none;font:inherit;white-space:nowrap;cursor:pointer;border-radius:8px}.topbar nav a:hover,.link-button:hover{background:#ffffff18}.page-head,.card-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:20px}.page-head h1,.card h2{margin:0}.page-head p{margin:4px 0;color:var(--muted)}h1{font-size:clamp(1.75rem,4vw,2.4rem);line-height:1.1}.eyebrow{font-size:.74rem!important;font-weight:800;letter-spacing:.13em;color:var(--green2)!important}.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow);margin-bottom:20px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.metric{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.metric span{display:block;color:var(--muted);font-size:.86rem}.metric strong{display:block;font-size:1.8rem;margin-top:6px}.metric-warning{background:var(--warn);border-color:#efd88b}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 15px;border:1px solid #b9c7bf;border-radius:9px;background:#fff;color:var(--ink);font-weight:700;text-decoration:none;cursor:pointer;font:inherit}.btn:hover{border-color:var(--green2);color:var(--green2)}.btn-primary{background:var(--green2);border-color:var(--green2);color:#fff}.btn-primary:hover{background:var(--green);color:#fff}.btn-camera{background:#e9f4ed;border-color:#9ac2a8}.actions,.form-actions,.input-action{display:flex;gap:10px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.span-2{grid-column:span 2}label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:.9rem}input,select{width:100%;min-height:44px;border:1px solid #b9c7bf;border-radius:8px;padding:9px 11px;background:#fff;color:var(--ink);font:inherit}input:focus,select:focus{outline:3px solid #67a88035;border-color:var(--green2)}.form-actions{justify-content:flex-end;margin-top:6px}.search{display:flex;gap:10px;margin-bottom:16px}.search input{max-width:480px}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:680px}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f8faf9}td small{display:block;color:var(--muted);margin-top:3px}.row-warning{background:var(--warn)}.positive{color:#15703e;font-weight:800}.negative{color:var(--red);font-weight:800}.empty{text-align:center;color:var(--muted);padding:36px}.alert{border-radius:10px;padding:12px 15px;margin-bottom:14px;border:1px solid}.alert-success{background:#e9f7ee;border-color:#9bc9ab}.alert-danger{background:#fff0f0;border-color:#e4adad}.alert-warning{background:var(--warn);border-color:#e8d078}.login-card{max-width:430px;margin:12vh auto}.login-card h1{margin-top:0}.stack{display:grid;gap:16px}.scanner{border:1px dashed #89ad98;border-radius:11px;padding:15px;background:#f7fbf8}.input-action input{flex:1;min-width:210px}.help{font-size:.84rem;color:var(--muted);margin:7px 0 0}.success-text{color:#15703e}.error-text{color:var(--red)}.camera-panel{margin-top:14px;background:#fff;border-radius:10px;overflow:hidden}.error{text-align:center;max-width:600px;margin:15vh auto}
.scanner-field{display:flex;align-items:end;gap:8px}.scanner-field label{flex:1}.metric small{display:block;color:var(--muted);margin-top:4px}.metric-sales{background:linear-gradient(135deg,#174b32,#236847);color:#fff}.metric-sales span,.metric-sales small{color:#d8eee0}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(430px,.9fr);gap:20px;align-items:start;min-width:0}.pos-layout .card{margin:0}.pos-catalog,.pos-cart{min-width:0}.pos-cart{position:sticky;top:86px}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:16px;max-height:470px;overflow:auto}.product-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px;cursor:pointer;color:var(--ink)}.product-card:hover{border-color:var(--green2);background:#f2faf5}.product-card span,.product-card strong{display:block}.product-card small{display:block;color:var(--muted);margin:3px 0 7px}.cart-count{color:var(--muted);font-size:.85rem}.pos-table-wrap{max-width:100%}.pos-table{min-width:590px}.pos-table th,.pos-table td{padding:10px}.pos-table input[type=number]{min-width:95px}.icon-button{width:36px;height:36px;border-radius:50%;border:1px solid #dfb5b5;background:#fff4f4;color:var(--red);font-size:1.3rem;cursor:pointer}.pos-total,.payment-summary{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:2px solid var(--line)}.pos-total{font-size:1.2rem}.pos-total strong{font-size:2rem;color:var(--green)}.pos-payment{padding-top:4px}.payment-summary{margin-top:16px}.btn-checkout{width:100%;min-height:54px;font-size:1.05rem}.btn:disabled{opacity:.5;cursor:not-allowed}.status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:.78rem;font-weight:800}.status-completada{background:#e4f5ea;color:#126537}.status-anulada{background:#f5e7e7;color:#862626}.row-muted{opacity:.62}.receipt{max-width:680px;margin-inline:auto}.receipt-head{text-align:center;border-bottom:1px dashed var(--line);padding-bottom:16px}.receipt-head h2,.receipt-head p{margin:3px}.receipt-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.receipt-meta div{padding:9px;background:#f7f9f8;border-radius:8px}.receipt-meta dt{color:var(--muted);font-size:.75rem;text-transform:uppercase}.receipt-meta dd{margin:2px 0;font-weight:700}.receipt-lines{min-width:0}.receipt-totals{margin-left:auto;max-width:300px;padding-top:12px}.receipt-totals div{display:flex;justify-content:space-between;padding:5px}.receipt-totals div:first-child{border-top:2px solid var(--ink);font-size:1.2rem}.receipt footer{text-align:center;border-top:1px dashed var(--line);margin-top:20px;padding-top:16px}.receipt-void{border:3px solid var(--red);color:var(--red);font-weight:900;font-size:1.4rem;text-align:center;padding:9px;margin:16px 0;transform:rotate(-2deg)}.receipt-note{font-size:.85rem;color:var(--muted)}.danger-zone{max-width:680px;margin-inline:auto;border-color:#dfb5b5}.danger-zone label{margin-bottom:12px}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.filter-bar{display:flex;align-items:end;gap:12px}.filter-bar label{min-width:170px}.metrics-sales-grid{grid-template-columns:repeat(4,1fr)}.dashboard-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:20px}.trend-list{display:grid;gap:9px;max-height:440px;overflow:auto}.trend-row{display:grid;grid-template-columns:48px 1fr 90px;align-items:center;gap:10px}.trend-row time{color:var(--muted);font-size:.8rem}.trend-row strong{text-align:right;font-size:.84rem}.trend-track{height:9px;background:#edf1ee;border-radius:999px;overflow:hidden}.trend-track span{display:block;height:100%;background:var(--green2);border-radius:inherit;min-width:1px}.summary-list>div{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.summary-list small{display:block;color:var(--muted)}
.card-head p{margin:3px 0 0;color:var(--muted);font-size:.84rem}.sales-chart-card{min-width:0}.sales-chart{height:310px;display:flex;align-items:stretch;gap:5px;overflow-x:auto;padding:24px 2px 0;border-bottom:1px solid var(--line)}.sales-bar-column{flex:1 0 18px;min-width:18px;display:grid;grid-template-rows:28px 1fr 25px;align-items:end;text-align:center}.sales-bar-value{font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:hidden;opacity:0;transition:opacity .15s}.sales-bar-column:hover .sales-bar-value{opacity:1}.sales-bar{height:max(2px,var(--bar-height));width:min(24px,80%);margin-inline:auto;background:linear-gradient(180deg,#4e9c6b,#174b32);border-radius:6px 6px 2px 2px;box-shadow:inset 0 1px #ffffff55}.sales-bar-column time{font-size:.66rem;color:var(--muted);height:22px;white-space:nowrap}.payment-donuts{display:grid;gap:16px}.payment-donut-item{display:flex;align-items:center;gap:14px}.payment-donut-item small{display:block;color:var(--muted);margin-top:3px}.payment-donut{--donut-color:#2d8051;position:relative;width:86px;height:86px;flex:0 0 86px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--donut-color) calc(var(--donut-value) * 1%),#e7ece9 0)}.payment-donut::after{content:"";position:absolute;inset:11px;background:var(--white);border-radius:50%}.payment-donut strong{position:relative;z-index:1;font-size:1rem}.payment-donut-item:nth-child(2) .payment-donut{--donut-color:#d59630}.payment-donut-item:nth-child(3) .payment-donut{--donut-color:#4776a8}.payment-empty-circle{width:110px;height:110px;border:12px solid #e7ece9;border-radius:50%;display:grid;place-items:center;margin:12px auto 0;color:var(--muted);font-weight:800}.payment-chart-card .empty{padding:10px}
@media(max-width:900px){.pos-layout,.dashboard-grid{grid-template-columns:1fr}.pos-cart{position:static}.metrics-sales-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{align-items:flex-start;flex-wrap:wrap;padding:12px 14px;gap:5px}.topbar nav{order:3;width:100%}.topbar form{margin-left:auto}.container{margin-top:20px}.metrics{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.card{padding:16px}.input-action{display:grid;grid-template-columns:1fr 1fr}.input-action input{grid-column:span 2}.form-actions .btn{flex:1}.product-grid{grid-template-columns:1fr}.receipt-meta{grid-template-columns:1fr}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label,.filter-bar .btn{width:100%}.metrics-sales-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.sales-chart{gap:2px;overflow:hidden}.sales-bar-column{flex:1 1 6px;min-width:6px}.sales-bar-value{display:none}.payment-donut{width:76px;height:76px;flex-basis:76px}}
@media print{body{background:#fff}.topbar,.no-print{display:none!important}.container{width:100%;margin:0}.receipt{border:0;box-shadow:none;max-width:80mm;padding:4mm;font-size:11px}.receipt-lines th,.receipt-lines td{padding:6px 3px}.receipt-meta{grid-template-columns:1fr 1fr 1fr}.receipt-head h2{font-size:18px}}
.metrics-filter{display:grid;grid-template-columns:1fr 170px 170px auto;align-items:end}.metrics-filter>div strong{font-size:1rem}.metric-visual{display:flex;align-items:center;gap:14px;min-width:0}.metric-visual>div:last-child{min-width:0}.metric-symbol{width:46px;height:46px;flex:0 0 46px;border-radius:13px;display:grid;place-items:center;font-size:1.2rem;font-weight:900;background:#e8f2ec;color:var(--green)}.metric-ticket .metric-symbol{background:#eef0f8;color:#4f5f98}.metric-units .metric-symbol{background:#e9f3f6;color:#31758a}.metric-profit{border-color:#ead9aa;background:#fffdf6}.metric-profit .metric-symbol{background:#f6e9bd;color:#805d08}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.85fr);gap:20px}.analytics-panel{min-width:0}.analytics-head{align-items:flex-start}.analytics-head h2{font-size:1.35rem}.analytics-head .eyebrow{margin:0 0 5px}.analytics-head p:not(.eyebrow){margin:5px 0 0;color:var(--muted);font-size:.86rem}.peak-summary{border:1px solid #b8d5c2;background:#eff8f2;border-radius:12px;padding:9px 12px;text-align:right;min-width:112px}.peak-summary span,.peak-summary time{display:block;color:var(--muted);font-size:.72rem}.peak-summary strong{display:block;color:var(--green);font-size:1rem}.chart-frame{display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px;height:330px}.chart-scale{display:flex;flex-direction:column;justify-content:space-between;text-align:right;padding:5px 0 29px;color:var(--muted);font-size:.68rem}.chart-plot{position:relative;min-width:0}.chart-grid-lines{position:absolute;inset:5px 0 29px;background:repeating-linear-gradient(to bottom,#dfe6e2 0,#dfe6e2 1px,transparent 1px,transparent 50%);border-bottom:1px solid #cbd6cf;pointer-events:none}.chart-frame .sales-chart{position:relative;z-index:1;height:100%;padding-top:0;border:0;overflow:hidden;gap:4px}.chart-frame .sales-bar-column{grid-template-rows:32px 1fr 29px}.chart-frame .sales-bar{background:linear-gradient(180deg,#68af7f,#236847);box-shadow:0 4px 10px #174b3220;transition:filter .15s,transform .15s}.chart-frame .sales-bar-column:hover .sales-bar{filter:brightness(1.08);transform:scaleX(1.08)}.chart-frame .sales-bar-column.is-peak .sales-bar{background:linear-gradient(180deg,#e6b550,#a97513)}.chart-frame .sales-bar-column.is-peak .sales-bar-value{opacity:1;color:#805d08;font-weight:800}.payment-pie-layout{display:grid;gap:22px}.payment-pie-wrap{position:relative;width:210px;height:210px;margin:4px auto 0}.payment-pie{width:100%;height:100%;transform:rotate(-90deg);filter:drop-shadow(0 10px 14px #173e2b18)}.payment-pie-track,.payment-pie-segment{fill:none;stroke-width:7}.payment-pie-track{stroke:#e7ece9}.payment-pie-segment{transition:stroke-width .15s}.payment-pie-segment:hover{stroke-width:8}.payment-pie-segment-1{stroke:#2d8051}.payment-pie-segment-2{stroke:#d9a33a}.payment-pie-segment-3{stroke:#4f79a8}.payment-pie-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.payment-pie-center strong{font-size:2rem;line-height:1}.payment-pie-center span{color:var(--muted);font-size:.8rem;margin-top:5px}.payment-legend{display:grid;gap:4px}.payment-legend-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.payment-legend-row small{display:block;color:var(--muted);margin-top:2px}.payment-color{width:10px;height:10px;border-radius:50%}.payment-color-1{background:#2d8051}.payment-color-2{background:#d9a33a}.payment-color-3{background:#4f79a8}.payment-legend-value{text-align:right}.payment-pie-empty{text-align:center;color:var(--muted)}.product-ranking{margin-top:20px}.product-ranking table{min-width:760px}.product-ranking th:first-child,.product-ranking td:first-child{width:54px;text-align:center}.rank-badge{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e8f2ec;color:var(--green);font-weight:900}.product-ranking tr:first-child .rank-badge{background:#f1d485;color:#614500}.product-rank-track{height:5px;background:#edf1ee;border-radius:999px;margin-top:9px;max-width:420px;overflow:hidden}.product-rank-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#68af7f,#236847)}
@media(max-width:980px){.analytics-grid{grid-template-columns:1fr}.payment-pie-layout{grid-template-columns:220px 1fr;align-items:center}.payment-pie-wrap{width:190px;height:190px}.metrics-filter{grid-template-columns:1fr 1fr auto}.metrics-filter>div{grid-column:1/-1}.metric-visual{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.metrics-filter{display:flex}.metric-visual{gap:8px}.metric-symbol{width:38px;height:38px;flex-basis:38px}.analytics-head{gap:10px}.peak-summary{min-width:100px}.chart-frame{grid-template-columns:44px minmax(0,1fr);height:290px;gap:6px}.chart-frame .sales-chart{gap:2px}.payment-pie-layout{grid-template-columns:1fr}.payment-pie-wrap{width:190px;height:190px}.product-ranking{padding:0}.product-ranking .card-head{padding:16px;margin:0}.product-ranking table{min-width:650px}}
.chart-frame .sales-bar-column{grid-template-rows:1fr 29px}
