/* Farmastel V2 - presentation-only admin layer.
   Scoped to .admin-v2 so the public storefront keeps its original appearance. */
.admin-v2 {
  --admin-green: #09744f;
  --admin-blue: #087dd6;
  --admin-ink: #112c47;
  --admin-muted: #748595;
  --admin-border: #e8eff0;
  --admin-shadow: 0 5px 25px rgba(31, 77, 69, .035);
  display: block;
  min-height: calc(100dvh - 34px);
  background: #f5f9f9;
  color: #30485e;
  font-size: 13px;
  line-height: 1.55;
}
.admin-v2 h1, .admin-v2 h2, .admin-v2 h3 {color: var(--admin-ink)}
.admin-v2 .muted {color: var(--admin-muted)}
.admin-v2 .btn {min-height: 45px; border-radius: 9px; padding: 11px 18px; font-size: 12px; background: #107454; box-shadow: none}
.admin-v2 .btn:hover {background: #085c40; transform: none}
.admin-v2 .btn.secondary {background: white; border-color: #dce7eb; color: #30485e}
.admin-v2 .btn.secondary:hover {background: #f1f7f5; border-color: #aacabc}
.admin-v2 .btn.small {font-size: 11px; min-height: 34px; padding: 7px 12px}
.admin-v2 .text-btn {color: #087351; font-size: 12px; gap: 9px}
.admin-v2 .text-btn svg {width: 17px; height: 17px}
.admin-v2 .sr-only {position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0}
/* Persistent horizontal navigation. No left rail at any viewport size. */
.admin-v2 .admin-header {position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.98); border-bottom: 1px solid #e4edef; box-shadow: 0 4px 17px rgba(22,55,66,.035)}
.admin-v2 .admin-header-inner {width: min(1560px,calc(100% - 64px)); margin: 0 auto; min-height: 78px; display: flex; align-items: center; gap: 24px}
.admin-v2 .admin-brand {display: flex; align-items: center; gap: 10px; padding: 0; font-size: 25px; font-weight: 750; letter-spacing: -.8px; color: var(--admin-ink); flex-shrink: 0; line-height: 1}
.admin-v2 .admin-brand > span {display: block}
.admin-v2 .brand-mark {width: 31px; height: 36px; display: grid !important; place-items: center; color: #14976b}
.admin-v2 .brand-mark svg {width: 31px; height: 31px; stroke-width: 6; stroke-linecap: round; color: #14976b}
.admin-v2 .admin-nav {display: flex; align-items: center; flex: 1; min-width: 0; margin: 0; gap: 3px; overflow: visible}
.admin-v2 .admin-nav button {position: relative; flex-shrink: 0; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 12px 10px; border: 1px solid transparent; border-radius: 8px; background: none; color: #253d56; text-align: left; font-size: 11.5px; font-weight: 550; white-space: nowrap; min-height: 44px; transition: background .16s, color .16s}
.admin-v2 .admin-nav button span {display: inline}
.admin-v2 .admin-nav button.active {background: #eff7f3; color: #086947; font-weight: 700}
.admin-v2 .admin-nav button:hover {background: #f1f7f4; color: #0b7151}
.admin-v2 .admin-nav button svg {width: 17px; height: 17px; stroke-width: 1.8}
.admin-v2 .admin-nav .nav-count {display: inline-flex; align-items: center; justify-content: center; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 50%; background: #147752; color: #fff; font-size: 10px; line-height: 1}
.admin-v2 .avatar {width: 38px; height: 38px; background: #eaf7ee; color: #11714e; font-size: 11px; font-weight: 700; flex-shrink: 0}
.admin-v2 .admin-profile {position: relative; margin-left: auto; flex-shrink: 0}
.admin-v2 .admin-profile summary {cursor: pointer; list-style: none; display: flex; align-items: center; gap: 9px; padding: 7px 0 7px 6px; font-size: 11.5px; color: #233c52; border-radius: 8px; min-height: 48px}
.admin-v2 .admin-profile summary::-webkit-details-marker {display: none}
.admin-v2 .admin-profile summary > svg {width: 15px; height: 15px; transition: transform .15s}
.admin-v2 .admin-profile[open] summary > svg {transform: rotate(180deg)}
.admin-v2 .admin-profile summary:focus-visible {outline: 3px solid #8cb9a4; outline-offset: 3px}
.admin-v2 .profile-menu {position: absolute; top: calc(100% + 10px); right: 0; width: 225px; padding: 9px; border: 1px solid #e0e9e8; border-radius: 12px; box-shadow: 0 10px 40px #143c4b15; background: #fff; z-index: 60}
.admin-v2 .profile-caption {font-size: 10px; color: #738491; padding: 8px 10px 11px; border-bottom: 1px solid #edf2f0; margin-bottom: 6px; overflow-wrap: anywhere}
.admin-v2 .profile-option {display: flex; align-items: center; gap: 10px; width: 100%; padding: 11px 10px; color: #304b5f; background: none; border: 0; border-radius: 7px; font-size: 12px; text-align: left}
.admin-v2 .profile-option:hover {background: #f1f7f3; color: #126c4e}
.admin-v2 .profile-option svg {width: 17px; height: 17px}
/* Title, working area, and summary cards. */
.admin-v2 .admin-content {width: min(1560px,calc(100% - 64px)); max-width: none; padding: 38px 0 22px; margin: auto}
.admin-v2 .admin-title {display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 26px}
.admin-v2 .admin-title .eyebrow {font-size: 10px; letter-spacing: .16em; color: #466278; font-weight: 750; margin-bottom: 8px}
.admin-v2 .admin-title h1 {font-size: 34px; font-weight: 740; letter-spacing: -.035em; line-height: 1.1}
.admin-v2 .admin-title p {font-size: 13px; color: #718392; margin-top: 9px; max-width: none}
.admin-v2 .admin-title-actions {display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-shrink: 0}
.admin-v2 .admin-title-actions .btn {min-height: 46px; padding: 12px 18px}
.admin-v2 .admin-title-actions .btn:not(.secondary) {min-width: 178px}
.admin-v2 .stats-grid {display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-bottom: 24px}
.admin-v2 .stat {display: flex; align-items: flex-start; gap: 17px; padding: 25px 21px 22px; border: 1px solid #edf2f1; border-radius: 16px; min-height: 152px; background: #fff; box-shadow: var(--admin-shadow); position: relative}
.admin-v2 .stat-main-icon {width: 49px; height: 49px; display: grid; place-items: center; flex-shrink: 0; border-radius: 50%; background: #e6f7e9; color: #067348}
.admin-v2 .stat-main-icon svg {width: 24px; height: 24px; stroke-width: 1.8}
.admin-v2 .stat-blue .stat-main-icon {background: #e4f3ff; color: #087ef4}
.admin-v2 .stat-copy {min-width: 0; padding-top: 4px}
.admin-v2 .stat p {padding-right: 0; margin-bottom: 14px; font-size: 11px; font-weight: 500; color: #40596e; max-width: none}
.admin-v2 .stat strong {display: block; font-size: 31px; font-weight: 690; color: var(--admin-ink); letter-spacing: -.045em; line-height: 1.12; overflow-wrap: anywhere}
.admin-v2 .stat small {display: block; font-size: 10px; color: #7f8c99; margin-top: 14px; line-height: 1.5}
.admin-v2 .stat-corner {position: absolute; right: 17px; top: 20px; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; background: #eff9f1; color: #087146}
.admin-v2 .stat-corner svg {width: 16px; height: 16px}
.admin-v2 .stat-blue .stat-corner {background: #edf7ff; color: #087ef4}
.admin-v2 .stat-copy p {padding-right: 20px}
.admin-v2 .admin-cols {display: grid; grid-template-columns: minmax(0,2.08fr) minmax(355px,1fr); gap: 20px; align-items: start}
.admin-v2 .dashboard-side {display: grid; gap: 16px; min-width: 0}
.admin-v2 .panel {background: #fff; border: 1px solid #eaf0ef; border-radius: 16px; box-shadow: var(--admin-shadow); min-width: 0}
.admin-v2 .panel-head {padding: 21px 22px 17px; border-bottom-color: #eef2f1; display: flex; align-items: center; justify-content: space-between; gap: 15px}
.admin-v2 .panel-head h3 {font-size: 17px; letter-spacing: -.025em; font-weight: 720}
.admin-v2 .panel-heading {display: flex; align-items: center; gap: 11px}
.admin-v2 .section-icon {width: 34px; height: 36px; border-radius: 8px; background: #edf8ed; color: #087449; display: grid; place-items: center; flex-shrink: 0}
.admin-v2 .section-icon svg {width: 21px; height: 21px}
.admin-v2 .section-icon.bare {background: none; width: 23px}
.admin-v2 .recent-panel .panel-head, .admin-v2 .quick-panel .panel-head, .admin-v2 .connected-panel .panel-head {border-bottom: 0; padding-bottom: 10px}
.admin-v2 .panel-description {padding: 0 22px; color: #718594; font-size: 12px; margin-bottom: 18px}
.admin-v2 .panel-body {padding: 21px 22px}
.admin-v2 .order-tools {display: flex; justify-content: flex-end; align-items: center; gap: 11px; padding: 0 22px 18px; flex-wrap: wrap}
.admin-v2 .orders-panel .order-tools {padding-top: 18px}
.admin-v2 .order-tools .search-form {max-width: 285px; flex: 1; min-width: 180px; order: 0; flex-basis: auto; height: 40px; border: 1px solid #dce6ec; background: #fff; border-radius: 8px; gap: 9px; padding: 0 13px}
.admin-v2 .order-tools .search-form svg {width: 16px; height: 16px; color: #294969}
.admin-v2 .order-tools input {font-size: 11px; padding: 9px 0}
.admin-v2 .order-tools select {border-color: #dce6ec; font-size: 11px; height: 40px; border-radius: 8px; padding: 8px 11px; max-width: 100%; color: #28465d; background: #fff}
.admin-v2 .search-form:focus-within {border-color: #6aa88b; box-shadow: 0 0 0 3px #126a5010}
.admin-v2 .search-form input:focus {box-shadow: none}
.admin-v2 .recent-panel .table-scroll {margin: 0 22px; border-radius: 8px; overflow-x: auto}
.admin-v2 th {font-size: 10px; text-transform: none; letter-spacing: 0; font-weight: 650; background: #f3f7f8; color: #4a6071; border-bottom: 1px solid #edf2f3; padding: 13px 13px}
.admin-v2 td {font-size: 11px; padding: 18px 13px; border-bottom-color: #edf2f3}
.admin-v2 tbody tr:hover {background: #fbfdfc}
.admin-v2 .recent-table {font-size: 11px; width: 100%; min-width: 655px}
.admin-v2 .recent-table th {font-size: 10px}
.admin-v2 .recent-table td {padding: 17px 11px}
.admin-v2 .recent-table .row-secondary {display: block; margin-top: 5px; font-size: 9px; color: #7e8b9a; white-space: nowrap; line-height: 1.55; font-weight: 400}
.admin-v2 .order-number {font-size: 11px; color: var(--admin-ink); font-weight: 700; white-space: nowrap}
.admin-v2 .table-client {display: flex; align-items: center; gap: 10px; min-width: 125px}
.admin-v2 .table-client .avatar {width: 32px; height: 32px; font-size: 9px}
.admin-v2 .table-client b {font-size: 11px; color: #334b60; font-weight: 500; overflow-wrap: anywhere}
.admin-v2 .item-count {font-size: 10px; color: #3d536b; white-space: nowrap}
.admin-v2 .amount {font-size: 11px; font-weight: 600; color: #29455e; font-variant-numeric: tabular-nums}
.admin-v2 .badge {font-size: 10px; border-radius: 20px; padding: 6px 10px; font-weight: 500; white-space: nowrap; background: #eaf7ed; color: #118657; gap: 6px}
.admin-v2 .badge.pending {background: #fff5df; color: #946b1b}
.admin-v2 .badge.cancelled, .admin-v2 .badge.refunded {background: #ffeded; color: #d54043}
.admin-v2 .badge.preparing, .admin-v2 .badge.ready, .admin-v2 .badge.shipped {background: #eaf4ff; color: #0879d7}
.admin-v2 .recent-table .badge:before {content: ''; width: 6px; height: 6px; flex-shrink: 0; background: currentColor; border-radius: 50%}
.admin-v2 .order-open {width: 29px; height: 29px; border: 0; background: transparent; color: #46687c}
.admin-v2 .order-open svg {width: 16px; height: 16px}
.admin-v2 .order-open:hover {background: #eaf4ef; color: #147951}
.admin-v2 .recent-footer {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; font-size: 9px; color: #8a969f; padding: 19px 24px 22px}
/* Empty dashboard: real zero state, not fabricated customers or purchases. */
.admin-v2 .dashboard-empty {min-height: 338px; padding: 45px 25px 49px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border-top: 1px solid #f1f5f4}
.admin-v2 .empty-order-icon {height: 62px; width: 62px; display: grid; place-items: center; border-radius: 20px; background: #f0f8f3; color: #13805a; margin-bottom: 21px}
.admin-v2 .empty-order-icon svg {width: 29px; height: 29px; stroke-width: 1.4}
.admin-v2 .dashboard-empty h3 {font-size: 20px; letter-spacing: -.025em; margin-bottom: 11px; font-weight: 650}
.admin-v2 .dashboard-empty p {font-size: 12px; color: #7b8d99; line-height: 1.85; max-width: 345px; margin-bottom: 22px}
.admin-v2 .dashboard-empty .btn {font-size: 11px; min-height: 39px; padding: 9px 14px}
/* Four shortcut tiles connect to existing routes, never placeholder screens. */
.admin-v2 .quick-grid {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; padding: 3px 20px 20px}
.admin-v2 .quick-card {display: flex; align-items: center; width: 100%; gap: 10px; text-align: left; padding: 14px 11px; min-height: 80px; margin: 0; border: 1px solid transparent; border-radius: 10px; background: #f0f9f0; color: #166c50; transition: background .16s,border-color .16s,transform .16s}
.admin-v2 .quick-card:hover {border-color: #c9e3d1; background: #e9f5eb; transform: translateY(-1px)}
.admin-v2 .quick-blue {background: #eef7ff; color: #205781}
.admin-v2 .quick-blue:hover {border-color: #c6dfef; background: #e6f2fe}
.admin-v2 .quick-icon {display: grid; place-items: center; width: 40px; height: 44px; border-radius: 50%; background: #dff2e1; color: #047949; flex-shrink: 0}
.admin-v2 .quick-blue .quick-icon {background: #dcefff; color: #0583ed}
.admin-v2 .quick-icon svg {width: 23px; height: 23px; stroke-width: 1.8}
.admin-v2 .quick-card strong {display: block; font-size: 10.5px; font-weight: 650; letter-spacing: -.02em; line-height: 1.4}
.admin-v2 .quick-card small {display: block; font-size: 9.5px; color: #64927a; margin-top: 4px; font-weight: 400; line-height: 1.4}
.admin-v2 .quick-blue small {color: #708aa0}
.admin-v2 .connected-panel .panel-body {padding-top: 9px}
.admin-v2 .mini-steps {gap: 21px; margin-bottom: 21px}
.admin-v2 .mini-step {position: relative; gap: 16px; align-items: flex-start; font-size: 11px}
.admin-v2 .mini-step > span {width: 29px; height: 29px; border-color: #d9eee0; background: #f1faf3; color: #087251; font-weight: 650; font-size: 11px; position: relative; z-index: 1}
.admin-v2 .mini-step:not(:last-child):after {content: ''; position: absolute; left: 14px; top: 33px; bottom: -18px; border-left: 1px solid #e0eee7}
.admin-v2 .mini-step strong {color: #253f54; font-weight: 650}
.admin-v2 .mini-step p {font-size: 10px; color: #7e8d98; margin-top: 2px}
.admin-v2 .admin-payment-notice {display: flex; align-items: flex-start; gap: 11px; padding: 12px; background: #fff7e8; border-color: #f8e4bb; color: #9c7838; border-radius: 10px; font-size: 10px; line-height: 1.8}
.admin-v2 .admin-payment-notice svg {width: 18px; height: 18px; color: #d39317; margin-top: 2px}
.admin-v2 .admin-footnote {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 28px 3px 0; font-size: 9px; color: #96a2ab}
.admin-v2 .admin-footnote span span {padding: 0 8px; color: #b9c5c9}
/* Existing forms and secondary screens share the new visual language. */
.admin-v2 .table-toolbar {padding: 19px 22px; border-bottom-color: #edf1f1}
.admin-v2 .table-toolbar .search-form {border-color: #dce6eb; background: #fff; border-radius: 8px; height: 40px; order: 0}
.admin-v2 .table-product strong {font-size: 12px; font-weight: 600}
.admin-v2 .table-product span {color: #88969f}
.admin-v2 .table-product img {width: 48px; height: 54px; background: #f8faf8; border: 1px solid #f1f3f0; border-radius: 9px}
.admin-v2 .table-product {min-width: 210px}
.admin-v2 .customer-grid {grid-template-columns: repeat(3,minmax(0,1fr)); gap: 19px}
.admin-v2 .customer-card {border-radius: 16px; border: 1px solid #e8efed; box-shadow: var(--admin-shadow); padding: 24px}
.admin-v2 .customer-card h3 {margin-top: 17px; font-size: 17px}
.admin-v2 .customer-card .customer-points {font-size: 28px; color: #107454; margin-top: 23px}
.admin-v2 .customer-points span {font-size: 11px; color: #7e9185; font-weight: 400; letter-spacing: 0}
.admin-v2 .pos-grid {grid-template-columns: minmax(0,1.4fr) minmax(360px,1fr); gap: 22px}
.admin-v2 .settings-grid {grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px}
.admin-v2 label.field {font-size: 11px; color: #3d5260}
.admin-v2 input, .admin-v2 select, .admin-v2 textarea {border-color: #dce6e7; border-radius: 8px; font-size: 12px}
.admin-v2 input:focus, .admin-v2 select:focus, .admin-v2 textarea:focus {border-color: #61a086; box-shadow: 0 0 0 3px #14745412}
.admin-v2 .notice {font-size: 11px; border-radius: 9px}
.admin-v2 .admin-payment-notice {font-size: 10px}
.admin-v2 .check {color: #51656f; font-size: 11px}
.admin-v2 .empty {border-color: #e4edeb; margin: 20px; background: #fcfdfc}
@media(min-width:1600px) {
 .admin-v2 .admin-header-inner {gap: 34px}
 .admin-v2 .admin-nav {gap: 6px}
 .admin-v2 .admin-nav button {font-size: 12px; padding: 12px 14px}
 .admin-v2 .stat p {font-size: 12px}
 .admin-v2 .quick-card strong {font-size: 12px}
 .admin-v2 .quick-card small {font-size: 11px}
}
@media(max-width:1350px) {
 .admin-v2 .admin-header-inner {gap: 16px; width: calc(100% - 48px)}
 .admin-v2 .admin-brand {font-size: 23px; gap: 8px}
 .admin-v2 .admin-nav button {padding: 11px 8px; font-size: 10.5px; gap: 6px}
 .admin-v2 .admin-profile .profile-name {display: none}
 .admin-v2 .admin-content {width: calc(100% - 48px)}
 .admin-v2 .stat {gap: 12px; padding: 24px 17px 21px}
 .admin-v2 .stat-main-icon {width: 42px; height: 42px}
 .admin-v2 .stat strong {font-size: 28px}
 .admin-v2 .stat-corner {width: 26px; height: 27px; top: 18px; right: 13px}
 .admin-v2 .stat p {font-size: 10px}
 .admin-v2 .admin-cols {grid-template-columns: minmax(0,1.8fr) minmax(335px,1fr); gap: 18px}
 .admin-v2 .quick-grid {padding: 3px 16px 18px; gap: 9px}
 .admin-v2 .quick-card {gap: 8px; padding: 13px 9px}
 .admin-v2 .quick-icon {width: 34px; height: 38px}
 .admin-v2 .quick-card strong {font-size: 10px}
 .admin-v2 .quick-card small {font-size: 9px}
}
@media(max-width:1080px) {
 .admin-v2 .admin-header-inner {display: grid; grid-template-columns: 1fr auto; gap: 0; min-height: 0; padding-top: 8px}
 .admin-v2 .admin-brand {height: 46px; width: fit-content}
 .admin-v2 .admin-profile {grid-column: 2; grid-row: 1}
 .admin-v2 .admin-profile .profile-name {display: inline}
 .admin-v2 .admin-nav {grid-row: 2; grid-column: 1/-1; width: 100%; overflow-x: auto; scrollbar-width: none; gap: 5px; padding: 6px 0 10px; scroll-padding: 12px}
 .admin-v2 .admin-nav::-webkit-scrollbar {display: none}
 .admin-v2 .admin-nav button {font-size: 11px; padding: 10px 12px}
 .admin-v2 .admin-content {padding-top: 27px}
 .admin-v2 .stats-grid {gap: 12px}
 .admin-v2 .stat {gap: 10px; padding: 20px 14px; min-height: 151px}
 .admin-v2 .stat-main-icon {width: 35px; height: 35px}
 .admin-v2 .stat-main-icon svg {width: 19px; height: 19px}
 .admin-v2 .stat p {padding-right: 0; font-size: 10px}
 .admin-v2 .stat small {font-size: 9px}
 .admin-v2 .stat strong {font-size: 27px}
 .admin-v2 .stat-corner {display: none}
 .admin-v2 .admin-cols {grid-template-columns: minmax(0,1fr)}
 .admin-v2 .dashboard-side {grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 18px}
 .admin-v2 .quick-grid {grid-template-columns: 1fr; gap: 8px}
 .admin-v2 .quick-card {min-height: 61px; padding: 9px 13px; gap: 13px}
 .admin-v2 .quick-card strong {font-size: 11px}
 .admin-v2 .quick-card small {font-size: 10px}
 .admin-v2 .dashboard-empty {min-height: 295px; padding: 31px 24px}
 .admin-v2 .customer-grid {grid-template-columns: repeat(2,minmax(0,1fr))}
}
@media(max-width:760px) {
 .admin-v2 .admin-content, .admin-v2 .admin-header-inner {width: calc(100% - 36px)}
 .admin-v2 .admin-title {gap: 16px; align-items: flex-start}
 .admin-v2 .admin-title h1 {font-size: 29px}
 .admin-v2 .admin-title p {font-size: 12px; max-width: 300px; line-height: 1.7}
 .admin-v2 .admin-title-actions {gap: 8px}
 .admin-v2 .admin-title-actions .btn {padding: 10px 12px; min-width: 0; min-height: 41px; font-size: 11px}
 .admin-v2 .admin-title-actions .btn.secondary {font-size: 0; width: 42px; gap: 0}
 .admin-v2 .stats-grid {grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px}
 .admin-v2 .stat {min-height: 142px; padding: 21px 17px; gap: 14px}
 .admin-v2 .stat-main-icon {width: 42px; height: 42px}
 .admin-v2 .stat-main-icon svg {width: 22px; height: 22px}
 .admin-v2 .stat p {font-size: 11px}
 .admin-v2 .stat small {font-size: 10px}
 .admin-v2 .stat strong {font-size: 29px}
 .admin-v2 .dashboard-side {gap: 14px}
 .admin-v2 .panel-head {padding: 18px 18px 14px}
 .admin-v2 .panel-head h3 {font-size: 15px}
 .admin-v2 .panel-body {padding: 18px}
 .admin-v2 .recent-panel .panel-head, .admin-v2 .quick-panel .panel-head, .admin-v2 .connected-panel .panel-head {padding: 18px 18px 10px}
 .admin-v2 .panel-description {padding: 0 18px; font-size: 11px}
 .admin-v2 .order-tools {padding-left: 18px; padding-right: 18px}
 .admin-v2 .recent-panel .table-scroll {margin: 0 18px}
 .admin-v2 .mini-step {gap: 11px}
 .admin-v2 .pos-grid, .admin-v2 .settings-grid {grid-template-columns: minmax(0,1fr)}
 .admin-v2 .orders-panel .panel-head {flex-wrap: wrap}
 .admin-v2 .orders-panel .panel-head > .flex {flex: 1; justify-content: space-between}
}
@media(max-width:540px) {
 .admin-v2 .admin-content, .admin-v2 .admin-header-inner {width: calc(100% - 30px)}
 .admin-v2 .admin-header-inner {padding-top: 6px}
 .admin-v2 .admin-brand {font-size: 22px; gap: 7px; height: 46px}
 .admin-v2 .brand-mark {width: 26px; height: 29px}
 .admin-v2 .brand-mark svg {width: 26px; height: 26px}
 .admin-v2 .admin-profile .avatar {width: 31px; height: 31px; font-size: 10px}
 .admin-v2 .admin-profile .profile-name {font-size: 10px}
 .admin-v2 .admin-profile summary {gap: 6px; padding: 6px 0; min-height: 44px}
 .admin-v2 .admin-profile summary > svg {width: 13px; height: 13px}
 .admin-v2 .admin-nav {padding: 6px 0 9px; gap: 3px}
 .admin-v2 .admin-nav button {font-size: 10px; padding: 9px 11px; min-height: 40px; gap: 6px; border-radius: 7px}
 .admin-v2 .admin-nav button svg {width: 16px; height: 16px}
 .admin-v2 .admin-content {padding-top: 26px}
 .admin-v2 .admin-title {display: block; margin-bottom: 20px}
 .admin-v2 .admin-title .eyebrow {font-size: 9px; margin-bottom: 9px}
 .admin-v2 .admin-title h1 {font-size: 30px}
 .admin-v2 .admin-title p {font-size: 11px; margin-top: 8px; max-width: none}
 .admin-v2 .admin-title-actions {justify-content: flex-start; margin-top: 17px}
 .admin-v2 .admin-title-actions:empty {display: none}
 .admin-v2 .admin-title-actions .btn.secondary {font-size: 11px; width: auto; gap: 7px}
 .admin-v2 .admin-title-actions .btn:not(.secondary) {min-width: 164px}
 .admin-v2 .stats-grid {gap: 10px; margin-bottom: 18px}
 .admin-v2 .stat {display: block; min-height: 184px; padding: 17px 16px; border-radius: 13px}
 .admin-v2 .stat-main-icon {width: 35px; height: 35px; margin-bottom: 10px}
 .admin-v2 .stat-main-icon svg {width: 19px; height: 19px}
 .admin-v2 .stat-copy {padding-top: 0}
 .admin-v2 .stat p {font-size: 10px; margin-bottom: 10px; padding-right: 0}
 .admin-v2 .stat strong {font-size: 28px}
 .admin-v2 .stat small {font-size: 9px; margin-top: 9px}
 .admin-v2 .stat-corner {display: grid; right: 12px; top: 20px; width: 26px; height: 26px}
 .admin-v2 .stat-corner svg {width: 13px; height: 13px}
 .admin-v2 .admin-cols {gap: 16px}
 .admin-v2 .dashboard-side {grid-template-columns: minmax(0,1fr); gap: 16px}
 .admin-v2 .quick-grid {grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; padding: 3px 15px 17px}
 .admin-v2 .quick-card {display: flex; gap: 8px; padding: 13px 9px; min-height: 80px}
 .admin-v2 .quick-icon {width: 31px; height: 35px}
 .admin-v2 .quick-icon svg {width: 20px; height: 20px}
 .admin-v2 .quick-card strong {font-size: 10px}
 .admin-v2 .quick-card small {font-size: 9px}
 .admin-v2 .panel {border-radius: 13px}
 .admin-v2 .panel-head {padding: 17px 16px; gap: 10px}
 .admin-v2 .panel-head h3 {font-size: 16px}
 .admin-v2 .panel-head .text-btn {font-size: 10px; gap: 5px; white-space: nowrap}
 .admin-v2 .panel-heading {gap: 8px}
 .admin-v2 .section-icon {width: 29px; height: 31px}
 .admin-v2 .section-icon svg {width: 18px; height: 18px}
 .admin-v2 .section-icon.bare {width: 21px}
 .admin-v2 .recent-panel .panel-head, .admin-v2 .quick-panel .panel-head, .admin-v2 .connected-panel .panel-head {padding: 17px 16px 9px}
 .admin-v2 .panel-description {padding: 0 16px; font-size: 10px; line-height: 1.8; margin-bottom: 14px}
 .admin-v2 .order-tools {justify-content: flex-start; padding: 0 16px 16px; gap: 9px}
 .admin-v2 .order-tools .search-form {max-width: none; min-width: 0; flex: 1 1 100%; height: 38px}
 .admin-v2 .order-tools select {height: 37px; flex: 1 1 100%; font-size: 10px}
 .admin-v2 .recent-panel .table-scroll {margin: 0 16px}
 .admin-v2 .recent-footer {padding: 16px; font-size: 9px}
 .admin-v2 .dashboard-empty {min-height: 300px; padding: 30px 19px}
 .admin-v2 .dashboard-empty h3 {font-size: 17px; max-width: 240px}
 .admin-v2 .dashboard-empty p {font-size: 11px; max-width: 255px}
 .admin-v2 .empty-order-icon {width: 54px; height: 54px; margin-bottom: 17px; border-radius: 16px}
 .admin-v2 .dashboard-empty .btn {font-size: 10px}
 .admin-v2 .panel-body {padding: 17px 16px}
 .admin-v2 .connected-panel .panel-body {padding-top: 10px}
 .admin-v2 .mini-step {gap: 14px; font-size: 11px}
 .admin-v2 .mini-step p {font-size: 10px}
 .admin-v2 .admin-payment-notice {font-size: 10px; padding: 12px}
 .admin-v2 .admin-footnote {font-size: 8px; padding-top: 24px; gap: 5px}
 .admin-v2 .customer-grid {grid-template-columns: minmax(0,1fr)}
 .admin-v2 .table-toolbar {padding: 16px; gap: 12px}
 .admin-v2 .table-toolbar .search-form {flex-basis: 100%; min-width: 0}
 .admin-v2 .toolbar-buttons {gap: 7px; width: 100%}
 .admin-v2 .toolbar-buttons .btn {font-size: 10px; min-height: 35px; padding: 7px 10px}
 .admin-v2 .settings-grid, .admin-v2 .pos-grid {gap: 16px}
 .admin-v2 .pos-grid .panel-head h3 {font-size: 14px}
 .admin-v2 .orders-panel .panel-head > .flex {flex: 1 1 100%}
 .admin-v2 .admin-main .search-form {order: 0}
 .admin-v2 .recent-table {min-width: 655px}
}
@media(max-width:359px) {
 .admin-v2 .admin-profile .profile-name {display: none}
 .admin-v2 .stat {padding: 15px 12px}
 .admin-v2 .stat strong {font-size: 25px}
 .admin-v2 .quick-card {display: block}
 .admin-v2 .quick-icon {margin-bottom: 9px}
 .admin-v2 .admin-title-actions {gap: 8px}
 .admin-v2 .admin-title-actions .btn {padding: 10px 11px; font-size: 10px}
 .admin-v2 .admin-title-actions .btn:not(.secondary) {min-width: 150px}
}
@media(prefers-reduced-motion:reduce) {
 .admin-v2 *, .admin-v2 *:before, .admin-v2 *:after {transition: none !important; animation: none !important}
}
/* Anchor visually-hidden column labels inside the scrolling table, not the page. */
.admin-v2 .recent-table th {position: relative}

/* V4 - Club Farmastel operational focus */
.club-sale-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.65fr) minmax(300px,.8fr);gap:20px;align-items:start}
.club-sale-layout>.panel{min-width:0}
.club-sale-row{display:grid;grid-template-columns:58px 1fr;gap:13px;padding:16px 0;border-bottom:1px solid var(--line)}
.club-sale-row>img{width:58px;height:62px;object-fit:contain;background:#f8f6f1;border-radius:9px}
.club-sale-main{min-width:0}.club-sale-main h4{margin:0;color:var(--navy);font-size:13px}.club-sale-main small{color:var(--muted)}
.sale-line-tools{display:grid;grid-template-columns:minmax(150px,190px) 1fr auto;align-items:end;gap:12px;margin-top:12px}
.sale-line-tools>label:first-child{display:grid;gap:5px;font-size:10px;color:var(--muted);font-weight:650}.sale-line-tools input[type=number]{padding:8px 9px}
.check.compact{font-size:10px;align-self:center}.sale-line-tools>strong{font-size:14px;color:var(--navy);white-space:nowrap;padding-bottom:8px}
.customer-sale-preview{padding:14px 15px;border-radius:10px;background:#f2f7ef;border:1px solid #dfe9da;display:grid;gap:3px}.customer-sale-preview b{color:var(--navy)}.customer-sale-preview span{font-size:11px;color:var(--green)}
.points-preview{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;background:#edf5ed;border-radius:10px;color:var(--green)}.points-preview b{font-size:18px}
.sale-confirm{position:sticky;top:94px}.customer-detail-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.customer-detail-head p{color:var(--muted);font-size:12px;margin-top:7px}.customer-balance{padding:15px 18px;border-radius:12px;background:#edf5ed;text-align:right}.customer-balance span{display:block;font-size:10px;color:var(--muted)}.customer-balance b{display:block;font-size:24px;color:var(--green);margin-top:3px}.customer-detail-actions{display:flex;gap:10px;margin:20px 0}
@media(max-width:1100px){.club-sale-layout{grid-template-columns:1fr 1fr}.sale-confirm{position:static;grid-column:1/-1}.sale-line-tools{grid-template-columns:1fr 1fr}.sale-line-tools>strong{grid-column:1/-1}}
@media(max-width:700px){.club-sale-layout{grid-template-columns:1fr}.sale-confirm{grid-column:auto}.sale-line-tools{grid-template-columns:1fr}.sale-line-tools>strong{grid-column:auto}.customer-detail-head{display:grid}.customer-balance{text-align:left}.customer-detail-actions{display:grid}}

/* V5 - busqueda rapida de productos en Registrar compra */
.pos-search-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;position:relative}
.pos-search-field{min-width:0}.product-combobox{position:relative}.product-combobox>input[type=search]{width:100%;padding:12px 13px}
.product-suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 45px #143b2a20;max-height:340px;overflow:auto;padding:6px}
.product-suggest-row{width:100%;border:0;background:#fff;border-radius:9px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;color:var(--ink)}
.product-suggest-row:hover,.product-suggest-row:focus-visible{background:#f2f7ee}.product-suggest-row strong{display:block;color:var(--navy);font-size:12px}.product-suggest-row small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.product-suggest-meta{text-align:right;white-space:nowrap}.product-suggest-meta b{display:block;color:var(--green);font-size:12px}.product-suggest-hint{padding:12px;color:var(--muted);font-size:11px}
@media(max-width:700px){.pos-search-line{grid-template-columns:1fr}.pos-search-line>.btn{width:100%}.product-suggestions{max-height:290px}}

/* V7.1 - precio visible y editable en caja */
.pos-price-field>span{display:flex;align-items:center;gap:6px;color:var(--navy);font-size:11px;font-weight:700}.price-pencil{border:0;background:#eef7f1;color:var(--green);width:27px;height:27px;border-radius:7px;cursor:pointer;font-size:15px;line-height:1;display:inline-grid;place-items:center}.price-pencil:hover,.price-pencil:focus-visible{background:#dcefe3}.price-input-wrap{display:flex;align-items:center;border:1px solid #cfdad1;border-radius:8px;background:#fff;overflow:hidden;min-width:150px}.price-input-wrap>span{padding:0 0 0 10px;color:var(--navy);font-weight:700}.price-input-wrap input.pos-price{border:0!important;box-shadow:none!important;width:100%;font-size:15px;font-weight:700;color:var(--navy);padding:9px 10px 9px 4px}.product-suggest-meta b{font-size:14px!important;color:var(--navy)!important}.product-suggest-row:hover .product-suggest-meta b{color:var(--green)!important}
