:root {
    --bg: #f5f7fa;
    --surface: #ffffff;
    --surface-soft: #eef3f2;
    --ink: #14201d;
    --muted: #6c7773;
    --line: #dfe6e3;
    --nav: #17211f;
    --nav-soft: #23302d;
    --primary: #0b7a75;
    --primary-dark: #075f5b;
    --accent: #c58b22;
    --danger: #b42318;
    --success: #1d7f43;
    --shadow: 0 18px 50px rgba(22, 32, 29, .10);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--bg);
    font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 12px;
    letter-spacing: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

.has-error {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 3px rgba(220, 53, 69, .12);
}

.field-error {
    display: block;
    margin-top: 6px;
    color: #dc3545;
    font-size: 12px;
    font-weight: 700;
}

input,
select,
textarea {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--ink);
    background: #fff;
    padding: 9px 11px;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

textarea {
    resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(11, 122, 117, .13);
}

label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

label span,
label input,
label select,
label textarea {
    font-weight: 500;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1 {
    margin-bottom: 0;
    font-size: 24px;
}

h2 {
    margin-bottom: 10px;
    font-size: 15px;
}

h3 {
    margin-bottom: 4px;
    font-size: 16px;
}

p {
    color: #91979b;
    line-height: 1.55;
}

.app-shell {
    display: grid;
    min-height: 100vh;
    grid-template-columns: 280px minmax(0, 1fr);
}

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    background: var(--nav);
    color: #eef7f4;
    padding: 20px 14px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-mark {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--primary), #123d39);
    color: #fff;
    font-weight: 900;
}

.brand-logo {
    width: 42px;
    height: 42px;
    border-radius: 8px;
    object-fit: contain;
    padding: 4px;
    background: #fff;
    border: 1px solid rgba(255, 255, 255, .35);
}

.brand strong {
    display: block;
    font-size: 16px;
}

.brand span {
    display: block;
    margin-top: 2px;
    color: #adc1bb;
    font-size: 12px;
}

.sidebar-nav {
    display: grid;
    gap: 6px;
    margin-top: 26px;
}

.nav-group {
    display: grid;
    gap: 3px;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    border-radius: 8px;
    color: #dbe8e4;
    padding: 9px 10px;
    transition: background .18s ease, color .18s ease;
}

.nav-link-toggle {
    width: 100%;
    border: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.nav-link:hover,
.nav-link.is-active {
    background: var(--nav-soft);
    color: #fff;
}

.nav-symbol {
    display: grid;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 8px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

.nav-children {
    display: grid;
    gap: 2px;
    margin-left: 24px;
}

.nav-group.is-collapsed .nav-children {
    display: none;
}

.nav-caret {
    margin-left: auto;
    color: #91a9a3;
    font-size: 18px;
    line-height: 1;
    transition: transform .18s ease, color .18s ease;
}

.nav-link-toggle:hover .nav-caret,
.nav-link-toggle.is-active .nav-caret {
    color: #fff;
}

.nav-group.is-expanded .nav-caret {
    transform: rotate(90deg);
}

.nav-link-child {
    min-height: 34px;
    color: #bdcbc7;
    font-size: 13px;
}

.workspace {
    min-width: 0;
}

.topbar {
    position: sticky;
    z-index: 5;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 76px;
    border-bottom: 1px solid var(--line);
    background: rgba(245, 247, 250, .93);
    padding: 14px 28px;
    backdrop-filter: blur(12px);
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.context-switcher {
    display: grid;
    grid-template-columns: minmax(170px, 230px) minmax(120px, 170px);
    gap: 8px;
    align-items: end;
}

.context-switcher label {
    gap: 4px;
}

.context-switcher select {
    min-height: 36px;
    padding: 7px 9px;
}

.topbar-notification {
    width: 44px;
    min-height: 44px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    position: relative;
}

.topbar-notification svg {
    display: block;
}

.topbar-notification-wrap {
    position: relative;
}

.topbar-notification-badge {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--accent, #c58b22);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    line-height: 14px;
    text-align: center;
}

.topbar-notification-panel {
    position: absolute;
    z-index: 30;
    top: calc(100% + 10px);
    right: 0;
    width: min(340px, calc(100vw - 28px));
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .14);
    overflow: hidden;
}

.topbar-notification-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--surface-soft);
}

.topbar-notification-panel-head span {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(197, 139, 34, .16);
    color: var(--accent, #c58b22);
    font-size: 12px;
    font-weight: 900;
    text-align: center;
}

.topbar-notification-item {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    color: inherit;
    text-decoration: none;
}

.topbar-notification-item:last-child {
    border-bottom: 0;
}

.topbar-notification-item strong {
    font-size: 14px;
}

.topbar-notification-item span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}

.topbar-notification-item.tone-warning strong {
    color: #b45309;
}

.topbar-notification-item.tone-danger strong {
    color: #b91c1c;
}

.topbar-notification-item:hover {
    background: var(--surface-soft);
}

.topbar-notification-empty {
    padding: 16px 14px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.user-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 220px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    padding: 8px 10px;
}

.user-chip > span {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--primary-dark);
    font-weight: 900;
}

.user-chip strong,
.user-chip small {
    display: block;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-chip small {
    color: var(--muted);
}

.content {
    display: grid;
    gap: 22px;
    max-width: 1440px;
    margin: 0 auto;
    padding: 28px;
}

.eyebrow {
    display: inline-flex;
    color: var(--primary);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.hero-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff, #eef5f2);
    box-shadow: var(--shadow);
    padding: 28px;
}

.hero-panel h2 {
    font-size: 28px;
}

.hero-panel p {
    max-width: 760px;
    margin-bottom: 0;
}

.dashboard-context-line {
    margin-top: 8px;
}

.hero-meta {
    min-width: 230px;
    background: #fff;
    border-radius: 8px;
    padding: 16px;
}

.hero-meta span,
.hero-meta small {
    display: block;
    color: var(--muted);
}

.hero-meta strong {
    display: block;
    margin: 5px 0;
    font-size: 22px;
}

.hero-meta-action {
    width: 100%;
    margin-top: 12px;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(130px, 1fr));
    gap: 14px;
}

.metric-card,
.module-card,
.list-card,
.panel-form,
.notice {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.metric-card {
    display: grid;
    gap: 8px;
    min-height: 126px;
    box-shadow: 0 12px 28px rgba(12, 33, 28, .06);
    padding: 20px 22px;
}

.metric-card span {
    color: var(--muted);
    font-weight: 700;
}

.metric-card strong {
    display: block;
    font-size: 30px;
    line-height: 1.05;
}

.metric-card small {
    color: var(--muted);
    font-weight: 700;
}

.metric-card strong.is-positive {
    color: #087f6f;
}

.metric-card strong.is-negative {
    color: #b24b3f;
}

.cash-flow-panel {
    overflow: hidden;
}

.cash-flow-summary {
    padding: 16px;
}

.cash-flow-page-panel .cash-flow-summary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
}

.cash-flow-page-panel .cash-flow-summary .metric-card {
    min-height: 110px;
    gap: 6px;
    padding: 16px 18px;
}

.cash-flow-page-panel .cash-flow-summary .metric-card span {
    font-size: 14px;
    line-height: 1.25;
}

.cash-flow-page-panel .cash-flow-summary .metric-card strong {
    margin-top: 4px;
    font-size: 22px;
    line-height: 1;
}

.cash-flow-page-panel .cash-flow-summary .metric-card small {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.25;
}

.cash-flow-section {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-top: 1px solid var(--line);
}

.section-title-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.section-title-inline h2 {
    margin: 3px 0 0;
    font-size: 20px;
}

.fiscal-tabs {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fbfb;
    overflow-x: auto;
}

.fiscal-tabs a {
    flex: 0 0 auto;
    padding: 10px 14px;
    border-radius: 6px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
}

.fiscal-tabs a:hover,
.fiscal-tabs a.is-active {
    color: var(--navy);
    background: #dfeeed;
    box-shadow: inset 0 0 0 2px rgba(11, 122, 117, .18);
}

.data-panel-actions {
    padding: 16px;
    border-bottom: 1px solid var(--line);
    background: #fbfcfc;
}

.cash-flow-group-table {
    min-width: 760px;
}

.text-positive {
    color: #087f6f;
    font-weight: 800;
}

.text-negative {
    color: #b24b3f;
    font-weight: 800;
}

.metric-card small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-weight: 700;
}

.presence-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 28px;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 800;
}

.presence-pill > span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.presence-pill.is-online {
    color: var(--success);
    background: rgba(29, 127, 67, .12);
}

.presence-pill.is-online > span {
    background: var(--success);
    box-shadow: 0 0 0 4px rgba(29, 127, 67, .14);
}

.presence-pill.is-offline {
    color: var(--muted);
    background: var(--surface-soft);
}

.presence-pill.is-offline > span {
    background: #9aa8a3;
}

.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.section-description {
    max-width: 680px;
    margin: 6px 0 0;
    color: var(--muted);
    font-weight: 600;
}

.limit-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
    padding: 16px 18px;
}

.limit-summary strong,
.limit-summary span {
    display: block;
}

.limit-summary > span {
    color: var(--muted);
    font-weight: 700;
}

.limit-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 14px;
}

.limit-card {
    display: grid;
    align-content: space-between;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(12, 33, 28, .06);
    min-height: 128px;
    padding: 18px 20px;
}

.limit-card span {
    display: block;
    color: var(--muted);
    font-weight: 700;
}

.limit-card strong {
    display: block;
    margin-top: 6px;
    font-size: 24px;
    line-height: 1.1;
}

.limit-card p {
    margin-bottom: 0;
}

.limit-card small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-weight: 700;
}

.limit-card.is-over-limit {
    background: #fff7f7;
}

.limit-progress {
    overflow: hidden;
    height: 9px;
    border-radius: 999px;
    background: var(--surface-soft);
}

.limit-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), var(--accent));
}

.limit-card.is-over-limit .limit-progress span {
    background: linear-gradient(90deg, #d64a4a, #f0a22e);
}

.site-editor-panel {
    max-width: 980px;
}

.search-form {
    display: flex;
    align-items: center;
    gap: 10px;
    width: min(520px, 100%);
}

.search-form input {
    min-width: 220px;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(240px, 1fr));
    gap: 16px;
}

.module-card {
    display: grid;
    gap: 12px;
    padding: 18px;
}

.module-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.module-icon {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--primary-dark);
    font-weight: 900;
}

.chip-list,
.login-highlights {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.chip-list span,
.login-highlights span,
.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 800;
}

.status-pill.is-on {
    background: rgba(29, 127, 67, .12);
    color: var(--success);
}

.status-pill.is-off {
    background: rgba(180, 35, 24, .10);
    color: var(--danger);
}

.status-pill.is-waiting {
    background: rgba(197, 139, 34, .14);
    color: var(--accent);
}

/* PDV-Agile */
.agile-pos {
    --agile-bg: #061018;
    --agile-panel: #0b1b25;
    --agile-panel-2: #102838;
    --agile-line: #233b4a;
    --agile-text: #f8fbff;
    --agile-muted: #9eb2c0;
    --agile-green: #20d363;
    --agile-blue: #1976d2;
    --agile-orange: #c47a00;
    --agile-red: #df2b2f;
    min-height: 100vh;
    height: 100vh;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    background: var(--agile-bg);
    color: var(--agile-text);
    font-family: inherit;
}

.agile-topbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 72px;
    padding: 10px 18px;
    border-bottom: 1px solid var(--agile-line);
    background: #07131b;
}

.agile-brand,
.agile-nav,
.agile-status {
    display: flex;
    align-items: center;
    gap: 12px;
}

.agile-logo {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #087f72;
    color: #fff;
    font-weight: 900;
}

.agile-brand strong {
    display: block;
    font-size: 1.45rem;
    line-height: 1;
}

.agile-brand small {
    display: block;
    color: var(--agile-green);
    font-size: .76rem;
    font-weight: 900;
    text-transform: uppercase;
}

.agile-nav {
    justify-content: center;
    overflow-x: auto;
    padding-bottom: 2px;
}

.agile-nav button,
.agile-nav a,
.agile-status span,
.agile-status strong,
.agile-status small {
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: var(--agile-text);
    padding: 10px 12px;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.agile-nav button,
.agile-nav a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.agile-nav .is-active,
.agile-nav button:hover,
.agile-nav a:hover {
    background: rgba(32, 211, 99, .12);
    color: var(--agile-green);
    border-color: rgba(32, 211, 99, .3);
}

.agile-nav b {
    min-width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
}

.agile-status {
    justify-content: flex-end;
}

.agile-status span {
    background: rgba(32, 211, 99, .14);
    color: var(--agile-green);
}

.agile-status strong {
    background: rgba(196, 122, 0, .18);
    color: #ffbf63;
}

.agile-status small {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    background: rgba(255, 255, 255, .08);
}

.agile-shell {
    min-height: 0;
    display: grid;
    grid-template-columns: 320px minmax(460px, 1fr) 390px;
    gap: 10px;
    padding: 10px;
    overflow: hidden;
}

.agile-map,
.agile-work,
.agile-menu {
    min-height: 0;
    border: 1px solid var(--agile-line);
    border-radius: 12px;
    background: var(--agile-panel);
    overflow: hidden;
}

.agile-map,
.agile-menu {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
}

.agile-work {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr);
}

.agile-panel-head,
.agile-order-head,
.agile-items-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
}

.agile-panel-head span,
.agile-order-head span {
    color: var(--agile-green);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.agile-panel-head h2,
.agile-order-head h1,
.agile-items-head h2,
.agile-summary h2 {
    margin: 0;
}

.agile-panel-head button,
.agile-items-head button,
.agile-order-badges button,
.agile-action-grid button,
.agile-action-grid a,
.agile-summary button {
    border: 1px solid var(--agile-line);
    border-radius: 10px;
    background: var(--agile-panel-2);
    color: var(--agile-text);
    font-weight: 900;
    cursor: pointer;
    text-decoration: none;
}

.agile-panel-head button {
    width: 42px;
    height: 42px;
    background: #139739;
}

.agile-filter-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 0 16px 14px;
}

.agile-filter-row input,
.agile-filter-row select {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--agile-line);
    border-radius: 10px;
    background: #081923;
    color: var(--agile-text);
    padding: 0 12px;
}

.agile-table-grid,
.agile-product-groups,
.agile-items-list,
.agile-history {
    min-height: 0;
    overflow: auto;
    padding: 0 16px 16px;
}

.agile-table-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: 10px;
}

.agile-table-card {
    position: relative;
    min-height: 138px;
    display: grid;
    align-content: start;
    gap: 5px;
    border: 1px solid var(--agile-line);
    border-radius: 12px;
    background: #102737;
    color: var(--agile-text);
    text-decoration: none;
    padding: 14px;
    overflow: hidden;
}

.agile-table-card.is-active {
    border-color: #59aaff;
    box-shadow: 0 0 0 2px rgba(89, 170, 255, .14);
}

.agile-table-icon {
    color: #7fc4ff;
}

.agile-table-card strong {
    font-size: 1.1rem;
}

.agile-table-card small,
.agile-table-card span,
.agile-table-card em {
    color: var(--agile-muted);
    font-style: normal;
}

.agile-table-card b {
    margin-top: 4px;
    color: #fff;
}

.agile-order-head {
    border-bottom: 1px solid var(--agile-line);
}

.agile-order-head h1 {
    font-size: clamp(1.35rem, 1.8vw, 2rem);
}

.agile-order-head small {
    display: block;
    color: var(--agile-muted);
    margin-top: 4px;
}

.agile-order-badges {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.agile-order-badges b {
    padding: 9px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
}

.agile-order-badges .is-green {
    background: rgba(32, 211, 99, .18);
    color: #7cff9f;
}

.agile-order-badges .is-orange {
    background: rgba(196, 122, 0, .18);
    color: #ffc36d;
}

.agile-info-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 10px;
    border-bottom: 1px solid var(--agile-line);
}

.agile-info-grid div {
    display: grid;
    gap: 4px;
    border: 1px solid var(--agile-line);
    border-radius: 10px;
    background: #0a1922;
    padding: 10px 12px;
}

.agile-info-grid span {
    color: var(--agile-muted);
    font-size: .78rem;
}

.agile-info-grid strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.agile-tabs {
    display: flex;
    gap: 18px;
    padding: 0 16px;
    border-bottom: 1px solid var(--agile-line);
}

.agile-tabs button {
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #fff;
    padding: 14px 0;
    font-weight: 900;
    cursor: pointer;
}

.agile-tabs button.is-active {
    color: var(--agile-green);
    border-color: var(--agile-green);
}

.agile-tab-panel {
    display: none;
    min-height: 0;
    overflow: hidden;
}

.agile-tab-panel.is-active {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.agile-items-head button {
    min-height: 42px;
    padding: 0 14px;
    background: #0e8f39;
}

.agile-items-list {
    display: grid;
    align-content: start;
    gap: 8px;
}

.agile-item-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto auto;
    align-items: center;
    gap: 14px;
    border: 1px solid var(--agile-line);
    border-radius: 10px;
    background: #0a1821;
    padding: 12px;
}

.agile-item-row strong,
.agile-item-row span {
    display: block;
}

.agile-item-row span,
.agile-item-row em {
    color: var(--agile-muted);
    font-style: normal;
}

.agile-item-row em {
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    font-weight: 900;
}

.agile-item-row.is-pendente em {
    background: rgba(196, 122, 0, .18);
    color: #ffc36d;
}

.agile-item-row.is-producao em {
    background: rgba(25, 118, 210, .18);
    color: #7fc4ff;
}

.agile-item-row.is-pronto em {
    background: rgba(32, 211, 99, .18);
    color: #7cff9f;
}

.agile-item-row button {
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    padding: 6px;
}

.agile-menu {
    grid-template-rows: auto minmax(0, 1fr) auto;
}

.agile-action-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 14px;
}

.agile-action-grid button,
.agile-action-grid a {
    min-height: 62px;
    display: grid;
    place-items: center;
    gap: 5px;
    padding: 8px;
}

.agile-product-panel {
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    border-top: 1px solid var(--agile-line);
    border-bottom: 1px solid var(--agile-line);
}

.agile-product-groups section + section {
    margin-top: 16px;
}

.agile-product-groups h3 {
    margin: 0 0 8px;
    color: var(--agile-green);
}

.agile-product-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.agile-product-grid button {
    min-height: 126px;
    display: grid;
    align-content: start;
    gap: 7px;
    border: 1px solid var(--agile-line);
    border-radius: 12px;
    background: #102737;
    color: #fff;
    padding: 12px;
    text-align: left;
    cursor: pointer;
}

.agile-product-grid i {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(32, 211, 99, .14);
    color: var(--agile-green);
}

.agile-product-grid span {
    color: #fff;
    font-weight: 900;
}

.agile-product-grid em {
    width: max-content;
    border-radius: 999px;
    background: #e31b23;
    color: #fff;
    padding: 3px 7px;
    font-size: .7rem;
    font-style: normal;
    font-weight: 900;
    text-transform: uppercase;
}

.agile-summary {
    display: grid;
    gap: 8px;
    padding: 14px;
    background: #07131b;
}

.agile-summary p,
.agile-summary div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
}

.agile-summary div {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px dashed var(--agile-line);
    color: #6dff86;
    font-size: 1.35rem;
    font-weight: 900;
}

.agile-summary button {
    min-height: 42px;
}

.agile-summary .is-green {
    background: #139739;
}

.agile-summary .is-blue {
    background: #166dcc;
}

.agile-summary .is-red {
    background: #d92525;
}

.agile-history {
    padding-top: 16px;
}

.agile-history article {
    position: relative;
    display: grid;
    gap: 3px;
    padding: 0 0 16px 24px;
}

.agile-history article::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 10px;
    bottom: -4px;
    width: 2px;
    background: rgba(32, 211, 99, .55);
}

.agile-history i {
    position: absolute;
    left: 0;
    top: 5px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--agile-green);
}

.agile-history span,
.agile-note-box,
.agile-empty-state {
    color: var(--agile-muted);
}

.agile-note-box {
    margin: 16px;
    border: 1px solid var(--agile-line);
    border-radius: 12px;
    background: #081923;
    padding: 16px;
}

.agile-empty-state {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 160px;
    text-align: center;
    border: 1px dashed var(--agile-line);
    border-radius: 12px;
    padding: 18px;
}

.agile-empty-state i {
    font-size: 1.8rem;
    color: var(--agile-green);
}

@media (max-width: 1420px) {
    .agile-shell {
        grid-template-columns: 280px minmax(420px, 1fr) 340px;
    }

    .agile-table-grid,
    .agile-product-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1120px) {
    .agile-pos {
        height: auto;
        min-height: 100vh;
        overflow: auto;
    }

    .agile-topbar,
    .agile-shell {
        grid-template-columns: 1fr;
    }

    .agile-shell {
        overflow: visible;
    }

    .agile-map,
    .agile-work,
    .agile-menu {
        min-height: 420px;
    }

    .agile-info-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .agile-topbar {
        padding: 8px;
    }

    .agile-nav {
        justify-content: flex-start;
    }

    .agile-info-grid,
    .agile-item-row,
    .agile-action-grid {
        grid-template-columns: 1fr;
    }
}

[x-cloak] {
    display: none !important;
}

.status-pill.is-danger {
    background: rgba(220, 38, 38, .12);
    color: #b91c1c;
}

.inline-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.icon-select-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 8px;
    align-items: center;
}

.icon-select-preview {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--primary);
    font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
}

.product-photo-preview {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 10px 0 16px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
}

.product-photo-preview img {
    width: 150px;
    height: 150px;
    border-radius: 8px;
    object-fit: contain;
    border: 1px solid var(--border);
    background: var(--surface);
}

.product-photo-preview .site-banner-preview-remove {
    position: static;
    margin-left: auto;
}

.product-photo-preview.is-empty img {
    display: none;
}

.restaurant-option-grid textarea {
    min-height: 104px;
    resize: vertical;
}

.product-dialog-tabs {
    display: grid;
    gap: 14px;
}

.product-dialog-tablist {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
}

.product-dialog-tablist button {
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.product-dialog-tablist button:hover,
.product-dialog-tablist button.is-active {
    border-color: rgba(14, 165, 233, .28);
    background: var(--surface);
    color: var(--primary);
}

.product-dialog-panel {
    display: none;
}

.product-dialog-panel.is-active {
    display: block;
}

.product-price-rules {
    display: grid;
    gap: 12px;
    margin: 12px 0;
}

.product-price-rule {
    display: grid;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
}

.product-price-rule-title {
    margin: 0;
}

.product-price-rule-title span {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
}

.product-price-rule-title small {
    color: var(--muted);
    font-weight: 700;
}

.weekday-picker {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.weekday-picker label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    font-size: 12px;
    font-weight: 800;
}

/* PDV-Pratico restaurante */
.pratico-pos {
    --pratico-bg: #071118;
    --pratico-panel: #0e1b24;
    --pratico-panel-2: #13232e;
    --pratico-line: #263946;
    --pratico-text: #f4f7f8;
    --pratico-muted: #9fb1bc;
    --pratico-green: #35c14a;
    --pratico-red: #ef1f2f;
    --pratico-orange: #f59e0b;
    --pratico-blue: #0a65c7;
    min-height: 100vh;
    background: var(--pratico-bg);
    color: var(--pratico-text);
    display: grid;
    grid-template-rows: 86px minmax(0, 1fr) 50px;
    overflow: hidden;
}

.pratico-pos button,
.pratico-pos input,
.pratico-pos select,
.pratico-pos textarea {
    font: inherit;
}

.pratico-header {
    border-bottom: 1px solid var(--pratico-line);
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 20px;
    min-width: 0;
}

.pratico-brand {
    width: 250px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto;
}

.pratico-logo {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: #08776d;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.pratico-brand strong {
    font-size: 24px;
    line-height: 1;
}

.pratico-brand span,
.pratico-operator small,
.pratico-panel-title h2,
.pratico-screen-header span,
.pratico-info span,
.pratico-order-head span,
.pratico-side-detail span,
.pratico-track-card span,
.pratico-modal-panel header span {
    color: var(--pratico-green);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 12px;
}

.pratico-nav {
    height: 100%;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(92px, 128px);
    gap: 4px;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
}

.pratico-nav button {
    position: relative;
    border: 0;
    border-bottom: 4px solid transparent;
    background: transparent;
    color: #fff;
    font-weight: 900;
    display: grid;
    place-items: center;
    gap: 4px;
    cursor: pointer;
}

.pratico-nav button:hover,
.pratico-nav button.is-active {
    color: #69ff6d;
    border-bottom-color: var(--pratico-green);
}

.pratico-nav i {
    font-size: 20px;
}

.pratico-nav em {
    position: absolute;
    top: 14px;
    right: 18px;
    min-width: 20px;
    height: 20px;
    border-radius: 999px;
    background: var(--pratico-red);
    color: #fff;
    font-size: 11px;
    font-style: normal;
    display: grid;
    place-items: center;
}

.pratico-operator {
    text-align: right;
    flex: 0 0 auto;
}

.pratico-operator strong,
.pratico-operator span {
    display: block;
}

.pratico-workspace {
    min-height: 0;
    padding: 12px;
    display: grid;
    grid-template-columns: minmax(300px, 420px) minmax(440px, 1fr) minmax(320px, 430px);
    gap: 12px;
}

.pratico-panel {
    background: var(--pratico-panel);
    border: 1px solid var(--pratico-line);
    border-radius: 10px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .22);
}

.pratico-tables,
.pratico-products,
.pratico-items,
.pratico-list-panel {
    overflow: auto;
}

.pratico-tables,
.pratico-products {
    padding: 14px;
}

.pratico-panel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.pratico-panel-title h2 {
    margin: 0;
    color: var(--pratico-text);
    font-size: 18px;
}

.pratico-panel-title select,
.pratico-filter-list input,
.pratico-filter-list select,
.pratico-modal-body input,
.pratico-modal-body select,
.pratico-modal-body textarea {
    background: var(--pratico-bg);
    color: var(--pratico-text);
    border: 1px solid var(--pratico-line);
    border-radius: 8px;
    padding: 12px;
    width: 100%;
}

.pratico-table-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.pratico-table-grid.is-compact {
    margin-bottom: 14px;
}

.pratico-tables h3 {
    margin: 18px 0 10px;
    font-size: 14px;
    color: var(--pratico-muted);
    text-transform: uppercase;
}

.pratico-table {
    min-height: 82px;
    border-radius: 9px;
    border: 1px solid #304654;
    color: white;
    background: #162832;
    font-weight: 900;
    cursor: pointer;
}

.pratico-table strong,
.pratico-table small {
    display: block;
}

.pratico-table strong {
    font-size: 27px;
}

.pratico-table small {
    font-size: 12px;
}

.pratico-table.is-busy {
    background: linear-gradient(#42bb4c, #1b762b);
}

.pratico-table.is-waiting {
    background: linear-gradient(#f0a000, #c77a00);
}

.pratico-table.is-counter {
    background: linear-gradient(#7927a7, #4b1771);
}

.pratico-table.is-delivery {
    background: linear-gradient(#0b65c8, #084885);
}

.pratico-table.is-selected,
.pratico-table:hover {
    outline: 2px solid #209cff;
}

.pratico-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    color: var(--pratico-muted);
    font-size: 12px;
}

.pratico-legend i {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 5px;
}

.pratico-legend .is-busy { background: #42bb4c; }
.pratico-legend .is-waiting { background: #f59e0b; }
.pratico-legend .is-counter { background: #7927a7; }
.pratico-legend .is-delivery { background: #0b65c8; }

.pratico-order {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 10px;
}

.pratico-order-head {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 18px 24px;
}

.pratico-order-head h1 {
    margin: 2px 0 0;
    font-size: clamp(28px, 3vw, 40px);
}

.pratico-order-head > div {
    flex: 1;
}

.pratico-icon-button,
.pratico-items table button {
    border: 0;
    background: transparent;
    color: var(--pratico-text);
    cursor: pointer;
    font-weight: 900;
}

.pratico-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.pratico-info {
    background: var(--pratico-panel);
    border: 1px solid var(--pratico-line);
    border-radius: 10px;
    padding: 14px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 12px;
    align-items: center;
}

.pratico-info span {
    color: var(--pratico-muted);
}

.pratico-info button,
.pratico-order-actions button,
.pratico-ops button,
.pratico-category-bar button,
.pratico-soft-button,
.pratico-filter-list button,
.pratico-list-panel button,
.pratico-side-detail button,
.pratico-production-detail button,
.pratico-tracking button,
.pratico-modal-panel footer button,
.pratico-product-pick button {
    border: 1px solid var(--pratico-line);
    background: var(--pratico-panel-2);
    color: var(--pratico-text);
    border-radius: 8px;
    padding: 11px 14px;
    font-weight: 900;
    cursor: pointer;
}

.pratico-info button:hover,
.pratico-order-actions button:hover,
.pratico-ops button:hover,
.pratico-category-bar button:hover,
.pratico-soft-button:hover,
.pratico-filter-list button:hover,
.pratico-list-panel button:hover,
.pratico-side-detail button:hover,
.pratico-production-detail button:hover,
.pratico-tracking button:hover,
.pratico-modal-panel footer button:hover {
    filter: brightness(1.14);
}

.pratico-tabs {
    display: flex;
    background: #081219;
    border-bottom: 1px solid var(--pratico-line);
}

.pratico-tabs button {
    border: 0;
    background: transparent;
    color: var(--pratico-text);
    padding: 16px 22px;
    font-weight: 900;
}

.pratico-tabs button.is-active {
    color: #55ef5d;
    border-bottom: 3px solid var(--pratico-green);
}

.pratico-items table,
.pratico-list-panel table {
    width: 100%;
    border-collapse: collapse;
}

.pratico-items th,
.pratico-items td,
.pratico-list-panel th,
.pratico-list-panel td {
    padding: 14px 18px;
    border-bottom: 1px solid #1f3440;
    text-align: left;
}

.pratico-items th,
.pratico-list-panel th {
    color: #b8c8cf;
    font-size: 12px;
    text-transform: uppercase;
}

.pratico-items td:nth-child(3),
.pratico-items td:nth-child(4),
.pratico-items th:nth-child(3),
.pratico-items th:nth-child(4) {
    text-align: right;
}

.pratico-items td small {
    display: block;
    color: #ff7077;
    margin-top: 3px;
}

.pratico-order-actions,
.pratico-totals {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 12px;
}

.pratico-order-actions button:first-child {
    background: #167c2e;
}

.pratico-totals div {
    background: var(--pratico-bg);
    border: 1px solid var(--pratico-line);
    border-radius: 10px;
    text-align: center;
    padding: 16px;
}

.pratico-totals span {
    display: block;
    color: var(--pratico-muted);
    font-weight: 900;
    text-transform: uppercase;
    font-size: 12px;
}

.pratico-totals strong {
    display: block;
    font-size: 23px;
    margin-top: 8px;
}

.pratico-totals .is-grand strong {
    color: #55ef5d;
    font-size: 32px;
}

.pratico-ops {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.pratico-ops button {
    min-height: 68px;
    display: grid;
    place-items: center;
    gap: 4px;
}

.pratico-category-bar {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    margin: 14px 0;
}

.pratico-category-bar button.is-active {
    background: #0d3b1a;
    border-color: #40e050;
    color: #72ff75;
}

.pratico-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.pratico-product-grid button {
    min-height: 112px;
    border: 1px solid var(--pratico-line);
    border-radius: 9px;
    background: var(--pratico-panel-2);
    color: var(--pratico-text);
    cursor: pointer;
    padding: 9px;
}

.pratico-product-grid i {
    font-size: 23px;
}

.pratico-product-grid strong,
.pratico-product-grid span {
    display: block;
    margin-top: 7px;
}

.pratico-product-grid span {
    color: #55ef5d;
    font-weight: 900;
}

.pratico-keypad {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-top: 14px;
}

.pratico-keypad button {
    min-height: 58px;
    border: 1px solid var(--pratico-line);
    border-radius: 8px;
    background: var(--pratico-panel-2);
    color: var(--pratico-text);
    font-size: 22px;
    font-weight: 900;
}

.pratico-keypad .is-confirm {
    grid-row: span 2;
    background: #167c2e;
    font-size: 15px;
}

.pratico-keypad .is-danger {
    color: #ff4b51;
}

.pratico-footer {
    border-top: 1px solid var(--pratico-line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    color: var(--pratico-muted);
    font-size: 13px;
}

.pratico-screen {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: none;
    grid-template-rows: 82px minmax(0, 1fr);
    background: var(--pratico-bg, #071118);
    color: var(--pratico-text, #f4f7f8);
}

.pratico-screen.is-open {
    display: grid;
}

.pratico-screen-header {
    border-bottom: 1px solid var(--pratico-line, #263946);
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 24px;
}

.pratico-screen-header > button:first-child {
    width: 50px;
    height: 50px;
    border-radius: 9px;
    border: 1px solid var(--pratico-line, #263946);
    background: var(--pratico-panel-2, #13232e);
    color: #fff;
}

.pratico-screen-header div {
    flex: 1;
}

.pratico-screen-header h1 {
    margin: 0;
}

.pratico-screen-header p {
    margin: 4px 0 0;
    color: var(--pratico-muted, #9fb1bc);
}

.pratico-kanban {
    min-height: 0;
    padding: 12px;
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr)) minmax(280px, 380px);
    gap: 12px;
}

.pratico-kanban-col {
    background: var(--pratico-panel, #0e1b24);
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 10px;
    overflow: auto;
}

.pratico-kanban-col h2 {
    margin: 0;
    padding: 15px;
    text-align: center;
    font-size: 17px;
}

.pratico-kanban-col.is-danger h2 { background: #dc2626; }
.pratico-kanban-col.is-warning h2 { background: #d99a00; }
.pratico-kanban-col.is-success h2 { background: #087f32; }

.pratico-kanban-col article {
    margin: 12px;
    padding: 14px;
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 9px;
    background: var(--pratico-panel-2, #13232e);
}

.pratico-kanban-col article strong,
.pratico-kanban-col article small {
    display: block;
}

.pratico-kanban-col article small {
    color: #ff7077;
}

.pratico-kanban-col article button {
    width: 100%;
    margin-top: 12px;
}

.pratico-three-cols {
    min-height: 0;
    padding: 12px;
    display: grid;
    grid-template-columns: minmax(240px, 320px) minmax(420px, 1fr) minmax(300px, 390px);
    gap: 12px;
}

.pratico-filter-list {
    padding: 14px;
    display: grid;
    align-content: start;
    gap: 10px;
}

.pratico-list-panel,
.pratico-side-detail,
.pratico-production-detail,
.pratico-tracking .pratico-panel {
    padding: 16px;
}

.pratico-list-panel h2,
.pratico-side-detail h2,
.pratico-production-detail h2,
.pratico-tracking h2 {
    margin-top: 0;
}

.pratico-side-detail button,
.pratico-production-detail button,
.pratico-tracking button,
.pratico-soft-button.is-primary {
    background: #087f32;
}

.pratico-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 14px;
}

.pratico-kpis div {
    background: var(--pratico-panel-2, #13232e);
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 9px;
    padding: 15px;
    color: var(--pratico-muted, #9fb1bc);
    font-weight: 900;
}

.pratico-kpis strong {
    display: block;
    color: #55ef5d;
    font-size: 28px;
    margin-top: 4px;
}

.pratico-tracking {
    min-height: 0;
    padding: 12px;
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(420px, 1fr) minmax(280px, 360px);
    gap: 12px;
}

.pratico-track-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.pratico-track-grid div {
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 9px;
    padding: 12px;
}

.pratico-track-grid strong {
    display: block;
    color: var(--pratico-muted, #9fb1bc);
}

.pratico-phone {
    background: #f5f7f8;
    color: #101820;
    border-radius: 34px;
    border: 8px solid #111;
    min-height: 450px;
    overflow: hidden;
    padding: 18px;
}

.pratico-phone > div {
    margin: -18px -18px 18px;
    background: #0a65c7;
    color: white;
    padding: 18px;
    text-align: center;
    font-weight: 900;
}

.pratico-phone li {
    margin: 12px 0;
}

.pratico-phone li.is-active {
    color: #0a65c7;
    font-weight: 900;
}

.pratico-modal-shell {
    position: fixed;
    inset: 0;
    z-index: 180;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pratico-text, #f4f7f8);
}

.pratico-modal-shell.is-open {
    display: flex;
}

.pratico-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .65);
}

.pratico-modal-panel {
    position: relative;
    width: min(980px, 94vw);
    max-height: 92vh;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    background: var(--pratico-panel, #0e1b24);
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 12px;
    overflow: hidden;
}

.pratico-modal-panel header,
.pratico-modal-panel footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--pratico-line, #263946);
}

.pratico-modal-panel footer {
    border-top: 1px solid var(--pratico-line, #263946);
    border-bottom: 0;
    justify-content: flex-end;
}

.pratico-modal-panel h2 {
    margin: 0;
}

.pratico-modal-panel header button {
    width: 42px;
    height: 42px;
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 8px;
    background: var(--pratico-panel-2, #13232e);
    color: #fff;
    font-size: 24px;
}

.pratico-modal-body {
    padding: 18px;
    overflow: auto;
}

.pratico-modal-panel footer .is-primary {
    background: #087f32;
    min-width: 148px;
}

.pratico-modal-panel footer button.is-primary.is-loading {
    background: #066628;
    opacity: 1;
    cursor: wait;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}

.pratico-modal-confirm-loading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 900;
    letter-spacing: .01em;
}

.pratico-modal-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: pratico-modal-spin .7s linear infinite;
    flex: 0 0 auto;
}

.pratico-modal-panel footer button.is-primary:disabled {
    opacity: 1;
}

.pratico-modal-panel footer button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

@keyframes pratico-modal-spin {
    to { transform: rotate(360deg); }
}

.pratico-form-grid,
.pratico-product-pick {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.pratico-form-grid label {
    display: grid;
    gap: 6px;
    color: var(--pratico-muted, #9fb1bc);
    font-weight: 900;
}

.pratico-field {
    display: grid;
    gap: 6px;
    min-width: 0;
    color: var(--pratico-muted, #9fb1bc);
    font-weight: 900;
}

.pratico-field-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.pratico-field-head button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 8px;
    background: rgba(255, 255, 255, .06);
    color: #cfe8e4;
    padding: 6px 10px;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.pratico-autocomplete {
    position: relative;
    min-width: 0;
}

.pratico-modal-form input[type="search"],
.pratico-modal-form input[type="number"] {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 8px;
    background: var(--pratico-panel-2, #13232e);
    color: #fff;
    padding: 0 12px;
    outline: none;
}

.pratico-modal-form input[type="search"]::placeholder,
.pratico-modal-form input[type="number"]::placeholder {
    color: var(--pratico-muted, #9fb1bc);
}

.pratico-modal-form input[type="search"]:focus,
.pratico-modal-form input[type="number"]:focus {
    border-color: #45d477;
    box-shadow: 0 0 0 3px rgba(69, 212, 119, .12);
}

.pratico-autocomplete-list {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    display: none;
    max-height: min(320px, 42vh);
    overflow: auto;
    border: 1px solid var(--pratico-line, #263946);
    border-radius: 8px;
    background: #101b22;
    box-shadow: 0 18px 36px rgba(0, 0, 0, .36);
    padding: 6px;
}

.pratico-autocomplete-list.is-open {
    display: grid;
    gap: 4px;
}

.pratico-autocomplete-list button {
    display: grid;
    gap: 3px;
    justify-items: start;
    align-items: start;
    width: 100%;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #fff;
    padding: 10px 12px;
    text-align: left;
    cursor: pointer;
}

.pratico-autocomplete-list button[hidden] {
    display: none !important;
}

.pratico-autocomplete-list button:hover,
.pratico-autocomplete-list button:focus,
.pratico-autocomplete-list button.is-active {
    background: rgba(34, 197, 94, .12);
    outline: none;
}

.pratico-autocomplete-list button.is-active {
    box-shadow: inset 3px 0 0 #22c55e;
}

.pratico-autocomplete-list strong,
.pratico-autocomplete-list span {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pratico-autocomplete-list span {
    color: var(--pratico-muted, #9fb1bc);
    font-size: .82rem;
    font-weight: 800;
}

.pratico-product-pick {
    grid-template-columns: repeat(4, 1fr);
}

.pratico-timeline {
    margin: 0;
    padding-left: 18px;
    line-height: 1.9;
}

@media (max-width: 1320px) {
    .pratico-workspace {
        grid-template-columns: 340px minmax(420px, 1fr);
    }

    .pratico-products {
        grid-column: 1 / -1;
        min-height: 290px;
    }

    .pratico-product-grid {
        grid-template-columns: repeat(8, minmax(110px, 1fr));
    }
}

@media (max-width: 980px) {
    .pratico-pos {
        overflow: auto;
        grid-template-rows: auto minmax(0, 1fr) auto;
    }

    .pratico-header,
    .pratico-workspace,
    .pratico-three-cols,
    .pratico-kanban,
    .pratico-tracking {
        grid-template-columns: 1fr;
    }

    .pratico-header {
        flex-wrap: wrap;
        padding: 12px;
    }

    .pratico-nav {
        order: 3;
        width: 100%;
        min-height: 74px;
    }

    .pratico-workspace {
        overflow: visible;
    }

    .pratico-info-grid,
    .pratico-order-actions,
    .pratico-totals,
    .pratico-kpis,
    .pratico-track-grid,
    .pratico-form-grid,
    .pratico-product-pick {
        grid-template-columns: 1fr;
    }

    .pratico-product-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .pratico-footer {
        display: grid;
        gap: 4px;
        padding: 12px;
    }
}

.gateway-pill {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--muted);
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 900;
}

.gateway-pill.is-on {
    background: rgba(29, 127, 67, .12);
    color: var(--success);
}

.gateway-pill.is-off {
    background: rgba(180, 35, 24, .10);
    color: var(--danger);
}

.gateway-pill.is-waiting {
    background: rgba(197, 139, 34, .14);
    color: var(--accent);
}

.gateway-pill.is-muted {
    background: #eef3f2;
    color: var(--muted);
}

.notice-warning {
    border-color: rgba(197, 139, 34, .28);
    background: rgba(197, 139, 34, .10);
    color: #6d4b0f;
}

.dashboard-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
}

.dashboard-alert a {
    font-weight: 900;
    color: var(--primary-dark);
}

.selected-plan-banner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin: 18px 0;
    padding: 18px 20px;
    border: 1px solid rgba(11, 122, 117, .22);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(11, 122, 117, .10), rgba(197, 139, 34, .10));
    box-shadow: 0 14px 34px rgba(15, 23, 42, .08);
}

.selected-plan-banner span {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.selected-plan-banner strong {
    display: block;
    color: var(--ink);
    font-size: 1.08rem;
    font-weight: 950;
}

.selected-plan-banner div:last-child {
    min-width: 180px;
    padding: 12px 16px;
    border-radius: 12px;
    background: #fff;
    text-align: right;
    box-shadow: inset 0 0 0 1px rgba(11, 122, 117, .12);
}

.selected-plan-banner div:last-child strong {
    color: var(--primary-dark);
    font-size: 1.18rem;
}

@media (max-width: 720px) {
    .selected-plan-banner {
        grid-template-columns: 1fr;
    }

    .selected-plan-banner div:last-child {
        min-width: 0;
        text-align: left;
    }
}

.trial-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid rgba(197, 139, 34, .28);
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(197, 139, 34, .12), #fff);
    padding: 18px;
}

.trial-panel h2 {
    margin-bottom: 6px;
}

.trial-panel p {
    margin-bottom: 0;
}

.checkout-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
    gap: 16px;
    align-items: stretch;
}

.history-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 16px;
}

.checkout-plan {
    display: grid;
    min-width: 0;
    gap: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    padding: 20px;
}

.checkout-plan > * {
    min-width: 0;
}

.checkout-plan .data-details-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 0;
}

.checkout-plan .data-details-grid span {
    min-width: 0;
}

.checkout-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.checkout-price strong {
    font-size: 28px;
}

.checkout-price span {
    color: var(--muted);
    font-weight: 800;
}

.checkout-form {
    display: grid;
    gap: 12px;
}

.checkout-payment-choice {
    display: grid;
    gap: 3px;
    min-width: 0;
    border: 1px solid #bfe5de;
    border-radius: 8px;
    background: #f2fbf9;
    padding: 11px 13px;
}

.checkout-payment-choice strong {
    color: var(--primary-dark);
}

.checkout-payment-choice small,
.checkout-payment-choice span {
    color: var(--muted);
}

.checkout-addon-box {
    display: grid;
    gap: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
    padding: 14px;
}

.checkout-addon-box .form-title h3 {
    margin: 0;
    font-size: 18px;
}

.payment-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(130px, 1fr));
    gap: 10px;
}

.payment-detail-card {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
    padding: 12px;
}

.payment-detail-card span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.payment-detail-card strong {
    display: block;
    margin-top: 5px;
    font-size: 18px;
}

.payment-modal-panel {
    gap: 12px;
    max-height: min(92vh, 860px);
    padding: 18px;
}

.payment-modal-panel .app-modal-header {
    padding-bottom: 10px;
}

.payment-modal-panel .payment-detail-grid {
    gap: 8px;
}

.payment-modal-panel .payment-detail-card {
    padding: 10px;
}

.payment-modal-panel .payment-detail-card strong {
    font-size: 17px;
}

.subscription-checkout-panel {
    width: min(620px, calc(100vw - 28px));
    max-height: min(92vh, 900px);
    gap: 16px;
    padding: 20px;
}

.subscription-checkout-state,
.subscription-checkout-hosted,
.subscription-checkout-message {
    display: grid;
    justify-items: center;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 28px 20px;
    text-align: center;
}

.subscription-checkout-state small,
.subscription-checkout-hosted small,
.subscription-checkout-hosted p {
    color: var(--muted);
}

.subscription-checkout-state[hidden],
.subscription-checkout-hosted[hidden],
.subscription-checkout-message[hidden],
.subscription-checkout-message-actions[hidden],
.subscription-checkout-brick[hidden],
.subscription-checkout-pix[hidden] {
    display: none !important;
}

.subscription-checkout-spinner {
    width: 30px;
    height: 30px;
    border: 3px solid rgba(11, 122, 117, .18);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: subscription-checkout-spin .75s linear infinite;
}

.subscription-checkout-provider-icon {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border-radius: 18px;
    background: #e8f7f3;
    color: var(--primary);
    font-size: 20px;
    font-weight: 900;
}

.subscription-checkout-message.is-error {
    border-color: #efb5b5;
    background: #fff4f4;
    color: #a51f1f;
}

.subscription-checkout-message.is-success {
    border-color: #a9dfc3;
    background: #effbf4;
    color: #08753f;
}

.subscription-provider-receipt {
    display: grid;
    justify-items: center;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #f8faf9;
    padding: 16px;
}

.subscription-provider-receipt[hidden] {
    display: none !important;
}

.subscription-provider-receipt pre {
    width: min(360px, 100%);
    margin: 0;
    border-radius: 12px;
    background: #101820;
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
    font: 700 13px/1.55 "Courier New", monospace;
    padding: 16px 18px;
    white-space: pre-wrap;
}

.provider-receipt-panel {
    width: min(480px, calc(100vw - 28px));
}

.provider-receipt-panel .subscription-provider-receipt {
    margin-top: 8px;
}

.provider-receipt-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding-top: 14px;
}

.subscription-checkout-brick {
    min-height: 260px;
}

.subscription-checkout-brick > div {
    max-width: 100%;
}

.subscription-checkout-pix {
    display: grid;
    gap: 18px;
    border: 1px solid rgba(11, 122, 117, .25);
    border-radius: 16px;
    background: #f5fbfa;
    padding: 20px;
}

.subscription-checkout-pix-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.subscription-checkout-pix-heading h3,
.subscription-checkout-pix-heading p {
    margin: 4px 0 0;
}

.subscription-checkout-pix-heading p,
.subscription-checkout-pix-code small {
    color: var(--muted);
}

.subscription-checkout-pix-content {
    display: grid;
    grid-template-columns: minmax(180px, 230px) 1fr;
    align-items: center;
    gap: 20px;
}

.subscription-checkout-pix-image {
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    padding: 12px;
}

.subscription-checkout-pix-image img {
    display: block;
    width: 100%;
    max-width: 220px;
    aspect-ratio: 1;
    object-fit: contain;
}

.subscription-checkout-pix-code {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.subscription-checkout-pix-code label {
    font-weight: 800;
}

.subscription-checkout-pix-code textarea {
    width: 100%;
    resize: vertical;
    overflow-wrap: anywhere;
}

.subscription-checkout-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid var(--line);
    padding-top: 14px;
}

.subscription-checkout-footer span {
    color: var(--muted);
    font-size: 12px;
}

@keyframes subscription-checkout-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .subscription-checkout-panel { padding: 14px; }
    .subscription-checkout-footer { align-items: stretch; flex-direction: column; }
    .subscription-checkout-pix { padding: 14px; }
    .subscription-checkout-pix-heading { flex-direction: column; }
    .subscription-checkout-pix-content { grid-template-columns: 1fr; }
    .subscription-checkout-pix-image img { max-width: 200px; }
}

.pix-simulated-box {
    display: grid;
    gap: 12px;
    border: 1px solid rgba(11, 122, 117, .25);
    border-radius: 8px;
    background: #f3fbf9;
    padding: 16px;
}

.pix-payment-box {
    gap: 14px;
    padding: 16px;
}

.pix-payment-main {
    display: grid;
    grid-template-columns: minmax(240px, 292px) minmax(0, 1fr);
    gap: 18px;
    align-items: stretch;
}

.pix-payment-info {
    display: grid;
    gap: 12px;
    align-content: start;
    min-width: 0;
}

.pix-simulated-box h3 {
    margin-bottom: 4px;
}

.pix-simulated-box p {
    margin-bottom: 0;
}

.pix-simulated-box textarea {
    min-height: 96px;
    font-family: Consolas, Monaco, monospace;
    font-size: 12px;
}

.pix-qrcode-preview {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 248px;
    padding: 14px;
    border: 1px solid rgba(11, 122, 117, .22);
    border-radius: 8px;
    background: #fff;
}

.pix-qrcode-preview img {
    display: block;
    width: min(218px, 100%);
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.pix-qrcode-preview.is-empty span {
    display: grid;
    place-items: center;
    width: 96px;
    height: 96px;
    border-radius: 16px;
    background: var(--surface);
    color: var(--primary);
    font-size: 24px;
    font-weight: 900;
}

.pix-copy-card {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.pix-copy-header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    color: var(--muted);
    font-weight: 900;
}

.pix-copy-button {
    min-height: 38px;
    padding: 0 14px;
    gap: 7px;
}

.pix-copy-button span {
    font-size: 18px;
    line-height: 1;
}

.pix-payment-box textarea {
    width: 100%;
    min-height: 112px;
    resize: vertical;
    overflow-wrap: anywhere;
}

.pix-simulated-box .secondary-action {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0 16px;
    border-radius: 8px;
    background: #e7f1ef;
    color: #00645f;
    font-weight: 700;
    text-decoration: none;
}

.payment-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.subscription-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.subscription-timeline-panel {
    display: grid;
    gap: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 12px 28px rgba(12, 33, 28, .06);
    padding: 22px 24px 28px;
}

.subscription-timeline-header,
.subscription-timeline-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.subscription-timeline-labels {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
}

.subscription-timeline-top-labels {
    position: relative;
    min-height: 42px;
    margin-bottom: 6px;
}

.subscription-timeline-paid-label {
    position: absolute;
    top: 0;
    display: grid;
    gap: 3px;
    color: var(--text);
    font-weight: 900;
    line-height: 1.15;
    white-space: nowrap;
    transform: translateX(-50%);
}

.subscription-timeline-paid-label.is-align-start {
    transform: translateX(0);
    text-align: left;
}

.subscription-timeline-paid-label.is-align-end {
    transform: translateX(-100%);
    text-align: right;
}

.subscription-timeline-paid-label.is-align-center {
    text-align: center;
}

.subscription-timeline-grace-label {
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    gap: 3px;
    color: #b45309;
    font-weight: 900;
    line-height: 1.15;
    text-align: right;
    white-space: nowrap;
}

.subscription-timeline-grace-label small {
    color: #92400e;
    font-weight: 700;
}

.subscription-timeline-paid-label small {
    color: var(--muted);
    font-weight: 700;
}

.subscription-timeline-header h2 {
    margin: 3px 0 0;
}

.subscription-timeline-header > strong {
    border-radius: 999px;
    background: #e6f5ee;
    color: #087d49;
    padding: 9px 14px;
    white-space: nowrap;
}

.subscription-timeline-header > strong.is-grace-warning {
    background: #fff4e5;
    color: #b45309;
}

.subscription-timeline-track-wrap {
    position: relative;
    padding-bottom: 40px;
}

.subscription-timeline-start-label {
    position: absolute;
    left: 0;
    bottom: 0;
    display: grid;
    gap: 3px;
    color: var(--text);
    font-weight: 900;
    line-height: 1.15;
    max-width: min(160px, 42%);
}

.subscription-timeline-start-label small,
.subscription-timeline-end-label small {
    color: var(--muted);
    font-weight: 700;
}

.subscription-timeline-end-label {
    display: grid;
    gap: 3px;
    color: var(--text);
    font-weight: 900;
    text-align: right;
}

.subscription-timeline-labels span {
    display: grid;
    gap: 3px;
    color: var(--text);
    font-weight: 900;
}

.subscription-timeline-labels span:last-child {
    text-align: right;
}

.subscription-timeline-labels small,
.subscription-timeline-footer {
    color: var(--muted);
    font-weight: 700;
}

.subscription-timeline-track {
    position: relative;
    height: 12px;
    margin-top: 8px;
    border-radius: 999px;
    background: #dfe7e5;
    overflow: visible;
}

.subscription-timeline-track .subscription-timeline-progress {
    position: relative;
    z-index: 1;
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), #25b990);
}

.subscription-timeline-grace-band {
    position: absolute;
    top: 0;
    z-index: 2;
    height: 100%;
    border-radius: 0 999px 999px 0;
    background: linear-gradient(90deg, #f6d365, #fda085);
    opacity: .72;
}

.subscription-timeline-grace-band.is-active {
    opacity: 1;
    box-shadow: inset 0 0 0 1px rgba(180, 83, 9, .25);
}

.subscription-timeline-track span:not(.subscription-timeline-progress):not(.subscription-timeline-grace-band) {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary), #25b990);
}

.subscription-timeline-marker.is-today {
    z-index: 5;
    width: 24px;
    height: 24px;
}

.subscription-timeline-marker.is-today b {
    width: 18px;
    height: 18px;
    border-width: 4px;
    background: var(--primary);
    box-shadow: 0 2px 9px rgba(0, 91, 84, .28);
}

.subscription-timeline-today-label {
    position: absolute;
    bottom: calc(100% + 12px);
    left: 50%;
    display: grid;
    gap: 2px;
    min-width: 88px;
    color: var(--primary);
    font-style: normal;
    font-weight: 900;
    line-height: 1.1;
    text-align: center;
    transform: translateX(-50%);
    white-space: nowrap;
    pointer-events: none;
}

.subscription-timeline-today-label small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

.subscription-timeline-today-label strong {
    font-size: 14px;
    font-weight: 900;
}

.subscription-timeline-marker.is-today .subscription-timeline-tooltip {
    min-width: 220px;
}

.subscription-timeline-marker.is-today.is-near-start .subscription-timeline-today-label,
.subscription-timeline-marker.is-today.is-near-turnover .subscription-timeline-today-label {
    display: none;
}

.subscription-timeline-marker.is-today.is-near-start .subscription-timeline-tooltip {
    left: 0;
    transform: translate(0, 8px);
}

.subscription-timeline-marker.is-today.is-near-turnover .subscription-timeline-tooltip {
    right: 0;
    left: auto;
    transform: translate(0, 8px);
}

.subscription-timeline-marker.is-today.is-near-start .subscription-timeline-tooltip::after {
    left: 12px;
    transform: rotate(45deg);
}

.subscription-timeline-marker.is-today.is-near-turnover .subscription-timeline-tooltip::after {
    left: auto;
    right: 12px;
    transform: rotate(45deg);
}

.subscription-timeline-marker.is-today.is-near-start:hover .subscription-timeline-tooltip,
.subscription-timeline-marker.is-today.is-near-start:focus-visible .subscription-timeline-tooltip,
.subscription-timeline-marker.is-today.is-near-turnover:hover .subscription-timeline-tooltip,
.subscription-timeline-marker.is-today.is-near-turnover:focus-visible .subscription-timeline-tooltip {
    transform: translate(0, 0);
}

.subscription-timeline-marker {
    position: absolute;
    top: 50%;
    z-index: 4;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: help;
    padding: 0;
    transform: translate(-50%, -50%);
}

.subscription-timeline-marker b {
    display: block;
    width: 12px;
    height: 12px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #0f766e;
    box-shadow: 0 2px 8px rgba(0, 91, 84, .24);
}

.subscription-timeline-marker.is-turnover b {
    width: 15px;
    height: 15px;
    background: #f59e0b;
    box-shadow: 0 3px 10px rgba(180, 83, 9, .24);
}

.subscription-timeline-marker.is-grace-end b {
    width: 16px;
    height: 16px;
    border-width: 4px;
    border-color: #fff;
    background: #d97706;
    box-shadow: 0 2px 9px rgba(217, 119, 6, .28);
}

.subscription-timeline-marker.is-grace-end .subscription-timeline-tooltip {
    min-width: 220px;
    left: auto;
    right: 0;
    transform: translate(0, 8px);
}

.subscription-timeline-marker.is-grace-end .subscription-timeline-tooltip::after {
    left: auto;
    right: 12px;
}

.subscription-timeline-marker.is-grace-end:hover .subscription-timeline-tooltip,
.subscription-timeline-marker.is-grace-end:focus-visible .subscription-timeline-tooltip {
    transform: translate(0, 0);
}

.subscription-timeline-tooltip {
    position: absolute;
    bottom: 28px;
    left: 50%;
    display: grid;
    gap: 6px;
    min-width: 210px;
    max-width: 250px;
    border-radius: 8px;
    background: #0c3a31;
    color: #fff;
    font-style: normal;
    line-height: 1.2;
    padding: 12px 14px;
    text-align: left;
    box-shadow: 0 12px 28px rgba(5, 20, 18, .24);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 8px);
    transition: opacity .16s ease, transform .16s ease;
}

.subscription-timeline-tooltip::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -7px;
    width: 14px;
    height: 14px;
    background: inherit;
    transform: translateX(-50%) rotate(45deg);
}

.subscription-timeline-tooltip strong {
    font-size: 12px;
    font-weight: 900;
}

.subscription-timeline-tooltip small {
    color: rgba(255, 255, 255, .84);
    font-size: 11px;
    font-weight: 700;
}

.subscription-timeline-tooltip-value {
    color: #fff;
    font-size: 18px;
    font-weight: 950;
}

.subscription-timeline-marker:hover .subscription-timeline-tooltip,
.subscription-timeline-marker:focus-visible .subscription-timeline-tooltip {
    opacity: 1;
    transform: translate(-50%, 0);
}

.subscription-timeline-marker.is-turnover .subscription-timeline-tooltip {
    right: 0;
    left: auto;
    transform: translate(0, 8px);
}

.subscription-timeline-marker.is-turnover .subscription-timeline-tooltip::after {
    right: 8px;
    left: auto;
    transform: rotate(45deg);
}

.subscription-timeline-marker.is-turnover:hover .subscription-timeline-tooltip,
.subscription-timeline-marker.is-turnover:focus-visible .subscription-timeline-tooltip {
    transform: translate(0, 0);
}

.subscription-overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
}

.subscription-overview-card {
    display: grid;
    gap: 6px;
    min-height: 126px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 12px 28px rgba(12, 33, 28, .06);
    padding: 18px 20px;
}

.subscription-overview-card span,
.subscription-overview-card small {
    color: var(--muted);
    font-weight: 700;
}

.subscription-overview-card strong {
    align-self: center;
    font-size: 24px;
    line-height: 1.15;
}

.limit-card-grid.subscription-limit-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
}

.subscription-limit-grid .limit-card {
    gap: 8px;
    min-height: 104px;
    padding: 13px 14px;
}

.subscription-limit-grid .limit-card span {
    overflow: hidden;
    font-size: 12px;
    line-height: 1.2;
    text-overflow: ellipsis;
}

.subscription-limit-grid .limit-card strong {
    margin-top: 4px;
    font-size: 19px;
}

.subscription-limit-grid .limit-card small {
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.2;
}

.subscription-limit-grid .limit-progress {
    height: 6px;
}

.subscription-payment-history {
    scroll-margin-top: 24px;
}

@media (max-width: 900px) {
    .pix-payment-main {
        grid-template-columns: 1fr;
    }

    .pix-qrcode-preview {
        min-height: 240px;
    }
}

.subscription-addon-list {
    display: grid;
    gap: 10px;
}

.subscription-addon-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 96px;
    gap: 12px;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    padding: 12px;
}

.subscription-addon-option strong,
.subscription-addon-option small {
    display: block;
}

.subscription-addon-option small {
    margin-top: 4px;
    color: var(--muted);
    font-weight: 800;
}

.subscription-addon-option input {
    min-height: 44px;
    text-align: center;
}

.subscription-addon-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.subscription-addon-summary span {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    padding: 12px;
    font-weight: 900;
}

.subscription-addon-summary em {
    font-style: normal;
}

.subscription-addon-summary strong {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
}

.subscription-addon-modal-summary {
    margin-top: 16px;
}

.lookup-field {
    position: relative;
    display: block;
}

.lookup-results {
    position: absolute;
    z-index: 12;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    display: none;
    overflow: auto;
    max-height: 260px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
}

.lookup-results.is-open {
    display: grid;
}

.lookup-results button {
    display: grid;
    gap: 3px;
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    padding: 10px 12px;
    text-align: left;
    cursor: pointer;
}

.lookup-results button:hover {
    background: var(--surface-soft);
}

.lookup-results button:disabled {
    color: var(--muted);
    cursor: default;
}

.lookup-results small {
    color: var(--muted);
}

.purchase-receive-line {
    border-top: 1px solid var(--line);
    padding-top: 12px;
}

.purchase-receive-line small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

.inline-action-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    padding: 12px;
}

.inline-action-panel span {
    color: var(--muted);
    font-weight: 800;
}

.action-approve {
    background: #1d7f43;
    color: #fff;
}

.action-simulated {
    width: auto;
    min-width: 42px;
    padding: 0 8px;
    background: #d97706;
    color: #fff;
    font-size: 11px;
    letter-spacing: 0;
}

.action-webhook {
    width: auto;
    min-width: 42px;
    padding: 0 8px;
    background: #2563eb;
    color: #fff;
    font-size: 11px;
    letter-spacing: 0;
}

.two-column {
    display: grid;
    grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}

.two-column-wide {
    display: block;
}

.two-column.is-promoted-form {
    display: block;
}

.cadastro-add-button {
    margin-bottom: 14px;
}

.panel-form,
.list-card {
    padding: 18px;
}

.panel-form {
    position: sticky;
    top: 98px;
    display: grid;
    gap: 14px;
}

.form-title h2 {
    margin-bottom: 0;
}

.form-title p {
    margin: 4px 0 0;
    color: var(--muted);
}

.registration-create-panel > .form-title {
    margin: -18px -18px 0;
    padding: 18px;
    border-bottom: 1px solid #073e7a;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(135deg, #082d63, #0b5f9e);
    color: #fff;
}

.registration-create-panel > .form-title h2 {
    color: #fff;
}

.registration-create-panel > .form-title .eyebrow {
    color: #69ead2;
}

.form-hint-box {
    border: 1px solid rgba(0, 128, 112, 0.2);
    border-radius: 10px;
    background: rgba(0, 128, 112, 0.08);
    color: var(--ink);
    padding: 12px 14px;
    line-height: 1.45;
}

.site-section-items-form {
    border: 1px solid rgba(0, 128, 112, 0.22);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(0, 128, 112, 0.08), rgba(255, 255, 255, 0.96));
    margin-top: 14px;
}

.site-section-items-list {
    margin-top: 14px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.form-grid.form-grid-compact {
    align-items: center;
    margin: 12px 0;
}

.stack-list {
    display: grid;
    gap: 14px;
}

.data-panel {
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.account-page {
    width: 100%;
    max-width: 1180px;
    margin: 4px auto 0;
}

.account-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}

.account-card {
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(22, 32, 29, .07);
}

.account-card-header {
    padding: 24px 24px 18px;
    border-bottom: 1px solid var(--line);
    background: #fbfcfc;
}

.account-card-header .eyebrow {
    margin-bottom: 6px;
}

.account-card-header h2 {
    margin: 0;
    font-size: 20px;
}

.account-card-header p {
    max-width: 520px;
    margin: 7px 0 0;
    color: var(--muted);
}

.account-form {
    display: grid;
    gap: 22px;
    padding: 22px 24px 24px;
}

.account-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.account-field {
    gap: 8px;
}

.account-field > span {
    color: var(--ink);
    font-weight: 800;
}

.account-field input {
    min-height: 46px;
}

.account-field input:disabled {
    color: #5f6d69;
    background: var(--surface-soft);
    cursor: not-allowed;
}

.account-field-current-password {
    grid-column: 1 / -1;
}

.account-card-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.account-card-actions .button {
    min-width: 190px;
}

@media (max-width: 980px) {
    .account-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .account-card-header,
    .account-form {
        padding: 18px;
    }

    .account-fields {
        grid-template-columns: 1fr;
    }

    .account-field-current-password {
        grid-column: auto;
    }

    .account-card-actions .button {
        width: 100%;
    }
}

.purchase-xml-panel {
    padding: 22px 24px 20px;
}

.purchase-xml-panel .section-title-inline {
    margin-bottom: 16px;
}

.purchase-xml-panel .purchase-xml-form {
    padding: 0;
    border-bottom: 0;
    background: transparent;
}

.purchase-xml-panel .purchase-xml-form small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.dt-toolbar,
.dt-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
}

.dt-toolbar {
    border-bottom: 1px solid var(--line);
    background: #fbfcfc;
}

.datatable-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 16px;
    border-bottom: 1px solid var(--line);
    background: #fbfcfc;
}

.datatable-filters label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.datatable-filters .button {
    align-self: end;
    min-height: 42px;
}

.dt-footer {
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 13px;
}

.dt-length,
.dt-search-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-weight: 800;
}

.dt-length select {
    width: 82px;
    min-height: 36px;
}

.dt-search-wrap input {
    width: min(320px, 45vw);
    min-height: 36px;
}

.dt-pagination {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dt-page-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    color: var(--muted);
    font-weight: 800;
}

.dt-page-button.is-disabled {
    pointer-events: none;
    opacity: .45;
}

.dt-page-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    min-height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 800;
}

.dt-page-button.is-active {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
}

.dt-page-button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.responsive-datatable {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
}

.responsive-datatable th,
.responsive-datatable td {
    border-bottom: 1px solid var(--line);
    padding: 8px 14px;
    text-align: left;
    vertical-align: middle;
}

.responsive-datatable th {
    background: #fbfcfc;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    white-space: nowrap;
}

.responsive-datatable td {
    color: var(--ink);
}

.responsive-datatable td strong,
.responsive-datatable td small {
    display: block;
}

.responsive-datatable td small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
}

.compact-device-table {
    table-layout: fixed;
}

.compact-device-table th,
.compact-device-table td {
    height: auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.compact-device-table .control-column {
    width: 42px;
}

.compact-device-table th:nth-child(2),
.compact-device-table td:nth-child(2) {
    width: 24%;
}

.compact-device-table th:nth-child(3),
.compact-device-table td:nth-child(3) {
    width: 22%;
}

.compact-device-table th:nth-child(4),
.compact-device-table td:nth-child(4) {
    width: 11%;
}

.compact-device-table th:nth-child(5),
.compact-device-table td:nth-child(5) {
    width: 15%;
}

.compact-device-table th:nth-child(6),
.compact-device-table td:nth-child(6) {
    width: 10%;
}

.compact-device-table .actions-column {
    width: 148px;
    min-width: 148px;
    padding-right: 16px;
}

.compact-device-table .row-actions {
    gap: 6px;
    min-width: 116px;
}

.compact-device-table .action-button {
    width: 32px;
    height: 32px;
}

.compact-device-table td,
.compact-device-table td strong,
.compact-device-table td small {
    max-width: 100%;
    overflow: hidden;
    overflow-wrap: normal;
    text-overflow: ellipsis;
    white-space: normal;
}

.compact-device-table td strong,
.compact-device-table td small {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.responsive-datatable tbody tr[data-dt-row]:hover {
    background: #fbfcfc;
}

.responsive-datatable tbody tr.is-overdue-row > td {
    background: #fff8f2;
}

.responsive-datatable tbody tr.is-overdue-row[data-dt-row] > td:first-child {
    box-shadow: inset 3px 0 0 #d9a441;
}

.responsive-datatable tbody tr.is-overdue-row[data-dt-row]:hover > td {
    background: #fff5eb;
}

.responsive-datatable th.is-sortable {
    cursor: pointer;
    user-select: none;
}

.responsive-datatable th.is-sortable::after {
    content: "↕";
    margin-left: 8px;
    color: #9aa6a2;
    font-size: 11px;
}

.responsive-datatable th.is-sort-asc::after {
    content: "↑";
    color: var(--primary);
}

.responsive-datatable th.is-sort-desc::after {
    content: "↓";
    color: var(--primary);
}

.control-column {
    width: 42px;
    text-align: center;
}

.actions-column {
    width: 118px;
    text-align: right;
    white-space: nowrap;
}

.row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 98px;
}

.row-actions form {
    display: inline-flex;
    margin: 0;
}

.financial-accounts-table .actions-column {
    width: 184px;
    min-width: 184px;
}

.financial-accounts-table .row-actions {
    min-width: 0;
    gap: 6px;
}

.action-button {
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    font-size: 15px;
    font-weight: 900;
}

.action-edit {
    background: #f2a93b;
}

.action-delete {
    background: #d94b4b;
}

/* Acoes fiscais: cor, icone e dica tornam cada funcao identificavel. */
.action-retry { background: #2563eb; }
.action-send { background: #15803d; }
.action-generate-xml { background: #7c3aed; }
.action-details { background: #475569; }
.action-print { background: #0284c7; }
.action-download { background: #c92a2a; }
.action-download-pdf { background: #b45309; }
.action-purge {
    background: #861f1f;
    box-shadow: 0 0 0 2px #ffd6d6 inset;
}

.action-restore {
    background: #43a8cf;
}

.action-global {
    background: #16a34a;
    font-size: 13px;
    font-weight: 800;
    cursor: help;
}

.action-variant {
    background: #2563eb;
    font-size: 11px;
    font-weight: 800;
    cursor: help;
}

.action-button[data-global-locked="1"] {
    opacity: 0.55;
    cursor: not-allowed;
}

.action-disconnect {
    background: #ef7d32;
}

.data-row-toggle {
    display: inline-grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
    cursor: pointer;
    font-weight: 900;
}

.data-row-toggle::before {
    content: "▸";
}

tr.is-expanded .data-row-toggle::before {
    content: "▾";
}

.data-table-details-row {
    display: none;
    background: #fbfcfc;
}

.data-table-details-row.is-open {
    display: table-row;
}

.data-table-details-row > td {
    padding: 18px;
}

.data-details-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.data-details-grid span {
    display: grid;
    gap: 3px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    padding: 3px;
}

.data-details-grid strong {
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
}

.code-block {
    overflow: auto;
    max-height: 520px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #0f1720;
    color: #f7fbfb;
    padding: 16px;
    font-family: "Courier New", monospace;
    font-size: 13px;
    line-height: 1.45;
}

.inline-edit-form {
    display: grid;
    gap: 12px;
    border-top: 1px solid var(--line);
    padding-top: 16px;
}

.data-table-empty {
    color: var(--muted);
    padding: 26px;
    text-align: center;
    font-weight: 800;
}

[x-cloak] {
    display: none !important;
}

.app-modal {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.app-modal.is-open {
    display: flex;
}

.app-modal.is-stacked {
    z-index: 1060;
}

.app-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(11, 17, 16, .48);
}

.app-modal-panel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 16px;
    width: min(980px, 100%);
    max-height: min(88vh, 900px);
    overflow: auto;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(12, 18, 16, .28);
    padding: 22px;
}

.pos-variant-picker-panel {
    width: min(640px, calc(100vw - 28px));
}

.pos-variant-picker-body {
    display: grid;
    gap: 12px;
}

.pos-variant-picker-list {
    display: grid;
    gap: 10px;
}

.pos-variant-picker-item {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
    gap: 8px 12px;
    align-items: center;
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(11, 122, 117, .18);
    border-radius: 10px;
    background: #f7fbfb;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.pos-variant-picker-item:hover,
.pos-variant-picker-item:focus-visible {
    border-color: var(--primary, #0b7a75);
    background: #eef8f7;
    transform: translateY(-1px);
    outline: none;
}

.pos-variant-picker-item strong {
    font-size: 1rem;
}

.pos-variant-picker-item span,
.pos-variant-picker-item em {
    font-size: .88rem;
    color: rgba(11, 17, 16, .72);
}

.pos-variant-badge {
    display: inline-block;
    margin-right: 6px;
    padding: 2px 6px;
    border-radius: 999px;
    background: rgba(11, 122, 117, .12);
    color: var(--primary, #0b7a75);
    font-size: .72rem;
    font-weight: 700;
    vertical-align: middle;
}

#subscription-hosted-checkout-modal .subscription-checkout-panel {
    width: min(560px, calc(100vw - 28px));
    padding: 20px;
}

#subscription-hosted-checkout-modal .checkout-payment-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

#subscription-hosted-checkout-modal .subscription-checkout-brick {
    min-height: 220px;
}

.app-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid var(--line);
    padding-bottom: 14px;
}

.app-modal-header h2 {
    margin-bottom: 0;
}

.modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    border-top: 1px solid var(--line);
    padding-top: 14px;
}

.fiscal-document-modal-panel {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: min(1120px, 100%);
    max-height: min(92vh, 920px);
    overflow: hidden;
    padding: 0;
}

.fiscal-document-modal-panel .app-modal-header {
    flex: 0 0 auto;
    padding: 18px 22px 14px;
}

.fiscal-document-modal-body {
    display: grid;
    gap: 16px;
    min-height: 0;
    overflow: auto;
    padding: 18px 22px;
}

.fiscal-document-modal-panel .modal-actions {
    flex: 0 0 auto;
    background: #fff;
    padding: 14px 22px 18px;
}

.fiscal-document-modal-code .code-block {
    max-height: 240px;
    white-space: pre-wrap;
    word-break: break-word;
}

[data-fiscal-page-shell] {
    position: relative;
}

[data-fiscal-page-shell].is-loading {
    opacity: .72;
    pointer-events: none;
}

[data-fiscal-page-shell].is-loading::after {
    content: "Carregando...";
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 60;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    box-shadow: var(--shadow);
    padding: 12px 16px;
    font-weight: 800;
}

.fiscal-correction-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border: 1px solid rgba(242, 169, 59, .4);
    border-radius: 8px;
    background: #fffaf0;
    padding: 14px 16px;
}

.fiscal-correction-actions strong {
    display: block;
    margin-top: 2px;
    color: #614000;
    font-size: 14px;
}

.fiscal-correction-actions .row-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.fiscal-item-correction-link {
    min-height: 32px;
    padding: 7px 12px;
    font-size: 12px;
}

.site-banner-preview {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    margin: 12px 0 16px;
    width: min(280px, 100%);
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    aspect-ratio: 16 / 6;
}

.site-preview-row {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    grid-column: 1 / -1;
    flex-wrap: wrap;
}

.site-preview-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.site-preview-group > strong {
    color: var(--muted);
    font-size: 13px;
}

.site-preview-group .site-banner-preview {
    margin-top: 0;
}

.site-banner-preview-mobile {
    width: min(160px, 100%);
    aspect-ratio: 9 / 14;
}

.site-banner-preview span {
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.site-banner-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.site-banner-preview-remove {
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: auto;
    min-height: 30px;
    border: 0;
    border-radius: 8px;
    color: #fff;
    background: rgba(180, 35, 24, .92);
    cursor: pointer;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 800;
}

.site-banner-preview.is-empty img {
    display: none;
}

.site-banner-preview.site-item-photo-preview {
    width: min(160px, 100%);
    aspect-ratio: 1 / 1;
    border-radius: 18px;
}

.site-banner-preview.site-item-photo-preview img {
    object-fit: contain;
    padding: 8px;
    background: #fff;
}

.site-banner-preview.site-item-photo-preview.is-empty {
    background:
        radial-gradient(circle at 50% 38%, rgba(13, 126, 113, .16) 0 18%, transparent 19%),
        radial-gradient(circle at 50% 78%, rgba(13, 126, 113, .14) 0 27%, transparent 28%),
        var(--surface-soft);
}

.site-banner-preview.site-item-photo-preview.is-empty span {
    color: var(--primary);
    background: rgba(255, 255, 255, .72);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 12px;
}

.banner-thumb-button {
    display: block;
    overflow: hidden;
    width: 92px;
    height: 54px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    cursor: pointer;
    padding: 0;
}

.banner-thumb-button.is-mobile {
    width: 48px;
    height: 72px;
}

.banner-thumb-button img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.banner-thumb-empty {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    border-radius: 8px;
    color: var(--muted);
    background: var(--surface-soft);
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 800;
}

.image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 110;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.image-lightbox.is-open {
    display: flex;
}

.image-lightbox-panel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 14px;
    width: min(980px, 100%);
    max-height: 90vh;
    border-radius: 8px;
    background: #fff;
    padding: 16px;
    box-shadow: 0 24px 80px rgba(12, 18, 16, .28);
}

.image-lightbox-panel header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.image-lightbox-panel img {
    display: block;
    width: 100%;
    max-height: calc(90vh - 92px);
    border-radius: 8px;
    object-fit: contain;
    background: var(--surface-soft);
}

.upload-image-preview {
    overflow: hidden;
    width: min(180px, 100%);
    margin-top: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface-soft);
    aspect-ratio: 16 / 9;
}

.upload-image-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.modal-form {
    display: grid;
    gap: 14px;
}

.sweet-alert {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.sweet-alert.is-open {
    display: flex;
}

.sweet-alert-card {
    position: relative;
    z-index: 1;
    width: min(430px, 100%);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(12, 18, 16, .28);
    padding: 24px;
    text-align: center;
}

.sweet-alert-card h3 {
    font-size: 22px;
}

.sweet-alert-card p {
    margin-bottom: 18px;
}

.sweet-alert-actions {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.undo-alert {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 110;
    display: none;
    width: min(420px, calc(100vw - 44px));
    border-radius: 8px;
    background: #17211f;
    color: #fff;
    box-shadow: var(--shadow);
    padding: 16px;
}

.undo-alert.is-open {
    display: grid;
    gap: 10px;
}

.undo-alert p {
    margin: 0;
    color: #dbe8e4;
}

.undo-progress {
    height: 4px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
}

.undo-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--accent);
    animation: undo-countdown 6s linear forwards;
}

@keyframes undo-countdown {
    from { width: 100%; }
    to { width: 0; }
}

.ibpt-import-loading,
.import-loading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #b8e1dc;
    border-radius: 8px;
    background: #f0fbf8;
    color: #005f58;
    font-weight: 800;
}

.ibpt-import-loading[hidden],
.import-loading[hidden] {
    display: none !important;
}

.ibpt-import-loading small,
.import-loading small {
    display: block;
    margin-top: 2px;
    color: #5f706d;
    font-size: 12px;
    font-weight: 700;
}

.loading-spinner {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border: 3px solid #d9efec;
    border-top-color: #00877f;
    border-radius: 999px;
    animation: orizonsys-spin 0.8s linear infinite;
}

@keyframes orizonsys-spin {
    to {
        transform: rotate(360deg);
    }
}

.is-filtered-out,
.is-page-hidden {
    display: none !important;
}

.list-card {
    display: grid;
    gap: 14px;
}

.list-card.is-child-card {
    margin-left: 32px;
}

.list-card form {
    display: grid;
    gap: 12px;
}

.list-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.check-panel {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
    padding: 12px;
}

.compact-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface);
}

.compact-history-table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
}

.compact-summary-table {
    min-width: 520px;
}

.compact-account-table {
    min-width: 920px;
}

.report-detail-table {
    min-width: 1080px;
}

.pos-electronic-sales-table {
    min-width: 1120px;
}

.finance-pdv-check-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.finance-pdv-check-callout strong,
.finance-pdv-check-callout span {
    display: block;
}

.finance-pdv-check-callout span {
    margin-top: 2px;
}

.check-column {
    font-weight: 900;
    text-align: center !important;
    letter-spacing: 2px;
}

.report-summary-grid {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.report-print-header,
.report-print-filters {
    display: none;
}

.compact-history-table th,
.compact-history-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
}

.compact-history-table th {
    background: #fbfcfc;
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.compact-history-table td {
    font-size: 14px;
}

.compact-history-table tbody tr:last-child td {
    border-bottom: 0;
}

.financial-account-movements-modal {
    max-height: min(84vh, 760px);
    overflow: hidden;
}

.financial-account-movements-modal .app-modal-header small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 13px;
    font-weight: 700;
}

.financial-account-movements-scroll {
    max-height: min(56vh, 430px);
    overflow: auto;
}

.financial-account-movements-scroll .compact-history-table {
    margin: 0;
}

.financial-account-movements-scroll .compact-history-table th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.connection-history {
    margin-top: 14px;
    overflow-x: auto;
}

.connection-history > strong {
    display: block;
    margin-bottom: 8px;
    color: var(--primary-dark);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.connection-history-table {
    width: 100%;
    min-width: 840px;
}

.connection-history-table small {
    display: block;
    color: var(--muted);
    font-size: 11px;
    margin-top: 2px;
}

.mono-chip {
    display: inline-block;
    max-width: 220px;
    overflow: hidden;
    border-radius: 7px;
    background: #eef6f4;
    color: var(--primary-dark);
    font-family: Consolas, "Courier New", monospace;
    font-size: 12px;
    padding: 5px 7px;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

.duration-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border-radius: 999px;
    background: #e3f2ed;
    color: var(--primary-dark);
    font-family: Consolas, "Courier New", monospace;
    font-size: 13px;
    font-weight: 900;
    padding: 5px 10px;
}

.duration-pill.is-muted {
    background: #eef1f1;
    color: var(--muted);
}

.compact-audit-table {
    min-width: 720px;
}

.audit-json {
    overflow: auto;
    max-height: 260px;
    margin: 0;
    border-radius: 8px;
    background: #f5f7fa;
    color: var(--ink);
    padding: 12px;
    font-size: 12px;
    white-space: pre-wrap;
}

.audit-change-table {
    min-width: 680px;
}

.audit-change-table td:first-child {
    width: 220px;
    color: var(--primary-dark);
}

.dt-pagination nav > div:first-child {
    display: none;
}

.dt-pagination nav > div:last-child {
    display: flex;
    align-items: center;
    gap: 8px;
}

.dt-pagination svg {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px;
    max-height: 18px;
    display: block;
    flex: 0 0 18px;
}

.data-panel > nav svg,
.data-panel .pagination svg {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px;
    max-height: 18px;
    display: block;
}

.check-grid,
.permission-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
}

.check-row {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    font-size: 13px;
}

.check-row input {
    flex: 0 0 16px;
    width: 16px;
    min-height: 16px;
}

.settings-choice-grid {
    display: grid;
    gap: 10px;
}

.settings-choice {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px;
    background: #fff;
    cursor: pointer;
}

.settings-choice input {
    width: 16px;
    min-height: 16px;
    margin-top: 2px;
}

.settings-choice strong,
.settings-choice small {
    display: block;
}

.settings-choice small {
    margin-top: 4px;
    color: var(--muted);
    line-height: 1.45;
}

.permission-editor {
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--line);
    padding-top: 12px;
}

[data-permissions-template-target] {
    display: grid;
    gap: 10px;
}

details {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
    padding: 10px 12px;
}

summary {
    cursor: pointer;
    font-weight: 800;
}

.permission-grid {
    margin-top: 12px;
}

.permission-menu-group {
    padding: 0;
    overflow: hidden;
    background: #fff;
}

.permission-menu-summary,
.permission-module-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
}

.permission-menu-title {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
}

.permission-menu-title > span:last-child,
.permission-module-summary > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.permission-module-title {
    display: grid;
    min-width: 0;
    gap: 2px;
    white-space: normal;
}

.permission-module-title strong,
.permission-module-title em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.permission-module-title em {
    color: var(--muted);
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
}

.permission-menu-icon {
    display: inline-grid;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 8px;
    background: #e8f3f2;
    color: var(--primary);
    font-size: 12px;
    font-weight: 900;
}

.permission-menu-count,
.permission-module-summary small {
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--muted);
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 800;
}

.permission-menu-body {
    display: grid;
    gap: 10px;
    padding: 0 14px 14px;
}

.permission-module-group {
    background: #fbfcfc;
}

.permission-module-summary {
    padding: 10px 12px;
}

.permission-module-group .permission-grid,
.permission-menu-body > .permission-grid {
    padding: 0 12px 12px;
}

.plan-module-picker {
    display: grid;
    gap: 10px;
}

.plan-module-group {
    padding: 0;
    overflow: hidden;
    background: #fff;
}

.plan-module-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
}

.plan-module-title {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.plan-module-title strong,
.plan-module-title em {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.plan-module-title em {
    color: var(--muted);
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
}

.plan-module-summary small {
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--muted);
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 800;
}

.plan-module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 10px;
    padding: 0 12px 12px;
}

.plan-module-option {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 10px;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
    padding: 10px;
}

.plan-module-option.is-root {
    border-color: rgba(0, 122, 116, .28);
    background: #f0faf8;
}

.plan-module-option input {
    margin-top: 3px;
}

.plan-module-option span {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.plan-module-option strong,
.plan-module-option small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.plan-module-option small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.permission-editor-footer {
    position: sticky;
    bottom: -22px;
    display: flex;
    justify-content: flex-end;
    margin-top: 2px;
    padding: 12px 0 0;
    background: linear-gradient(180deg, rgba(255, 255, 255, .72), #fff 45%);
}

.button,
.icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 800;
    transition: transform .15s ease, background .18s ease, color .18s ease;
}

.button {
    gap: 8px;
    padding: 9px 14px;
}

.button:hover,
.icon-button:hover {
    transform: translateY(-1px);
}

.button-primary {
    background: var(--primary);
    color: #fff;
}

.button-primary:hover {
    background: var(--primary-dark);
}

.button-secondary {
    background: #e8f1ef;
    color: var(--primary-dark);
}

.button-ghost {
    background: transparent;
    color: var(--muted);
}

.button-small {
    min-height: 34px;
    padding: 7px 10px;
    background: var(--surface-soft);
    color: var(--ink);
    font-size: 12px;
}

.button-full {
    width: 100%;
}

.icon-button {
    width: 40px;
    background: #fff;
    color: var(--ink);
}

.only-mobile {
    display: none;
}

.notice {
    padding: 12px 14px;
    font-weight: 700;
}

.empty-state {
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: #fbfcfc;
    color: var(--muted);
    padding: 22px;
    text-align: center;
    font-weight: 800;
}

.notice-success {
    border-color: rgba(29, 127, 67, .25);
    color: var(--success);
    background: rgba(29, 127, 67, .08);
}

.notice-danger {
    border-color: rgba(180, 35, 24, .25);
    color: var(--danger);
    background: rgba(180, 35, 24, .08);
}

.toast {
    position: fixed;
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 100000;
    display: none;
    width: min(520px, calc(100vw - 32px));
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    box-shadow: var(--shadow);
    padding: 14px 18px;
    font-weight: 700;
    text-align: center;
}

.toast.is-visible {
    display: block;
}

.toast.is-error {
    background: var(--danger);
}

.login-screen {
    min-height: 100vh;
    display: grid;
    place-items: center;
    background:
        linear-gradient(135deg, rgba(11, 122, 117, .08), rgba(197, 139, 34, .11)),
        var(--bg);
    padding: 28px;
}

.login-panel {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) 420px;
    width: min(1080px, 100%);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
}

/* Espaçamento específico para a tela de Configurações da plataforma (admin) */
.platform-settings-layout {
    display: grid;
    grid-template-columns: minmax(480px, 1fr) 420px;
    gap: 40px;
    width: 100%;
}

.platform-preview-panel {
    padding: 28px 32px;
}

.login-intro {
    display: grid;
    align-content: center;
    gap: 24px;
    min-height: 560px;
    background: linear-gradient(135deg, #10201d, #1f332e);
    color: #fff;
    padding: 44px;
}

.login-intro h1 {
    max-width: 620px;
    font-size: 34px;
    line-height: 1.16;
}

.login-brand .brand-mark {
    background: var(--primary);
}

.login-highlights span {
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.login-card {
    display: grid;
    align-content: center;
    gap: 18px;
    padding: 42px;
}

.login-card form {
    display: grid;
    gap: 14px;
}

.login-card label {
    font-size: 14px;
}

.login-card label input[type="email"],
.login-card label input[type="password"],
.login-card label input[type="text"] {
    font-size: 16px;
    min-height: 46px;
    padding: 11px 13px;
}

.login-card .password-field {
    position: relative;
    display: block;
}

.login-card .password-field input {
    padding-right: 48px;
}

.login-card .password-toggle {
    position: absolute;
    top: 50%;
    right: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    color: var(--muted);
    background: transparent;
    cursor: pointer;
    transform: translateY(-50%);
}

.login-card .password-toggle:hover {
    color: var(--primary);
    background: rgba(11, 122, 117, .08);
}

.login-card .password-toggle:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.login-card .password-toggle-icon {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.login-card .password-toggle .password-toggle-hide,
.login-card .password-toggle.is-visible .password-toggle-show {
    display: none;
}

.login-card .password-toggle.is-visible .password-toggle-hide {
    display: block;
}

.login-card .check-row span {
    font-size: 14px;
}

.login-card form.is-submitting {
    opacity: 0.92;
    pointer-events: none;
}

.login-submit-label,
.login-submit-loading {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.button.is-loading .login-submit-label {
    display: none;
}

.button.is-loading .login-submit-loading {
    display: inline-flex;
}

.login-submit-loading {
    display: none;
}

.button.is-loading {
    cursor: wait;
    transform: none;
}

.login-submit-spinner {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border-width: 2px;
    border-color: rgba(255, 255, 255, .35);
    border-top-color: #fff;
}

.register-screen {
    align-items: start;
}

.register-panel {
    display: grid;
    grid-template-columns: 360px minmax(0, 820px);
    width: min(1200px, 100%);
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
}

.register-intro {
    min-height: auto;
}

.register-card {
    align-content: start;
}

.register-card .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.segmented-field {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.segmented-field label {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 11px 12px;
    background: #fff;
    cursor: pointer;
}

.segmented-field input {
    width: auto;
    min-height: auto;
}

.code-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    border-radius: 8px;
    padding: 5px 10px;
    background: #eef8f6;
    color: var(--primary);
    font-family: Consolas, Monaco, monospace;
    font-weight: 900;
    letter-spacing: .08em;
}

@media (max-width: 1180px) {
    .metric-grid {
        grid-template-columns: repeat(3, minmax(130px, 1fr));
    }

    .module-grid {
        grid-template-columns: repeat(2, minmax(240px, 1fr));
    }

    .two-column {
        grid-template-columns: 1fr;
    }

    .panel-form {
        position: static;
    }
}

@media (max-width: 1280px) {
    .checkout-grid {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
    }

    .limit-card-grid {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    .subscription-overview-grid {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    .responsive-datatable [data-priority="4"] {
        display: none;
    }
}

@media (max-width: 820px) {
    .register-panel {
        grid-template-columns: 1fr;
    }

    .subscription-timeline-header,
    .subscription-timeline-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .subscription-timeline-labels,
    .subscription-timeline-top-labels {
        gap: 8px;
        font-size: 12px;
    }

    .subscription-timeline-paid-label,
    .subscription-timeline-grace-label {
        max-width: 46%;
        white-space: normal;
    }

    .limit-card-grid.subscription-limit-grid {
        grid-template-columns: 1fr;
    }

    .register-card .form-grid,
    .segmented-field {
        grid-template-columns: 1fr;
    }

    .app-shell {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: fixed;
        z-index: 20;
        width: 280px;
        transform: translateX(-100%);
        transition: transform .18s ease;
    }

    .sidebar.is-open {
        transform: translateX(0);
    }

    .topbar {
        align-items: flex-start;
        padding: 14px;
    }

    .topbar-actions {
        align-items: flex-end;
        flex-direction: column;
    }

    .context-switcher,
    .search-form {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .context-switcher {
        display: grid;
    }

    .search-form {
        align-items: stretch;
        flex-direction: column;
    }

    .user-chip {
        min-width: 0;
        width: 190px;
    }

    .only-mobile {
        display: inline-flex;
    }

    .content {
        padding: 18px;
    }

    .hero-panel,
    .section-header,
    .list-card-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .hero-meta {
        width: 100%;
        min-width: 0;
    }

    .metric-grid,
    .limit-card-grid,
    .subscription-overview-grid,
    .checkout-grid,
    .history-grid,
    .module-grid,
    .form-grid,
    .check-grid,
    .permission-grid,
    .login-panel {
        grid-template-columns: 1fr;
    }

    .login-intro {
        min-height: auto;
        padding: 32px;
    }

    .login-intro h1 {
        font-size: 28px;
    }

    .login-card {
        padding: 30px;
    }

    .platform-settings-layout {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .platform-preview-panel {
        padding: 18px;
    }

    .dt-toolbar,
    .dt-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .datatable-filters {
        grid-template-columns: 1fr;
    }

    .dt-length,
    .dt-search-wrap,
    .dt-search-wrap input {
        width: 100%;
    }

    .dt-pagination {
        flex-wrap: wrap;
    }

    .responsive-datatable [data-priority="3"] {
        display: none;
    }

    .data-details-grid {
        grid-template-columns: 1fr;
    }
}

.pdv-shell {
    display: grid;
    gap: 18px;
}

.pdv-open-panel,
.pdv-statusbar,
.pdv-products,
.pdv-cart,
.pdv-recent {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.pdv-open-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
    gap: 28px;
    align-items: center;
    min-height: 320px;
    padding: 34px;
}

.pdv-open-panel h2,
.pdv-cart h2,
.pdv-recent h2 {
    margin: 4px 0 0;
}

.pdv-open-panel p {
    max-width: 620px;
    color: var(--muted);
    font-size: 1.05rem;
}

.pdv-open-form {
    display: grid;
    gap: 14px;
}

.pdv-open-form label,
.pdv-search-row label,
.pdv-customer-box label,
.pdv-totals label {
    display: grid;
    gap: 7px;
    color: var(--muted);
    font-weight: 800;
}

.pdv-open-form input,
.pdv-open-form select,
.pdv-search-row input,
.pdv-customer-box input,
.pdv-totals input,
.pdv-totals select {
    width: 100%;
    min-height: 48px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 14px;
    background: #fff;
    color: var(--text);
    font: inherit;
}

.pdv-statusbar {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    padding: 18px 22px;
}

.pdv-statusbar strong {
    display: block;
    font-size: 1.35rem;
}

.pdv-statusbar small {
    color: var(--muted);
}

.pdv-status-metrics {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.pdv-status-metrics span {
    min-width: 135px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 12px;
    background: var(--surface-soft);
    color: var(--text);
    font-weight: 900;
}

.pdv-status-metrics span strong {
    margin-bottom: 2px;
    color: var(--muted);
    font-size: .76rem;
    text-transform: uppercase;
}

.pdv-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 430px;
    gap: 18px;
    align-items: start;
}

.pdv-products {
    min-width: 0;
    padding: 18px;
}

.pdv-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
    margin-bottom: 14px;
}

.pdv-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 10px;
    min-height: 420px;
}

.pdv-product-card {
    display: grid;
    gap: 6px;
    align-content: start;
    min-height: 138px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 14px;
    background: #fff;
    color: var(--text);
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.pdv-product-card:hover {
    border-color: var(--primary);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .08);
    transform: translateY(-1px);
}

.pdv-product-card strong {
    font-size: 1rem;
    line-height: 1.2;
}

.pdv-product-card small,
.pdv-product-card em {
    color: var(--muted);
    font-style: normal;
}

.pdv-product-card span {
    margin-top: auto;
    color: var(--primary);
    font-size: 1.35rem;
    font-weight: 950;
}

.pdv-cart {
    position: sticky;
    top: 18px;
    display: grid;
    gap: 14px;
    padding: 18px;
}

.pdv-cart header,
.pdv-recent {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.pdv-customer-box {
    position: relative;
}

.pdv-lookup-results {
    display: none;
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    right: 0;
    left: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
}

.pdv-lookup-results.is-open {
    display: grid;
}

.pdv-lookup-results button {
    border: 0;
    border-bottom: 1px solid var(--border);
    padding: 10px 12px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.pdv-lookup-results button:hover {
    background: var(--surface-soft);
}

.pdv-cart-lines {
    display: grid;
    gap: 8px;
    max-height: 330px;
    overflow: auto;
    padding-right: 2px;
}

.pdv-cart-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px 78px 88px 32px;
    gap: 8px;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px;
    background: #fff;
}

.pdv-cart-line strong {
    line-height: 1.2;
}

.pdv-cart-line small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.pdv-cart-line input {
    width: 100%;
    min-height: 36px;
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: 6px 8px;
}

.pdv-cart-line button {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: #ffe2df;
    color: #b9251c;
    font-size: 1.25rem;
    font-weight: 900;
    cursor: pointer;
}

.pdv-totals {
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

.pdv-totals > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    color: var(--muted);
}

.pdv-totals > div strong {
    color: var(--text);
    font-size: 1.35rem;
}

.pdv-totals > div:nth-of-type(2) {
    border-radius: 8px;
    padding: 12px;
    background: #eef8f6;
}

.pdv-totals > div:nth-of-type(2) strong {
    color: var(--primary);
    font-size: 1.75rem;
}

.pdv-empty {
    display: grid;
    place-items: center;
    min-height: 120px;
    border: 1px dashed var(--border);
    border-radius: 8px;
    padding: 18px;
    color: var(--muted);
    text-align: center;
}

.pdv-recent {
    padding: 16px 18px;
}

.pdv-recent-list {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.pdv-recent-list span {
    min-width: 130px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 10px;
    background: var(--surface-soft);
    color: var(--muted);
}

.pdv-recent-list strong {
    display: block;
    color: var(--text);
}

.pdv-receipt-panel {
    max-width: 460px;
}

.pdv-receipt {
    display: grid;
    gap: 6px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 16px;
    background: #fff;
    font-family: Consolas, Monaco, monospace;
}

.pdv-receipt hr {
    width: 100%;
    border: 0;
    border-top: 1px dashed #9aa8a4;
}

.pdv-receipt p {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin: 0;
}

.pdv-receipt p small {
    grid-column: 1 / -1;
    color: var(--muted);
}

body.pos-shell {
    min-height: 100vh;
    overflow: hidden;
    background: #eef2f4;
}

.pos-terminal {
    display: grid;
    grid-template-rows: 78px minmax(0, 1fr) 42px;
    min-height: 100vh;
}

.pos-topbar {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    border-bottom: 1px solid var(--border);
    padding: 12px 20px;
    background: #fff;
}

.pos-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pos-brand .brand-mark {
    background: linear-gradient(135deg, var(--primary), #123d39);
}

.pos-brand strong,
.pos-brand span {
    display: block;
}

.pos-brand strong {
    font-size: 1.25rem;
}

.pos-brand span {
    color: var(--muted);
    font-weight: 800;
}

.pos-context {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 10px;
}

.pos-context > span,
.pos-device-pill,
.pos-cash-pill {
    display: grid;
    gap: 2px;
    min-height: 50px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 12px;
    background: #fff;
}

.pos-context strong {
    color: var(--muted);
    font-size: .72rem;
    text-transform: uppercase;
}

.pos-device-pill {
    border-color: rgba(11, 122, 117, .25);
    background: #effaf8 !important;
}

.pos-cash-pill {
    border-color: rgba(197, 139, 34, .25);
    background: #fff7e3 !important;
}

.pos-user-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.pos-logout-form {
    display: inline-flex;
    margin: 0;
}

.pos-open-screen {
    display: grid;
    place-items: center;
    padding: 28px;
}

.pos-open-card {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(340px, 460px);
    gap: 36px;
    align-items: center;
    width: min(1040px, 100%);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 42px;
    background: #fff;
    box-shadow: var(--shadow);
}

.pos-closed-panel {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 18px;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    background: #f0fdf4;
}

.pos-closed-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #16a34a;
    color: #fff;
    font-size: 1.35rem;
}

.pos-closed-panel h1 {
    margin: 4px 0 6px;
    font-size: 1.55rem;
}

.pos-closed-panel p {
    margin: 0;
    font-size: .98rem;
}

.pos-closed-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    min-width: 210px;
}

.pos-closed-actions form,
.pos-closed-actions button,
.pos-closed-actions a {
    width: 100%;
}

.pos-open-card h1 {
    margin: 8px 0 10px;
    font-size: 2rem;
}

.pos-open-card p {
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.55;
}

.pos-open-form {
    display: grid;
    gap: 14px;
}

.pos-open-form label,
.pos-sale-panel label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-weight: 850;
}

.pos-open-form input,
.pos-open-form select,
.pos-sale-panel input,
.pos-sale-panel select,
.pos-search-bar input {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 12px;
    background: #fff;
    color: var(--text);
    font: inherit;
}

.pos-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 520px;
    gap: 16px;
    min-height: 0;
    padding: 16px 18px 12px;
}

.pos-products-panel,
.pos-sale-panel {
    min-height: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(22, 32, 29, .06);
}

.pos-products-panel {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
}

.pos-panel-header,
.pos-sale-title {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.pos-panel-header h1,
.pos-sale-title h2 {
    margin: 2px 0 0;
}

.pos-search-bar {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px 94px;
    gap: 8px;
    align-items: center;
}

.pos-search-icon {
    display: grid;
    place-items: center;
    height: 46px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface-soft);
    color: var(--primary);
    font-size: 1.2rem;
}

.pos-category-strip {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.pos-category-strip button {
    min-height: 38px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 14px;
    background: #f7f9f9;
    color: var(--text);
    font-weight: 850;
    white-space: nowrap;
    cursor: pointer;
}

.pos-category-strip button.is-active {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
}

.pos-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 10px;
    min-height: 0;
    overflow: auto;
    padding-right: 2px;
}

.pos-product-grid .pdv-product-card {
    grid-template-columns: 56px minmax(0, 1fr);
    min-height: 118px;
}

.pos-product-grid .pdv-product-card span,
.pos-product-grid .pdv-product-card em {
    grid-column: 2;
}

.pos-product-thumb {
    grid-row: span 3;
    display: grid;
    place-items: center;
    width: 50px;
    height: 64px;
    border-radius: 8px;
    background: #eef8f6;
    color: var(--primary);
    font-size: 1.7rem;
    font-weight: 950;
}

.pos-sale-panel {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr) auto auto auto auto;
    gap: 12px;
    padding: 16px;
}

.pos-customer-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
    gap: 8px;
    align-items: end;
}

.pos-customer-row .pdv-lookup-results {
    grid-column: 1 / -1;
}

.pos-cart-head,
.pos-cart-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px 82px 92px 34px;
    gap: 8px;
    align-items: center;
}

.pos-cart-head {
    border-bottom: 1px solid var(--border);
    padding: 0 6px 8px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.pos-cart-lines {
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 0;
    overflow: auto;
}

.pos-cart-line {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px;
    background: #fff;
}

.pos-cart-line.is-selected {
    border-color: var(--primary);
    box-shadow: inset 3px 0 0 var(--primary);
}

.pos-cart-select {
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
}

.pos-cart-select strong,
.pos-cart-select small {
    display: block;
}

.pos-cart-select small {
    margin-top: 2px;
    color: var(--muted);
}

.pos-qty-control {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 30px;
}

.pos-qty-control button,
.pos-remove-line {
    border: 1px solid var(--border);
    background: var(--surface-soft);
    color: var(--text);
    font-weight: 900;
    cursor: pointer;
}

.pos-qty-control input {
    min-height: 34px;
    border-radius: 0;
    text-align: center;
}

.pos-qty-control button:first-child {
    border-radius: 7px 0 0 7px;
}

.pos-qty-control button:last-child {
    border-radius: 0 7px 7px 0;
}

.pos-remove-line {
    width: 32px;
    height: 32px;
    border-color: rgba(180, 35, 24, .25);
    border-radius: 50%;
    background: #fff1ef;
    color: var(--danger);
}

.pos-total-box {
    display: grid;
    gap: 9px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 12px;
    background: #fbfcfc;
}

.pos-total-box > div,
.pos-change-box {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.pos-grand-total {
    border-top: 1px solid var(--border);
    padding-top: 9px;
}

.pos-grand-total strong {
    color: var(--primary);
    font-size: 1.55rem;
}

.pos-payment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.pos-change-box {
    border: 1px solid rgba(197, 139, 34, .25);
    border-radius: 8px;
    padding: 11px 12px;
    background: #fff7e3;
    color: #8b5e00;
    font-weight: 900;
}

.pos-change-box strong {
    color: var(--primary);
    font-size: 1.35rem;
}

.pos-finish-button {
    min-height: 60px;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--primary), #08645f);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 950;
    cursor: pointer;
}

.pos-finish-button:disabled {
    opacity: .65;
    cursor: wait;
}

.pos-shortcut-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    border-top: 1px solid var(--border);
    padding: 6px 12px;
    background: #10201d;
    color: #d7e3df;
    white-space: nowrap;
}

.pos-shortcut-bar span {
    border-radius: 6px;
    padding: 4px 8px;
    background: rgba(255, 255, 255, .08);
    font-size: .82rem;
}

.pos-shortcut-bar strong {
    color: #fff;
}

.shortcut-help-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.shortcut-help-grid span {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px;
}

.shortcut-help-grid strong {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    margin-right: 8px;
    border-radius: 6px;
    padding: 4px 7px;
    background: var(--primary);
    color: #fff;
}

.is-hidden {
    display: none !important;
}

.pos-terminal {
    grid-template-rows: 64px minmax(0, 1fr) 34px;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    min-height: 0;
    overflow: hidden;
}

.pos-terminal-traditional {
    grid-template-rows: 64px 66px minmax(0, 1fr) 40px;
    background: #f5f7f8;
}

.pos-topbar {
    grid-template-columns: 220px minmax(0, 1fr) auto;
    gap: 12px;
    padding: 8px 18px;
}

.pos-context > span,
.pos-device-pill,
.pos-cash-pill {
    min-height: 44px;
    padding: 6px 10px;
}

.pos-workspace {
    grid-template-columns: minmax(0, 1fr) minmax(430px, 480px);
    gap: 12px;
    overflow: hidden;
    padding: 10px 12px 8px;
}

.pos-products-panel {
    gap: 9px;
    overflow: hidden;
    padding: 12px;
}

.pos-sale-panel {
    gap: 9px;
    overflow: hidden;
    padding: 12px;
}

.pos-open-form input,
.pos-open-form select,
.pos-sale-panel input,
.pos-sale-panel select,
.pos-search-bar input {
    min-height: 40px;
    padding: 8px 10px;
}

.pos-search-bar {
    grid-template-columns: 38px minmax(0, 1fr) 36px 86px;
}

.pos-search-icon {
    height: 40px;
}

.pos-category-strip button {
    min-height: 34px;
    padding: 7px 12px;
}

.pos-product-grid {
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 8px;
}

.pos-product-grid .pdv-product-card {
    grid-template-columns: 46px minmax(0, 1fr);
    min-height: 92px;
    padding: 9px;
}

.pos-product-grid .pdv-product-card strong {
    font-size: .92rem;
}

.pos-product-grid .pdv-product-card span {
    font-size: 1.1rem;
}

.pos-product-thumb {
    width: 40px;
    height: 50px;
    font-size: 1.45rem;
}

.pos-cart-lines {
    gap: 7px;
}

.pos-cart-line {
    padding: 7px;
}

.pos-total-box {
    gap: 7px;
    padding: 9px 10px;
}

.pos-grand-total strong {
    font-size: 1.42rem;
}

.pos-change-box {
    padding: 9px 10px;
}

.pos-finish-button {
    min-height: 52px;
}

.pos-shortcut-bar {
    padding: 4px 10px;
}

.pos-shortcut-bar span {
    padding: 3px 7px;
    font-size: .76rem;
}

.pos-workspace-traditional {
    grid-template-columns: minmax(360px, .58fr) minmax(0, 1fr);
    gap: 14px;
    padding: 10px 12px 12px;
}

.pos-status-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 8px 12px 6px;
    border: 1px solid rgba(33, 160, 74, .22);
    border-radius: 8px;
    background: linear-gradient(90deg, #fbfffc, #f3fff6);
    color: #08751d;
    text-transform: uppercase;
}

.pos-status-banner strong {
    font-size: clamp(1.45rem, 2.2vw, 2.2rem);
    font-weight: 950;
    line-height: 1;
}

.pos-status-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(135deg, #6bd15d, #138624);
    color: #fff;
    font-size: 1.45rem;
    font-weight: 950;
}

.pos-traditional-panel {
    display: grid;
    grid-template-rows: auto auto auto auto minmax(0, 1fr);
    gap: 14px;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(22, 32, 29, .06);
}

.pos-traditional-entry {
    display: block;
}

.pos-traditional-entry label,
.pos-traditional-values label {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-weight: 850;
}

.pos-traditional-entry input,
.pos-traditional-values input {
    min-height: 54px;
    border: 2px solid rgba(11, 122, 117, .25);
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 1.05rem;
    font-weight: 850;
}

.pos-traditional-entry input {
    width: 100%;
}

.pos-traditional-values {
    display: grid;
    grid-template-columns: 1fr .85fr;
    gap: 12px;
}

.pos-traditional-values input {
    border-color: var(--border);
    text-align: right;
    font-size: 1.12rem;
    font-weight: 950;
}

.pos-traditional-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pos-traditional-info span,
.pos-traditional-last {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 12px;
    background: linear-gradient(90deg, #fff, #fbfcfc);
    box-shadow: 0 8px 20px rgba(22, 32, 29, .04);
}

.pos-traditional-info strong {
    display: inline-grid;
    place-items: center;
    min-width: 38px;
    margin-right: 6px;
    border-radius: 6px;
    padding: 3px 6px;
    background: var(--primary);
    color: #fff;
}

.pos-traditional-last {
    align-self: stretch;
    padding-top: 18px;
}

.pos-traditional-last h2 {
    margin: 4px 0 8px;
}

.pos-traditional-last p {
    color: var(--muted);
    line-height: 1.55;
}

.pos-sale-panel-traditional {
    grid-template-rows: auto minmax(0, 1fr) auto;
    padding: 14px;
}

.pos-sale-panel-traditional .pos-cart-head,
.pos-sale-panel-traditional .pos-cart-line {
    grid-template-columns: minmax(0, 1fr) 88px 92px 108px;
}

.pos-sale-panel-traditional .pos-cart-head {
    padding: 8px 14px 12px;
}

.pos-sale-panel-traditional .pos-cart-lines {
    border: 1px solid #f2e6d5;
    border-radius: 8px;
    background: linear-gradient(135deg, #fffaf2, #fff7ec);
    padding: 8px;
}

.pos-sale-panel-traditional .pos-cart-line {
    min-height: 46px;
    border: 0;
    border-radius: 8px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .78);
}

.pos-sale-panel-traditional .pos-cart-select strong {
    color: var(--text);
    font-size: .95rem;
    line-height: 1.18;
}

.pos-sale-panel-traditional .pos-cart-select small {
    font-size: .78rem;
}

.pos-sale-panel-traditional .pos-remove-line {
    display: none;
}

.pos-sale-panel-traditional .pdv-empty {
    display: flex;
    flex-direction: column;
    place-items: center;
    align-items: center;
    justify-content: center;
    gap: 14px;
    min-height: 100%;
    color: #76827f;
    font-size: 1.05rem;
    text-align: center;
}

.pos-sale-panel-traditional .pdv-empty::before {
    content: none;
}

.pos-cart-empty-icon {
    position: relative;
    display: block;
    width: 58px;
    height: 48px;
    border-bottom: 5px solid #7b8582;
    border-left: 5px solid #7b8582;
    border-radius: 0 0 8px 8px;
    opacity: .82;
}

.pos-cart-empty-icon::before {
    content: "";
    position: absolute;
    left: -10px;
    top: -9px;
    width: 18px;
    height: 5px;
    border-radius: 4px;
    background: #7b8582;
    transform: rotate(35deg);
}

.pos-cart-empty-icon::after {
    content: "";
    position: absolute;
    left: 6px;
    right: 6px;
    bottom: -17px;
    height: 9px;
    border-left: 8px solid #7b8582;
    border-right: 8px solid #7b8582;
    border-radius: 50%;
}

.pos-sale-panel-traditional .pos-total-box {
    border-color: #f2e6d5;
    background: linear-gradient(135deg, #fffaf2, #fff7ec);
    font-size: 1.15rem;
}

.pos-sale-panel-traditional .pos-total-box > div {
    border-top: 1px solid var(--border);
    padding-top: 14px;
}

.pos-sale-panel-traditional .pos-total-box strong {
    color: #046531;
    font-size: 2rem;
}

.pos-product-lookup-panel {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    gap: 0;
    width: min(1040px, calc(100vw - 48px));
    max-width: none;
    height: min(680px, calc(100vh - 48px));
    max-height: calc(100vh - 48px);
    padding: 0;
    overflow: hidden;
}

.pos-product-lookup-panel .app-modal-header,
#pdv-cash-movement-modal .app-modal-header,
#pdv-close-modal .app-modal-header,
#pdv-movements-modal .app-modal-header,
#pdv-shortcuts-modal .app-modal-header {
    align-items: center;
    padding: 16px 18px;
    border-bottom-color: #073e7a;
    background: linear-gradient(135deg, #082d63, #0b5f9e);
    color: #fff;
}

.pos-product-lookup-panel .app-modal-header h2,
#pdv-cash-movement-modal .app-modal-header h2,
#pdv-close-modal .app-modal-header h2,
#pdv-movements-modal .app-modal-header h2,
#pdv-shortcuts-modal .app-modal-header h2 {
    color: #fff;
    font-size: 1.3rem;
}

.pos-product-lookup-panel .app-modal-header .eyebrow,
#pdv-cash-movement-modal .app-modal-header .eyebrow,
#pdv-close-modal .app-modal-header .eyebrow,
#pdv-movements-modal .app-modal-header .eyebrow,
#pdv-shortcuts-modal .app-modal-header .eyebrow {
    color: #69ead2;
}

.pos-product-lookup-panel .app-modal-header .icon-button,
#pdv-cash-movement-modal .app-modal-header .icon-button,
#pdv-close-modal .app-modal-header .icon-button,
#pdv-movements-modal .app-modal-header .icon-button,
#pdv-shortcuts-modal .app-modal-header .icon-button {
    border-color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.pos-product-lookup-panel .app-modal-header .icon-button:hover,
#pdv-cash-movement-modal .app-modal-header .icon-button:hover,
#pdv-close-modal .app-modal-header .icon-button:hover,
#pdv-movements-modal .app-modal-header .icon-button:hover,
#pdv-shortcuts-modal .app-modal-header .icon-button:hover {
    background: rgba(255, 255, 255, .22);
}

.app-modal[id^="create-"] > .app-modal-panel > .app-modal-header,
.app-modal[id^="edit-"] > .app-modal-panel > .app-modal-header,
.registration-create-modal > .app-modal-panel > .app-modal-header {
    margin: -22px -22px 0;
    padding: 18px 22px;
    border-bottom-color: #073e7a;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(135deg, #082d63, #0b5f9e);
    color: #fff;
}

.app-modal[id^="create-"] > .app-modal-panel > .app-modal-header h2,
.app-modal[id^="edit-"] > .app-modal-panel > .app-modal-header h2,
.registration-create-modal > .app-modal-panel > .app-modal-header h2 {
    color: #fff;
}

.app-modal[id^="create-"] > .app-modal-panel > .app-modal-header .eyebrow,
.app-modal[id^="edit-"] > .app-modal-panel > .app-modal-header .eyebrow,
.registration-create-modal > .app-modal-panel > .app-modal-header .eyebrow {
    color: #69ead2;
}

.app-modal[id^="create-"] > .app-modal-panel > .app-modal-header .icon-button,
.app-modal[id^="edit-"] > .app-modal-panel > .app-modal-header .icon-button,
.registration-create-modal > .app-modal-panel > .app-modal-header .icon-button {
    border-color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.app-modal[id^="create-"] > .app-modal-panel > .app-modal-header .icon-button:hover,
.app-modal[id^="edit-"] > .app-modal-panel > .app-modal-header .icon-button:hover,
.registration-create-modal > .app-modal-panel > .app-modal-header .icon-button:hover {
    background: rgba(255, 255, 255, .22);
}

.app-modal[id^="create-"] .button-primary,
.app-modal[id^="edit-"] .button-primary,
.registration-create-modal .button-primary,
#pdv-product-lookup-modal .button-primary,
#pdv-customer-lookup-modal .button-primary,
#pdv-cash-movement-modal .button-primary,
#pdv-close-modal .button-primary,
#pdv-movements-modal .button-primary,
#pdv-shortcuts-modal .button-primary {
    border-color: #073e7a;
    background: linear-gradient(135deg, #082d63, #0b5f9e);
    color: #fff;
    box-shadow: 0 8px 18px rgba(8, 45, 99, .2);
}

.app-modal[id^="create-"] .button-primary:hover,
.app-modal[id^="edit-"] .button-primary:hover,
.registration-create-modal .button-primary:hover,
#pdv-product-lookup-modal .button-primary:hover,
#pdv-customer-lookup-modal .button-primary:hover,
#pdv-cash-movement-modal .button-primary:hover,
#pdv-close-modal .button-primary:hover,
#pdv-movements-modal .button-primary:hover,
#pdv-shortcuts-modal .button-primary:hover {
    border-color: #062f5e;
    background: linear-gradient(135deg, #062652, #084f86);
}

.pos-product-lookup-panel .pos-lookup-search {
    border-bottom: 1px solid var(--border);
    padding: 14px 18px;
}

.pos-product-lookup-panel [data-pdv-lookup-search],
.pos-customer-lookup-panel [data-pdv-customer-lookup-search] {
    color: var(--text);
    font-family: inherit;
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1.35;
}

.pos-product-lookup-panel .pos-lookup-selected-summary {
    font-size: 1.5rem;
    font-weight: 900;
    line-height: 1.1;
}

.pos-customer-lookup-panel .pos-product-lookup-body {
    padding: 18px 22px 22px;
}

.pos-customer-lookup-panel label {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
}

.pos-customer-lookup-panel [data-pdv-customer-lookup-search] {
    width: 100%;
}

.pos-customer-lookup-panel .pos-product-lookup-row {
    color: var(--text);
    font-family: inherit;
    font-size: .96rem;
}

.pos-customer-lookup-panel .pos-product-lookup-row strong {
    font-size: .98rem;
    font-weight: 900;
}

.pos-product-lookup-head,
.pos-product-lookup-row {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 120px 130px;
    gap: 10px;
    align-items: center;
}

.pos-product-lookup-head {
    border-bottom: 1px solid var(--border);
    padding: 10px 18px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.pos-product-lookup-grid {
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 0;
    min-height: 0;
    max-height: none;
    overflow: auto;
    padding-right: 0;
}

.pos-product-lookup-row {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--border);
    padding: 12px 18px;
    background: #fff;
    color: var(--text);
    text-align: left;
    cursor: pointer;
    font-size: .96rem;
}

.pos-product-lookup-row:hover {
    background: #eef8f6;
}

.pos-product-lookup-row.is-selected {
    background: #0b5f9e;
    color: #fff;
    box-shadow: inset 6px 0 0 #00c7a5, inset 0 0 0 2px #074d82;
    font-weight: 800;
}

.pos-product-lookup-row.is-selected strong,
.pos-product-lookup-row.is-selected span {
    color: #fff;
}

.pos-product-lookup-row strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text);
    font-size: .98rem;
}

.pos-terminal-traditional {
    grid-template-rows: 58px minmax(0, 1fr) 30px;
}

.pos-terminal-traditional > .pos-status-banner {
    display: none;
}

.pos-terminal-traditional .pos-topbar {
    position: relative;
    grid-template-columns: 170px minmax(0, 1fr) auto;
    min-height: 58px;
    padding: 6px 14px;
}

.pos-terminal-traditional .pos-topbar::after {
    content: "✓ CAIXA LIVRE";
    position: absolute;
    left: 50%;
    top: 50%;
    display: flex;
    align-items: center;
    gap: 12px;
    transform: translate(-50%, -50%);
    color: #08751d;
    font-size: clamp(1.4rem, 2.1vw, 2.1rem);
    font-weight: 950;
    text-transform: uppercase;
}

.pos-terminal-traditional .pos-brand {
    gap: 8px;
}

.pos-terminal-traditional .pos-brand .brand-mark {
    width: 36px;
    height: 36px;
    border-radius: 6px;
}

.pos-terminal-traditional .pos-context {
    display: flex;
    justify-content: flex-end;
}

.pos-terminal-traditional .pos-context > span:not(.pos-cash-pill) {
    display: none;
}

.pos-terminal-traditional .pos-cash-pill {
    min-height: 42px;
    border-color: transparent;
    background: transparent !important;
}

.pos-terminal-traditional .pos-user-actions {
    gap: 14px;
}

.pos-workspace-traditional {
    grid-template-columns: minmax(330px, 36%) minmax(0, 64%);
    gap: 8px;
    padding: 6px 8px 8px;
}

.pos-traditional-panel {
    grid-template-rows: minmax(0, 1fr) auto auto;
    gap: 8px;
    padding: 8px;
}

.pos-traditional-panel > div:first-child,
.pos-traditional-info,
.pos-traditional-last {
    display: none;
}

.pos-traditional-panel::before {
    content: "ORIZONSYS";
    display: grid;
    place-items: center;
    min-height: 0;
    border-bottom: 1px solid var(--border);
    color: #061b3d;
    font-size: clamp(2.6rem, 5vw, 5.2rem);
    font-weight: 950;
    letter-spacing: 0;
}

.pos-traditional-entry,
.pos-traditional-values {
    border: 1px solid rgba(22, 32, 29, .32);
    background: #fff;
}

.pos-traditional-entry {
    padding: 8px 10px 4px;
}

.pos-traditional-entry input {
    min-height: 44px;
    border-width: 1px;
    font-size: 1rem;
}

.pos-traditional-values {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
    border-top: 0;
    padding: 4px 10px 10px;
}

.pos-traditional-values::before {
    content: "Preço";
    display: grid;
    align-content: end;
    color: var(--muted);
    font-weight: 850;
}

.pos-traditional-values input {
    min-height: 42px;
    font-size: 1rem;
}

.pos-sale-panel-traditional {
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    padding: 8px 10px;
}

.pos-traditional-customer {
    display: grid;
    gap: 2px;
    border-bottom: 1px solid var(--border);
    padding: 4px 8px 8px;
    background: #f8fffb;
}

.pos-traditional-customer span {
    font-size: .78rem;
}

.pos-traditional-customer strong {
    font-size: 1.25rem;
    text-transform: uppercase;
}

.pos-traditional-total {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 22px;
    border-radius: 8px;
    padding: 10px 22px;
    background: linear-gradient(135deg, #fffaf2, #fff7ec);
}

.pos-traditional-total span {
    font-size: 1.2rem;
    font-weight: 900;
}

.pos-traditional-total strong {
    color: #16a34a;
    font-size: clamp(2.2rem, 3.8vw, 3.4rem);
    line-height: 1;
}

.pos-sale-panel-traditional .pos-cart-head,
.pos-sale-panel-traditional .pos-cart-line {
    grid-template-columns: 40px 120px minmax(0, 1fr) 78px 92px 108px;
}

.pos-sale-panel-traditional .pos-cart-lines {
    min-height: 0;
}

.pos-sale-panel-traditional .pos-total-box {
    display: none;
}

.pos-sale-panel-traditional::after {
    content: "COD. PRODUTO - NOME DO PRODUTO";
    border: 1px solid rgba(22, 32, 29, .7);
    padding: 8px 14px;
    background: #f8fffb;
    font-size: 1.1rem;
    font-weight: 900;
}

.pos-traditional-values::before,
.pos-sale-panel-traditional::after {
    content: none;
    display: none;
}

.pos-sale-panel-traditional {
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
}

.pos-sale-panel-traditional .pos-cart-lines {
    align-content: start;
}

.pos-current-product-line {
    display: block;
}

.pos-current-product-line input {
    width: 100%;
    border: 1px solid rgba(22, 32, 29, .7);
    border-radius: 0;
    padding: 8px 14px;
    background: #f8fffb;
    color: var(--text);
    font-size: 1.1rem;
    font-weight: 900;
}

.pos-sale-panel-traditional .pos-cart-select {
    min-width: 0;
    overflow: hidden;
}

.pos-sale-panel-traditional .pos-cart-product {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: var(--text);
    font-size: .98rem;
    font-weight: 900;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-sale-panel-traditional .pos-cart-code {
    min-width: 0;
    overflow: hidden;
    color: var(--text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-sale-panel-traditional .pos-cart-index,
.pos-sale-panel-traditional .pos-cart-quantity {
    color: var(--text);
    font-weight: 850;
}

.pos-sale-panel-traditional .pos-cart-quantity {
    text-align: center;
}

.pos-sale-panel-traditional .pos-cart-select strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-terminal-traditional .pos-topbar::after {
    content: "✓ CAIXA LIVRE";
}

.pos-terminal-traditional[data-pdv-status="busy"] .pos-topbar::after {
    content: "• CAIXA OCUPADO";
    color: #b45309;
}

.pos-sale-panel-traditional .pos-cart-line {
    min-width: 0;
    min-height: 34px;
    padding: 4px 10px;
}

.pos-sale-panel-traditional .pos-cart-lines {
    gap: 4px;
    padding: 5px;
}

.pos-sale-panel-traditional .pos-cart-select {
    width: 100%;
}

.pos-lookup-search {
    color: var(--muted);
    font-weight: 750;
}

.pos-payment-modal-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(1120px, calc(100vw - 34px));
    height: min(760px, calc(100vh - 34px));
    max-height: calc(100vh - 34px);
    padding: 0;
    overflow: hidden;
}

.pos-payment-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    background: linear-gradient(135deg, #12284f, #183866);
    color: #fff;
}

.pos-payment-modal-header .eyebrow,
.pos-payment-modal-header h2 {
    color: #fff;
}

.pos-payment-modal-header h2 {
    margin: 2px 0 0;
    font-size: 1.1rem;
    text-transform: uppercase;
}

.pos-payment-checkout {
    display: grid;
    grid-template-columns: minmax(260px, .34fr) minmax(0, 1fr);
    gap: 14px;
    min-height: 0;
    overflow: hidden;
    padding: 16px;
    background: #f6f8fb;
}

.pos-payment-summary,
.pos-payment-main {
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(22, 32, 29, .08);
}

.pos-payment-summary {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 14px;
    min-height: 0;
    padding: 16px;
}

.pos-payment-summary dl {
    display: grid;
    gap: 10px;
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}

.pos-payment-summary dl div,
.pos-payment-items span,
.pos-payment-meta span {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.pos-payment-summary dt,
.pos-payment-summary dd {
    margin: 0;
}

.pos-payment-summary dt,
.pos-payment-items em,
.pos-payment-meta strong {
    color: var(--muted);
    font-weight: 850;
}

.pos-payment-summary dd,
.pos-payment-items strong,
.pos-payment-meta em {
    color: var(--text);
    font-style: normal;
    font-weight: 850;
}

.pos-payment-summary .is-total {
    padding-top: 10px;
    border-top: 1px solid var(--border);
    color: #12284f;
    font-size: 1.05rem;
    font-weight: 950;
}

.pos-payment-items {
    display: grid;
    align-content: start;
    gap: 9px;
    min-height: 160px;
    overflow: auto;
}

.pos-payment-items strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-payment-meta {
    display: grid;
    gap: 10px;
    border-top: 1px solid var(--border);
    padding-top: 12px;
}

.pos-payment-main {
    display: grid;
    grid-template-rows: auto auto auto auto;
    align-content: start;
    gap: 14px;
    min-height: 0;
    overflow: auto;
    padding: 16px;
}

.pos-payment-total-card {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(160px, .6fr) minmax(180px, .7fr);
    gap: 16px;
    align-items: center;
    border: 1px solid #d8e0ea;
    border-radius: 8px;
    padding: 18px;
    background: linear-gradient(135deg, #fff, #f9fbff);
}

.pos-payment-total-card span,
.pos-payment-total-card label {
    color: var(--muted);
    font-weight: 900;
    text-transform: uppercase;
}

.pos-payment-total-card > * {
    min-width: 0;
}

.pos-payment-total-card strong {
    display: block;
    margin-top: 6px;
    color: #12284f;
    max-width: 100%;
    overflow: hidden;
    font-size: clamp(1.75rem, 3.1vw, 2.7rem);
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-payment-total-card > div:last-child {
    text-align: right;
}

.pos-payment-total-card input {
    width: 100%;
    margin-top: 8px;
    min-height: 48px;
    text-align: right;
    font-size: 1.45rem;
    font-weight: 850;
}

.pos-payment-methods {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.pos-payment-methods button {
    position: relative;
    display: grid;
    grid-template-rows: auto auto auto;
    gap: 6px;
    justify-items: center;
    align-items: center;
    min-height: 92px;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px;
    background: #fff;
    color: var(--text);
    cursor: pointer;
    font-weight: 900;
    text-align: center;
}

.pos-payment-methods button i {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 10px;
    background: #eef6f6;
    color: var(--primary);
    font-size: 1.35rem;
}

.pos-payment-methods button strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    font-size: .94rem;
}

.pos-payment-methods button small {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    border-radius: 6px;
    padding: 3px 8px;
    background: #eef2f7;
    color: #334155;
    font-size: .76rem;
    font-weight: 950;
}

.pos-payment-methods button.is-active {
    border-color: #2563eb;
    box-shadow: inset 0 0 0 2px rgba(37, 99, 235, .22);
    color: #123f8c;
}

.pos-payment-methods button.is-active i,
.pos-payment-methods button.is-active small {
    background: #dbeafe;
    color: #123f8c;
}

.pos-pix-box {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 14px;
    border: 1px solid #b7e5d4;
    border-radius: 8px;
    padding: 12px;
    background: #f2fff8;
}

.pos-pix-box[hidden] {
    display: none;
}

.pos-integrated-payment-box {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
}

.pos-integrated-payment-box[hidden],
.pos-integrated-payment-box [hidden] {
    display: none !important;
}

.pos-integrated-payment-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.pos-integrated-payment-fields label {
    display: grid;
    gap: 6px;
    color: #475569;
    font-weight: 800;
}

.pos-integrated-payment-fields select {
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    background: #fff;
    color: #0f172a;
    font: inherit;
}

.pos-integrated-payment-box > p {
    margin: 10px 0 0;
    color: #64748b;
    font-weight: 700;
}

.pos-integrated-payment-box.is-processing,
.pos-integrated-payment-box.is-approved {
    border-color: #0f8c7d;
}

.pos-integrated-payment-box.is-approved > p { color: #047857; }
.pos-integrated-payment-box.is-declined > p,
.pos-integrated-payment-box.is-cancelled > p { color: #b91c1c; }
.pos-integrated-payment-box.is-pending > p { color: #b45309; }

.pos-integrated-payment-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.pos-integrated-payment-actions button {
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid #0f8c7d;
    border-radius: 8px;
    background: #fff;
    color: #0f766e;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.pos-integrated-payment-actions button.is-danger {
    border-color: #dc2626;
    color: #b91c1c;
}

@media (max-width: 760px) {
    .pos-integrated-payment-fields {
        grid-template-columns: 1fr;
    }
}

.pos-pix-box strong,
.pos-pix-box span {
    display: block;
}

.pos-pix-box span {
    margin-top: 4px;
    color: var(--muted);
    line-height: 1.45;
}

.pos-pix-content {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
}

.pos-pix-content img {
    width: 120px;
    height: 120px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #fff;
}

.pos-pix-content textarea {
    min-height: 120px;
    resize: none;
    font-size: .85rem;
}

.pos-payment-extra {
    display: grid;
    grid-template-columns: minmax(220px, .95fr) 190px minmax(0, 1fr) 160px;
    gap: 14px;
}

.pos-payment-customer-field {
    position: relative;
}

.pos-payment-cpf-field {
    position: relative;
}

.pos-payment-cpf-field .pdv-lookup-results {
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 20;
}

.pos-payment-customer-field input[readonly] {
    background: #f8fbfa;
    color: var(--text);
    cursor: default;
}

.pos-payment-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    border-top: 1px solid var(--border);
    padding: 12px 18px;
    background: #fff;
    box-shadow: 0 -10px 20px rgba(15, 23, 42, .05);
}

.pos-payment-actions .button {
    min-height: 40px;
    min-width: 150px;
    padding: 8px 14px;
    font-size: .9rem;
}

.pos-payment-actions strong {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    margin-right: 7px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .2);
    font-size: .78rem;
}

.pos-cash-movement-panel {
    gap: 0;
    width: min(640px, calc(100vw - 32px));
    padding: 0;
    overflow: hidden;
}

.pos-cash-movement-panel .app-modal-header {
    width: 100%;
    margin: 0;
    border-radius: 8px 8px 0 0;
    padding: 18px 22px;
}

.pos-cash-movement-body {
    display: grid;
    gap: 14px;
    padding: 18px;
}

.pos-cash-movement-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pos-cash-movement-summary > div {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 11px 12px;
    background: #f8fbfa;
}

.pos-cash-movement-summary span,
.pos-cash-movement-form label {
    display: block;
    color: var(--muted);
    font-weight: 900;
}

.pos-cash-movement-summary strong {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-cash-movement-summary .is-result {
    background: #f1fbf8;
}

.pos-cash-movement-form {
    display: grid;
    gap: 13px;
}

.pos-cash-movement-form p {
    margin: 0;
    color: var(--muted);
}

.pos-cash-movement-grid {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(0, 1fr);
    gap: 12px;
}

.pos-cash-movement-form input,
.pos-cash-movement-form select,
.pos-cash-movement-form textarea {
    width: 100%;
    margin-top: 6px;
}

.pos-cash-movement-form input[data-pdv-cash-movement-amount] {
    min-height: 52px;
    text-align: right;
    font-size: 1.45rem;
    font-weight: 900;
}

.pos-cash-movement-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 4px;
}

.pos-cash-movement-actions .button {
    min-height: 46px;
}

.pos-cash-movement-actions strong {
    display: inline-grid;
    place-items: center;
    min-width: 44px;
    margin-right: 8px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .22);
}

.pos-close-panel {
    display: flex;
    overflow: hidden;
    flex-direction: column;
    width: min(860px, calc(100vw - 32px));
    max-height: min(86vh, 760px);
    gap: 0;
    padding: 0;
}

.pos-close-panel .app-modal-header {
    flex: 0 0 auto;
    padding: 18px 20px 14px;
}

.pos-close-form {
    display: flex;
    overflow: hidden;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.pos-close-scroll {
    display: grid;
    overflow: auto;
    gap: 14px;
    min-height: 0;
    padding: 18px;
}

.pos-close-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}

.pos-close-summary > div,
.pos-close-balance > div,
.pos-close-balance > label {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 12px;
    background: #f8fbfa;
}

.pos-close-summary span,
.pos-close-summary small,
.pos-close-balance span,
.pos-close-balance label,
.pos-close-form > label {
    display: block;
    color: var(--muted);
    font-weight: 900;
}

.pos-close-summary strong,
.pos-close-balance strong {
    display: block;
    margin-top: 5px;
    overflow: hidden;
    color: var(--text);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-close-summary small {
    margin-top: 4px;
    font-size: .78rem;
}

.pos-close-summary > div.is-negative,
.pos-close-summary > div.is-negative span,
.pos-close-summary > div.is-negative small,
.pos-close-summary > div.is-negative strong {
    color: #b42318;
}

.pos-close-balance {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, .9fr) minmax(0, .8fr);
    gap: 10px;
    align-items: stretch;
}

.pos-close-payment-summary {
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow-x: auto;
    background: #fff;
}

.pos-close-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-bottom: 1px solid var(--border);
    background: #f8fbfa;
}

.pos-close-section-title span {
    color: var(--primary-dark);
    font-weight: 950;
    text-transform: uppercase;
}

.pos-close-section-title strong {
    color: var(--muted);
}

.pos-close-payment-table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    table-layout: fixed;
}

.pos-close-payment-table th,
.pos-close-payment-table td {
    padding: 10px 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-close-payment-table th {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 950;
    text-align: left;
    text-transform: uppercase;
}

.pos-close-payment-table tbody tr {
    border-top: 1px solid var(--border);
}

.pos-close-payment-table tbody tr:nth-child(even) {
    background: #fbfdfc;
}

.pos-close-payment-table tfoot tr {
    border-top: 2px solid var(--border);
    background: #f8fbfa;
}

.pos-close-payment-table tfoot th {
    color: var(--text);
}

.pos-close-payment-table th:first-child,
.pos-close-payment-table td:first-child {
    width: 26%;
}

.pos-close-payment-table th:nth-child(2),
.pos-close-payment-table td:nth-child(2) {
    width: 12%;
}

.pos-close-payment-table th:not(:first-child),
.pos-close-payment-table td:not(:first-child) {
    text-align: right;
}

.pos-close-payment-table td strong,
.pos-close-payment-table tfoot strong {
    color: #001b4d;
    font-weight: 950;
}

.pos-close-balance input {
    width: 100%;
    margin-top: 6px;
    min-height: 46px;
    text-align: right;
    font-size: 1.25rem;
    font-weight: 900;
}

.pos-close-form textarea {
    width: 100%;
    margin-top: 6px;
    resize: vertical;
}

.pos-close-status {
    display: grid;
    gap: 4px;
    border: 1px solid #b8e7cb;
    border-radius: 8px;
    padding: 12px 14px;
    background: #edfff4;
    color: #08732f;
}

.pos-close-status[hidden] {
    display: none;
}

.pos-close-status.is-warning {
    border-color: #f7d38a;
    background: #fff8e6;
    color: #92400e;
}

.pos-close-status strong {
    font-weight: 950;
}

.pos-close-actions {
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 18px;
    border-top: 1px solid var(--border);
    background: #fff;
}

.pos-close-actions .button {
    min-height: 46px;
}

.pos-close-actions .button i {
    margin-right: 8px;
}

.pos-close-actions strong {
    display: inline-grid;
    place-items: center;
    min-width: 34px;
    margin-right: 8px;
    border-radius: 5px;
    background: rgba(255, 255, 255, .22);
}

.pos-movements-panel {
    display: flex;
    overflow: hidden;
    flex-direction: column;
    width: min(980px, calc(100vw - 32px));
    max-height: min(86vh, 780px);
    gap: 0;
    padding: 0;
}

.pos-movements-panel .app-modal-header {
    flex: 0 0 auto;
    padding: 18px 20px 14px;
}

.pos-movements-body {
    display: grid;
    overflow: visible;
    flex: 1 1 auto;
    gap: 14px;
    min-height: 0;
    padding: 18px;
}

.pos-movements-section {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
}

.pos-movements-table {
    width: 100%;
}

.pos-movements-scroll {
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 240px;
}

.pos-movements-head,
.pos-movements-row {
    display: grid;
    grid-template-columns: minmax(190px, 1.3fr) 110px 120px 105px 105px 124px;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
}

.pos-movements-head-cash,
.pos-movements-row-cash {
    grid-template-columns: 105px 115px 140px minmax(160px, 1fr) 100px 52px;
}

.pos-movements-head {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 950;
    text-transform: uppercase;
}

.pos-movements-row {
    border-top: 1px solid var(--border);
}

.pos-movements-row > span,
.pos-movements-row > strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-movements-row small {
    display: block;
    overflow: hidden;
    color: var(--muted);
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-movements-row > strong,
.pos-movements-head span:nth-last-child(2),
.pos-movements-head span:last-child {
    text-align: right;
}

.pos-movements-row .button-small {
    min-height: 34px;
    padding: 7px 10px;
}

.pos-movements-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.pos-movements-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--primary);
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, transform .15s ease;
}

.pos-movements-icon-btn:hover {
    transform: translateY(-1px);
    border-color: var(--primary);
    background: #f0f9fa;
}

.pos-movements-icon-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
}

.pos-movements-empty {
    padding: 18px;
    color: var(--muted);
}

.pos-cancel-sale-panel {
    width: min(520px, calc(100vw - 32px));
}

.pos-cancel-sale-form {
    display: grid;
    gap: 14px;
}

.pos-cancel-sale-summary {
    display: grid;
    gap: 5px;
    border: 1px solid #f7d38a;
    border-radius: 8px;
    padding: 12px;
    background: #fff8e6;
    color: #92400e;
}

.pos-cancel-sale-form textarea {
    width: 100%;
    margin-top: 6px;
    resize: vertical;
}

@media (max-width: 1180px) {
    body.pos-shell {
        overflow: auto;
    }

    .pos-terminal {
        grid-template-rows: auto minmax(0, 1fr) auto;
    }

    .pos-topbar,
    .pos-workspace,
    .pos-workspace-traditional,
    .pos-open-card {
        grid-template-columns: 1fr;
    }

    .pos-context {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pos-payment-modal-panel {
        height: auto;
        max-height: calc(100vh - 24px);
        overflow: auto;
    }

    .pos-payment-checkout {
        height: auto;
    }

    .pos-payment-checkout,
    .pos-payment-total-card,
    .pos-payment-extra,
    .pos-pix-box,
    .pos-cash-movement-grid,
    .pos-close-balance,
    .pos-movements-head,
    .pos-movements-row,
    .pos-movements-head-cash,
    .pos-movements-row-cash {
        grid-template-columns: 1fr;
    }

    .pos-movements-row > strong,
    .pos-movements-head span:nth-last-child(2),
    .pos-movements-head span:last-child {
        text-align: left;
    }

    .pos-payment-methods {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pdv-workspace {
        grid-template-columns: 1fr;
    }

    .pdv-cart {
        position: static;
    }
}

@media (max-width: 760px) {
    .pos-context,
    .pos-payment-grid,
    .shortcut-help-grid,
    .pos-search-bar,
    .pos-customer-row,
    .pos-cash-movement-summary,
    .pos-close-summary {
        grid-template-columns: 1fr;
    }

    .pos-workspace {
        padding: 10px;
    }

    .pos-product-grid {
        grid-template-columns: 1fr;
    }

    .pos-cart-head {
        display: none;
    }

    .pos-cart-line {
        grid-template-columns: 1fr;
    }

    .pdv-open-panel,
    .pdv-statusbar,
    .pdv-search-row,
    .pdv-cart header,
    .pdv-recent {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .pdv-open-panel,
    .pdv-statusbar,
    .pdv-recent {
        display: grid;
    }

    .pdv-status-metrics,
    .pdv-recent-list {
        justify-content: stretch;
    }

    .pdv-status-metrics span,
    .pdv-recent-list span {
        width: 100%;
    }

    .pdv-product-grid {
        grid-template-columns: 1fr;
        min-height: 220px;
    }

    .pdv-cart-line {
        grid-template-columns: 1fr 70px 76px 32px;
    }

    .pdv-cart-line > strong {
        grid-column: 3 / 4;
    }
}

@media print {
    @page {
        size: A4 landscape;
        margin: 10mm;
    }

    * {
        box-shadow: none !important;
        text-shadow: none !important;
    }

    html,
    body {
        width: auto;
        min-height: auto;
        background: #fff !important;
        color: #000;
        font-size: 10px;
    }

    .sidebar,
    .topbar,
    .datatable-filters,
    .toast,
    .sweet-alert,
    .undo-alert {
        display: none !important;
    }

    .app-shell {
        display: block;
    }

    .content {
        max-width: none;
        margin: 0;
        padding: 0;
        gap: 8px;
    }

    .data-panel {
        border: 0;
        border-radius: 0;
        background: #fff;
        box-shadow: none;
        overflow: visible;
    }

    .financial-report-panel {
        display: block;
    }

    .report-print-header {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 16px;
        border-bottom: 2px solid #111;
        margin-bottom: 8px;
        padding-bottom: 7px;
    }

    .report-print-header span,
    .report-print-header strong {
        display: block;
        font-size: 10px;
        text-transform: uppercase;
    }

    .report-print-header h1 {
        margin: 2px 0 0;
        font-size: 18px;
    }

    .report-print-filters {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px 10px;
        margin-bottom: 8px;
        border-bottom: 1px solid #cfd7d4;
        padding-bottom: 7px;
        font-size: 9px;
    }

    .report-summary-grid,
    .metric-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px;
        padding: 0;
        margin-bottom: 8px;
    }

    .metric-card {
        break-inside: avoid;
        border: 1px solid #cfd7d4;
        border-radius: 0;
        padding: 7px 8px;
    }

    .metric-card span,
    .metric-card small {
        color: #333;
        font-size: 8px;
        line-height: 1.25;
    }

    .metric-card strong {
        margin-top: 2px;
        color: #000 !important;
        font-size: 14px;
    }

    .cash-flow-section {
        break-inside: avoid;
        display: block;
        border-top: 1px solid #cfd7d4;
        padding: 8px 0 0;
        margin-top: 8px;
    }

    .section-title-inline {
        align-items: flex-end;
        margin-bottom: 5px;
    }

    .section-title-inline h2 {
        margin: 0;
        font-size: 13px;
    }

    .section-title-inline small,
    .eyebrow {
        color: #444;
        font-size: 8px;
    }

    .compact-table-wrap {
        border: 0;
        border-radius: 0;
        overflow: visible;
    }

    .compact-history-table,
    .compact-account-table,
    .report-detail-table {
        width: 100%;
        min-width: 0;
        table-layout: fixed;
        border-collapse: collapse;
    }

    .compact-history-table th,
    .compact-history-table td {
        border: 1px solid #d7ddda;
        padding: 3px 4px;
        color: #000;
        font-size: 8px;
        line-height: 1.2;
        vertical-align: top;
        word-break: break-word;
    }

    .compact-history-table th {
        background: #eef2f1 !important;
        color: #111;
        font-size: 7px;
    }

    .text-positive,
    .text-negative {
        color: #000 !important;
    }

    .is-overdue-row td {
        background: #fff4e8 !important;
    }
}

.fiscal-transmission-panel {
    display: grid;
    gap: 16px;
}

.fiscal-summary-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
    padding: 12px 0;
}

.fiscal-queue-summary-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.fiscal-queue-summary-grid .fiscal-metric-card {
    padding: 12px 14px;
}

.fiscal-queue-summary-grid .fiscal-metric-card span,
.fiscal-queue-summary-grid .fiscal-metric-card small {
    font-size: 13px;
}

.fiscal-queue-summary-grid .fiscal-metric-card strong {
    font-size: 28px;
}

.fiscal-metric-card {
    position: relative;
    min-width: 0;
    padding: 14px 16px;
    overflow: hidden;
}

.fiscal-metric-card span,
.fiscal-metric-card small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fiscal-metric-card strong {
    margin-top: 6px;
    font-size: 26px;
}

.fiscal-metric-card.is-warning {
    background: #fffaf0;
}

.fiscal-metric-card.is-warning strong {
    color: #9a6200;
}

.fiscal-metric-card.is-success {
    background: #f0fbf5;
}

.fiscal-metric-card.is-success strong {
    color: #087f52;
}

.fiscal-metric-card.is-danger {
    background: #fff3f3;
}

.fiscal-metric-card.is-danger strong {
    color: #b42323;
}

.reconciliation-summary-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    width: 100%;
    padding: 20px 0;
}

.finance-summary-grid {
    width: 100%;
    gap: 16px;
    padding: 20px 0;
}

.cash-session-summary-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    padding: 14px 0 12px;
}

.cash-session-summary-grid .reconciliation-metric-card {
    min-height: 94px;
    gap: 4px;
    padding: 12px 20px 14px;
}

.cash-session-summary-grid .reconciliation-metric-card span {
    font-size: 14px;
    line-height: 1.2;
}

.cash-session-summary-grid .reconciliation-metric-card strong {
    margin-top: 2px;
    font-size: 20px;
    line-height: 1;
}

.cash-session-summary-grid .reconciliation-metric-card small {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.2;
}

.cash-session-filters {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    align-items: end;
    gap: 10px 14px;
    padding: 14px 18px 16px;
}

.cash-session-filters label {
    gap: 5px;
}

.cash-session-filters input,
.cash-session-filters select {
    min-height: 40px;
}

.cash-session-filters .button {
    width: 100%;
    min-height: 40px;
}

.financial-report-summary-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.financial-report-panel .reconciliation-metric-card {
    min-height: 112px;
    gap: 6px;
    padding: 14px 22px 16px;
}

.financial-report-panel .reconciliation-metric-card span {
    font-size: 14px;
    line-height: 1.25;
}

.financial-report-panel .reconciliation-metric-card strong {
    margin-top: 4px;
    font-size: 20px;
    line-height: 1;
}

.financial-report-panel .reconciliation-metric-card small {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.25;
}

.financial-report-attention-grid {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
}

.financial-report-attention-grid .reconciliation-metric-card {
    min-height: 96px;
    padding: 14px 18px;
}

.financial-report-attention-grid .reconciliation-metric-card strong {
    font-size: 28px;
}

.bank-reconciliation-panel .reconciliation-metric-card {
    min-height: 112px;
    gap: 6px;
    padding: 14px 22px 16px;
}

.bank-reconciliation-panel .reconciliation-metric-card span {
    font-size: 14px;
    line-height: 1.25;
}

.bank-reconciliation-panel .reconciliation-metric-card strong {
    margin-top: 4px;
    font-size: 22px;
    line-height: 1;
}

.bank-reconciliation-panel .reconciliation-metric-card small {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.25;
}

.bank-reconciliation-filters {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
    gap: 10px 14px;
    padding: 14px 16px 16px;
}

.bank-reconciliation-filters > label:nth-of-type(-n+3) {
    grid-column: span 4;
}

.bank-reconciliation-filters > label:nth-of-type(n+4),
.bank-reconciliation-filters > .button {
    grid-column: span 3;
}

.bank-reconciliation-filters > .button {
    width: 100%;
}

.financial-audit-filters {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
    gap: 10px 14px;
    padding: 14px 16px 16px;
}

.financial-audit-filters > label:nth-of-type(-n+3) {
    grid-column: span 4;
}

.financial-audit-filters > label:nth-of-type(n+4),
.financial-audit-filters > .button {
    grid-column: span 3;
}

.financial-audit-filters > .button {
    width: 100%;
}

.bank-reconciliation-table {
    table-layout: fixed;
}

.bank-reconciliation-table th,
.bank-reconciliation-table td {
    padding: 8px 10px;
    font-size: 13px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.bank-reconciliation-table .control-column {
    width: 38px;
    padding-right: 6px;
    padding-left: 6px;
}

.bank-reconciliation-table .bulk-select-column {
    width: 42px;
    min-width: 42px;
    padding-right: 6px;
    padding-left: 6px;
}

.bank-reconciliation-table th:nth-child(3),
.bank-reconciliation-table td:nth-child(3) {
    width: 92px;
}

.bank-reconciliation-table th:nth-child(4),
.bank-reconciliation-table td:nth-child(4) {
    width: 150px;
}

.bank-reconciliation-table th:nth-child(5),
.bank-reconciliation-table td:nth-child(5) {
    width: 88px;
}

.bank-reconciliation-table th:nth-child(7),
.bank-reconciliation-table td:nth-child(7) {
    width: 180px;
}

.bank-reconciliation-table th:nth-child(8),
.bank-reconciliation-table td:nth-child(8) {
    width: 88px;
}

.bank-reconciliation-table th:nth-child(9),
.bank-reconciliation-table td:nth-child(9) {
    width: 108px;
}

.bank-reconciliation-table .actions-column {
    width: 66px;
    min-width: 66px;
    padding-right: 8px;
    padding-left: 8px;
    text-align: center;
}

.bank-reconciliation-table .row-actions {
    justify-content: center;
    min-width: 0;
    gap: 5px;
}

.bank-reconciliation-table .status-pill {
    padding-right: 10px;
    padding-left: 10px;
    white-space: normal;
}

.bank-reconciliation-table td[data-label="Descricao"] strong,
.bank-reconciliation-table td[data-label="Descricao"] small,
.bank-reconciliation-table td[data-label="Conta"] strong,
.bank-reconciliation-table td[data-label="Conta"] small {
    max-width: 100%;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
}

.bank-reconciliation-table td[data-label="Descricao"] strong {
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.bank-reconciliation-table td[data-label="Descricao"] small,
.bank-reconciliation-table td[data-label="Conta"] strong,
.bank-reconciliation-table td[data-label="Conta"] small {
    -webkit-line-clamp: 1;
    line-clamp: 1;
}

.reconciliation-bulk-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.bulk-mode-toggle,
.reconciliation-bulk-form {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bulk-mode-toggle {
    color: var(--ink);
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
    user-select: none;
}

.bulk-mode-toggle input {
    width: 18px;
    height: 18px;
    accent-color: var(--primary);
}

.reconciliation-bulk-form {
    justify-content: flex-end;
    margin-left: auto;
}

.bulk-selection-counter {
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.reconciliation-bulk-form .button[hidden] {
    display: none;
}

.bulk-select-column {
    display: none;
    width: 54px;
    min-width: 54px;
    text-align: center !important;
}

.bank-reconciliation-panel.is-bulk-reconcile-mode .bulk-select-column {
    display: table-cell;
}

.bulk-row-check {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0 auto;
    cursor: pointer;
}

.bulk-row-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.bulk-row-check span {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 2px solid var(--line);
    border-radius: 6px;
    background: #fff;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.bulk-row-check input:checked + span,
.bulk-row-check input:indeterminate + span {
    border-color: var(--primary);
    background: var(--primary);
    box-shadow: 0 0 0 3px rgba(0, 128, 120, .12);
}

.bulk-row-check input:checked + span::after {
    content: "✓";
    line-height: 1;
}

.bulk-row-check input:indeterminate + span::after {
    content: "–";
    line-height: 1;
}

.bulk-row-check-placeholder {
    color: var(--muted);
    font-weight: 900;
}

.financial-report-filters {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: end;
}

.financial-report-filters > label {
    align-self: end;
}

.financial-report-filters .report-section-picker {
    grid-column: 1 / -1;
    align-self: stretch;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
}

.financial-report-filters .report-section-picker .eyebrow {
    display: block;
    margin-bottom: 10px;
}

.financial-report-filters .report-section-picker .form-grid {
    grid-template-columns: repeat(4, minmax(160px, 1fr));
    gap: 8px 16px;
}

.financial-report-filters .report-section-picker .check-row {
    display: flex;
    align-items: center;
    min-height: 28px;
    gap: 8px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
}

.financial-report-filters .report-section-picker .check-row input {
    flex: 0 0 auto;
    width: 16px;
    min-height: 16px;
}

.financial-report-filters .report-section-picker .field-hint {
    display: block;
    margin-top: 10px;
}

.reconciliation-metric-card {
    position: relative;
    min-width: 0;
    min-height: 150px;
    padding: 22px 24px;
    overflow: hidden;
}

.reconciliation-metric-card span,
.reconciliation-metric-card small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reconciliation-metric-card span {
    font-size: 15px;
}

.reconciliation-metric-card strong {
    margin-top: 12px;
    font-size: 22px;
    line-height: 1.18;
    word-break: normal;
}

.reconciliation-metric-card small {
    margin-top: 10px;
    font-size: 13px;
}

.reconciliation-metric-card.is-pending {
    background: #fffaf0;
}

.reconciliation-metric-card.is-pending strong {
    color: #9a6200;
}

.reconciliation-metric-card.is-reconciled {
    background: #f0fbf5;
}

.reconciliation-metric-card.is-reconciled strong {
    color: #087f52;
}

.reconciliation-metric-card.is-out strong {
    color: #0f6c89;
}

.reconciliation-metric-card.is-danger {
    background: #fff3f3;
}

.reconciliation-metric-card.is-danger strong {
    color: #b42323;
}

.fiscal-settings-warning {
    border: 1px solid #f2c46d;
    border-radius: 8px;
    background: #fffaf0;
    color: #614000;
    font-weight: 700;
    line-height: 1.45;
    padding: 12px 14px;
}

.company-profile-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.company-logo-preview {
    flex: 0 0 auto;
    width: 170px;
    height: 120px;
    min-height: 120px;
    margin: 0;
    aspect-ratio: auto;
    background: #fff;
}

.company-logo-preview img.company-profile-logo {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain !important;
    object-position: center;
    padding: 8px;
}

.company-logo-preview .site-banner-preview-remove {
    right: 6px;
    bottom: 6px;
    width: 26px;
    height: 26px;
    min-height: 26px;
    border-radius: 50%;
    padding: 0;
    font-size: 0;
    line-height: 1;
}

.company-logo-preview .site-banner-preview-remove::before {
    content: "x";
    font-size: 15px;
    font-weight: 900;
}

.company-profile-form {
    position: static;
    gap: 18px;
    padding: 0;
}

.company-profile-form .data-panel {
    padding: 22px;
    overflow: visible;
}

.company-profile-form .section-title-inline {
    margin-bottom: 18px;
}

.company-profile-form .section-title-inline h2 {
    margin-top: 4px;
}

.company-profile-form .form-grid {
    gap: 18px 16px;
}

.company-profile-form label {
    display: grid;
    gap: 8px;
}

.company-profile-form label.settings-check,
.company-profile-form label.settings-switch,
.company-profile-form label.settings-check-inline {
    display: flex !important;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
    cursor: pointer;
}

.company-profile-form label.settings-check input[type="hidden"],
.company-profile-form label.settings-switch input[type="hidden"],
.company-profile-form label.settings-check-inline input[type="hidden"] {
    display: none;
}

.company-profile-form label.settings-check input[type="checkbox"],
.company-profile-form label.settings-switch input[type="checkbox"],
.company-profile-form label.settings-check-inline input[type="checkbox"] {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 0;
}

.company-profile-form label.settings-check > span,
.company-profile-form label.settings-switch > span,
.company-profile-form label.settings-check-inline > span {
    flex: 1 1 auto;
    line-height: 1.35;
}

.company-profile-form .settings-check-inline {
    min-height: 42px;
    align-self: end;
}

.decimal-stepper {
    position: relative;
    display: block;
}

.decimal-stepper > input {
    width: 100%;
    padding-right: 34px;
}

.decimal-stepper-actions {
    position: absolute;
    top: 1px;
    right: 1px;
    bottom: 1px;
    width: 28px;
    display: flex;
    flex-direction: column;
    border-left: 1px solid #d9e3e1;
    border-radius: 0 6px 6px 0;
    overflow: hidden;
}

.decimal-stepper-actions button {
    flex: 1 1 50%;
    border: 0;
    margin: 0;
    padding: 0;
    background: #f3f7f6;
    color: #5d6b69;
    font-size: 9px;
    line-height: 1;
    cursor: pointer;
}

.decimal-stepper-actions button:hover {
    background: #e7efed;
}

.decimal-stepper-actions button + button {
    border-top: 1px solid #d9e3e1;
}

.decimal-stepper-actions button::before {
    content: '';
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
}

.decimal-stepper-actions [data-decimal-step-up]::before {
    border-bottom: 5px solid currentColor;
}

.decimal-stepper-actions [data-decimal-step-down]::before {
    border-top: 5px solid currentColor;
}

.delivery-neighborhood-editor {
    margin-top: 14px;
    display: grid;
    gap: 10px;
}

.delivery-neighborhood-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.delivery-neighborhood-rows {
    display: grid;
    gap: 10px;
}

.delivery-neighborhood-row {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) minmax(120px, 0.8fr) auto auto;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid #d9e3e1;
    border-radius: 6px;
    background: #f9fbfb;
}

.delivery-neighborhood-row > .button {
    min-height: 42px;
    padding-inline: 12px;
}

@media (max-width: 900px) {
    .delivery-neighborhood-row {
        grid-template-columns: 1fr;
    }
}

.company-profile-form .fiscal-settings-warning {
    margin-top: 18px;
    padding: 16px 18px;
}

.product-fiscal-defaults,
.product-fiscal-filters {
    margin-bottom: 14px;
}

.product-fiscal-defaults {
    grid-template-columns: repeat(5, minmax(110px, 1fr));
}

.product-fiscal-defaults .field-hint {
    grid-column: 1 / -1;
}

.field-hint.is-ok {
    color: #047857;
}

.field-hint.is-error {
    color: #b91c1c;
}

.product-fiscal-filters {
    grid-template-columns: minmax(180px, 260px) minmax(130px, 180px);
}

.fiscal-transmission-filters {
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    align-items: end;
}

.fiscal-transmission-filters .filter-wide {
    grid-column: span 3;
}

.fiscal-transmission-table {
    min-width: 1040px;
}

.fiscal-transmission-table td small,
.fiscal-transmission-table td strong {
    display: block;
}

.fiscal-transmission-table td small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.35;
}

.fiscal-transmission-table .row-actions {
    flex-wrap: nowrap;
}

.fiscal-transmission-table th:last-child,
.fiscal-transmission-table td:last-child {
    text-align: right;
}

.fiscal-transmission-table td:last-child .row-actions {
    justify-content: flex-end;
}

.fiscal-transmission-help {
    box-shadow: none;
}

.fiscal-settings-shell {
    display: grid;
    gap: 14px;
}

.fiscal-settings-subtabs {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fbfb;
    overflow-x: auto;
}

.fiscal-settings-subtabs button {
    flex: 0 0 auto;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--ink);
    padding: 10px 14px;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
}

.fiscal-settings-subtabs button:hover,
.fiscal-settings-subtabs button.is-active {
    color: var(--navy);
    background: #dfeeed;
    box-shadow: inset 0 0 0 2px rgba(11, 122, 117, .18);
}

.fiscal-settings-form {
    display: grid;
    gap: 14px;
}

.fiscal-settings-panel {
    display: grid;
    gap: 16px;
    padding: 22px;
    overflow: visible;
}

.fiscal-settings-shell.is-tabbed [data-fiscal-settings-panel] {
    display: none;
}

.fiscal-settings-shell.is-tabbed [data-fiscal-settings-panel].is-active {
    display: grid;
}

.fiscal-settings-actions {
    display: flex;
    justify-content: flex-end;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
}

.pdv-settings-shell {
    display: grid;
    gap: 14px;
}

.pdv-settings-impact-block {
    display: grid;
    gap: 14px;
    margin-top: 8px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

.pdv-settings-impact-head {
    display: grid;
    gap: 6px;
}

.pdv-settings-impact-head h3 {
    margin: 0;
    font-size: 20px;
}

.pdv-settings-impact-head .section-description {
    margin: 0;
}

.pdv-settings-impact-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pdv-settings-impact-item {
    display: grid;
    gap: 6px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
}

.pdv-settings-impact-item strong {
    color: var(--navy);
    font-size: 14px;
}

.pdv-settings-impact-item p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.pdv-settings-impact-item.is-muted {
    background: #f7faf9;
}

@media (max-width: 760px) {
    .pdv-settings-impact-list {
        grid-template-columns: 1fr;
    }
}

.fiscal-settings-help {
    margin-bottom: 0;
}

.fiscal-document-model-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.fiscal-document-model-grid .check-row {
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcfc;
}

.fiscal-certificate-panel {
    display: grid;
    gap: 18px;
    overflow: visible;
    padding: 22px;
}

.fiscal-certificate-panel .section-title-inline {
    align-items: flex-start;
    border-bottom: 1px solid var(--line);
    padding-bottom: 14px;
}

.fiscal-certificate-panel .data-details-grid {
    margin-bottom: 0;
}

.fiscal-certificate-panel .data-details-grid span {
    padding: 12px 14px;
}

.fiscal-certificate-panel .fiscal-certificate-form {
    position: static;
    top: auto;
    box-shadow: none;
}

.fiscal-certificate-panel .row-actions {
    display: flex;
    justify-content: flex-end;
    width: 100%;
}

.fiscal-certificate-hint {
    margin-right: auto;
    color: var(--muted);
    font-size: 13px;
    font-weight: 800;
}

.fiscal-certificate-preview {
    display: grid;
    gap: 4px;
}

.fiscal-sefaz-status-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fbfb;
}

.fiscal-sefaz-status-compact {
    margin-bottom: 16px;
}

.fiscal-sefaz-status-card h3 {
    margin: 2px 0 4px;
    font-size: 18px;
}

.fiscal-sefaz-status-card p,
.fiscal-sefaz-status-card small {
    display: block;
    margin: 0;
}

.fiscal-sefaz-status-card p {
    font-weight: 900;
}

.fiscal-sefaz-status-card small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
}

.fiscal-sefaz-status-card.is-online {
    background: #eefbf5;
}

.fiscal-sefaz-status-card.is-warning,
.fiscal-sefaz-status-card.is-pending {
    background: #fff8e8;
}

.fiscal-sefaz-status-card.is-offline {
    background: #fff1f1;
}

@media (max-width: 1100px) {
    .fiscal-summary-grid,
    .reconciliation-summary-grid,
    .cash-session-summary-grid,
    .financial-report-summary-grid,
    .financial-report-attention-grid {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }

    .cash-flow-page-panel .cash-flow-summary {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }

    .fiscal-transmission-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .financial-report-filters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bank-reconciliation-filters > label:nth-of-type(-n+3),
    .bank-reconciliation-filters > label:nth-of-type(n+4),
    .bank-reconciliation-filters > .button,
    .financial-audit-filters > label:nth-of-type(-n+3),
    .financial-audit-filters > label:nth-of-type(n+4),
    .financial-audit-filters > .button {
        grid-column: span 6;
    }

    .cash-session-filters {
        grid-template-columns: repeat(2, minmax(180px, 1fr));
    }

    .financial-report-filters .report-section-picker .form-grid {
        grid-template-columns: repeat(2, minmax(160px, 1fr));
    }

    .fiscal-transmission-filters .filter-wide {
        grid-column: span 2;
    }

    .fiscal-sefaz-status-card {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 720px) {
    .reconciliation-summary-grid,
    .cash-session-summary-grid,
    .financial-report-summary-grid,
    .financial-report-attention-grid {
        grid-template-columns: 1fr;
    }

    .cash-flow-page-panel .cash-flow-summary {
        grid-template-columns: 1fr;
    }

    .reconciliation-metric-card {
        min-height: 0;
    }

    .financial-report-filters {
        grid-template-columns: 1fr;
    }

    .bank-reconciliation-filters {
        grid-template-columns: 1fr;
    }

    .financial-audit-filters {
        grid-template-columns: 1fr;
    }

    .bank-reconciliation-filters > label:nth-of-type(-n+3),
    .bank-reconciliation-filters > label:nth-of-type(n+4),
    .bank-reconciliation-filters > .button,
    .financial-audit-filters > label:nth-of-type(-n+3),
    .financial-audit-filters > label:nth-of-type(n+4),
    .financial-audit-filters > .button {
        grid-column: 1;
    }

    .cash-session-filters {
        grid-template-columns: 1fr;
    }

    .financial-report-filters .report-section-picker .form-grid {
        grid-template-columns: 1fr;
    }

    .reconciliation-bulk-toolbar,
    .reconciliation-bulk-form {
        align-items: stretch;
        flex-direction: column;
    }

    .reconciliation-bulk-form {
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 1450px) {
    .fiscal-transmission-table {
        min-width: 0;
        table-layout: fixed;
    }

    .fiscal-transmission-table th,
    .fiscal-transmission-table td {
        padding: 8px 10px;
        font-size: 13px;
        line-height: 1.25;
    }

    .fiscal-transmission-table th {
        font-size: 10px;
    }

    .fiscal-transmission-table .status-pill {
        padding: 7px 10px;
        white-space: normal;
    }

    .fiscal-transmission-table .action-button {
        width: 34px;
        height: 34px;
        min-width: 34px;
        font-size: 15px;
    }

    .fiscal-transmission-table .row-actions {
        gap: 6px;
    }

    .fiscal-queue-table th:nth-child(1),
    .fiscal-queue-table td:nth-child(1) {
        width: 150px;
    }

    .fiscal-queue-table th:nth-child(2),
    .fiscal-queue-table td:nth-child(2) {
        width: 210px;
    }

    .fiscal-queue-table th:nth-child(3),
    .fiscal-queue-table td:nth-child(3) {
        width: 110px;
    }

    .fiscal-queue-table th:nth-child(4),
    .fiscal-queue-table td:nth-child(4) {
        width: 90px;
    }

    .fiscal-queue-table th:nth-child(5),
    .fiscal-queue-table td:nth-child(5) {
        width: 130px;
    }

    .fiscal-queue-table th:nth-child(6),
    .fiscal-queue-table td:nth-child(6) {
        width: 110px;
    }

    .fiscal-queue-table th:nth-child(8),
    .fiscal-queue-table td:nth-child(8) {
        width: 126px;
    }

    .fiscal-documents-table th:nth-child(1),
    .fiscal-documents-table td:nth-child(1) {
        width: 140px;
    }

    .fiscal-documents-table th:nth-child(2),
    .fiscal-documents-table td:nth-child(2) {
        width: 92px;
    }

    .fiscal-documents-table th:nth-child(3),
    .fiscal-documents-table td:nth-child(3) {
        width: 145px;
    }

    .fiscal-documents-table th:nth-child(4),
    .fiscal-documents-table td:nth-child(4) {
        width: 100px;
    }

    .fiscal-documents-table th:nth-child(5),
    .fiscal-documents-table td:nth-child(5) {
        width: 86px;
    }

    .fiscal-documents-table th:nth-child(6),
    .fiscal-documents-table td:nth-child(6),
    .fiscal-documents-table th:nth-child(7),
    .fiscal-documents-table td:nth-child(7) {
        width: 135px;
    }

    .fiscal-documents-table th:nth-child(9),
    .fiscal-documents-table td:nth-child(9) {
        width: 154px;
    }
}

@media (max-width: 620px) {
    .responsive-datatable [data-priority="2"] {
        display: none;
    }

    .responsive-datatable th,
    .responsive-datatable td {
        padding: 10px;
    }
}

.platform-settings-form {
    display: grid;
    gap: 22px;
    padding: 24px;
}

.platform-settings-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.platform-settings-tabs {
    display: flex;
    gap: 8px;
    flex: 1 1 420px;
    overflow-x: auto;
    padding: 6px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
}

.platform-settings-tabs button {
    display: grid;
    gap: 2px;
    min-width: 220px;
    min-height: 58px;
    padding: 10px 16px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--text);
    text-align: left;
    cursor: pointer;
}

.platform-settings-tabs button strong {
    font-size: 14px;
    font-weight: 900;
}

.platform-settings-tabs button span {
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
}

.platform-settings-tabs button:hover,
.platform-settings-tabs button.is-active {
    border-color: rgba(11, 122, 117, .25);
    background: #e8f3f1;
}

.platform-settings-tabs button.is-active strong {
    color: var(--primary-dark);
}

.platform-settings-shell {
    display: grid;
    gap: 22px;
}

.platform-settings-shell.is-tabbed [data-platform-settings-panel] {
    display: none;
}

.platform-settings-shell.is-tabbed [data-platform-settings-panel].is-active {
    display: grid;
    gap: 22px;
}

.platform-settings-panel .section-description {
    margin: 0;
}

.notification-preference-list {
    display: grid;
    gap: 12px;
}

.notification-preference-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-soft);
}

.notification-preference-copy {
    display: grid;
    gap: 4px;
}

.notification-preference-copy small {
    color: var(--muted);
    font-weight: 600;
    line-height: 1.45;
}

.notification-preference-item input[type="checkbox"] {
    margin-top: 2px;
}

.notification-preference-override {
    color: var(--accent, #c58b22);
}

.notification-preference-notice {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.status-pill.is-muted {
    background: rgba(100, 116, 139, .14);
    color: #475569;
}

.platform-settings-form .span-2 {
    grid-column: span 2;
}

.platform-assets-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.platform-asset-card {
    display: grid;
    gap: 14px;
    align-content: start;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
}

.platform-asset-card h3 {
    margin: 4px 0 6px;
}

.platform-asset-card p {
    margin: 0;
    color: var(--muted);
    font-weight: 700;
}

.platform-asset-preview {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 112px;
    border: 1px dashed var(--border);
    border-radius: 8px;
    background: var(--surface);
}

.platform-asset-preview img {
    max-width: 220px;
    max-height: 96px;
    object-fit: contain;
}

.platform-logo-preview span {
    display: grid;
    width: 64px;
    height: 64px;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--primary), #123d39);
    color: #fff;
    font-size: 1.4rem;
    font-weight: 900;
}

.platform-favicon-preview {
    min-height: 96px;
}

.platform-asset-preview img {
    display: block;
    max-width: 100%;
    max-height: 96px;
    width: auto;
    height: auto;
}

.platform-general-preview img {
    max-height: 120px;
}

.platform-asset-preview.has-preview img {
    max-height: 120px;
}

.platform-favicon-preview img {
    max-width: 56px;
    max-height: 56px;
}

.platform-preview-panel {
    margin-top: 0;
}

.platform-billing-section {
    display: grid;
    gap: 18px;
}

.platform-gateway-tabs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    padding: 8px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
}

.platform-gateway-tabs button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--text);
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    text-align: center;
}

.platform-gateway-tabs button:hover,
.platform-gateway-tabs button.is-active {
    border-color: rgba(11, 122, 117, .25);
    background: #e8f3f1;
    color: var(--primary-dark);
}

.platform-gateway-panels {
    display: grid;
}

.platform-gateway-panel {
    display: none;
    min-height: 360px;
}

.platform-gateway-panel.is-active {
    display: grid;
}

.platform-preview-panel h2 {
    margin-bottom: 6px;
}

.platform-preview-panel p {
    margin: 0;
    color: var(--muted);
    font-weight: 700;
}

.platform-preview-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.platform-preview-row span {
    display: inline-flex;
    padding: 8px 12px;
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
    font-weight: 800;
}

@media (max-width: 860px) {
    .platform-settings-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    .platform-settings-tabs {
        flex-basis: auto;
    }

    .platform-settings-tabs button {
        min-width: 0;
        flex: 1 1 180px;
    }

    .platform-settings-form .span-2 {
        grid-column: span 1;
    }

    .platform-assets-grid {
        grid-template-columns: 1fr;
    }

    .platform-gateway-tabs {
        grid-template-columns: 1fr;
    }
}

/* PDV-Pratico - comanda profissional */
.pratico-pos.pratico-comanda {
    --pc-bg: #071118;
    --pc-panel: #0e1b24;
    --pc-panel-2: #13232e;
    --pc-line: #263946;
    --pc-text: #f8fafc;
    --pc-muted: #9fb1bc;
    --pc-green: #22c55e;
    --pc-red: #ef233c;
    --pc-orange: #f59e0b;
    --pc-blue: #0b65c8;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    background: radial-gradient(circle at 60% 0, #132b38, var(--pc-bg) 55%);
    color: var(--pc-text);
    display: grid;
    grid-template-rows: 64px minmax(0, 1fr) 34px;
    overflow: hidden;
    box-sizing: border-box;
}

.pratico-pos.pratico-comanda *,
.pratico-pos.pratico-comanda *:before,
.pratico-pos.pratico-comanda *:after {
    box-sizing: border-box;
}

.pratico-comanda button,
.pratico-comanda input,
.pratico-comanda select,
.pratico-comanda textarea {
    font: inherit;
}

.pratico-comanda button {
    cursor: pointer;
}

.pratico-comanda-topbar {
    height: 64px;
    background: #071118;
    border-bottom: 1px solid var(--pc-line);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 16px;
    min-width: 0;
}

.pratico-comanda-logo {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #0b766d;
    display: grid;
    place-items: center;
    font-weight: 900;
    font-size: 17px;
    flex: 0 0 auto;
}

.pratico-comanda-brand {
    width: 190px;
    flex: 0 0 auto;
}

.pratico-comanda-brand strong {
    display: block;
    font-size: 20px;
    line-height: 1;
}

.pratico-comanda-brand span,
.pratico-comanda-title h2,
.pratico-comanda-panel > h2 {
    color: #64f06a;
    font-weight: 900;
    font-size: 13px;
    text-transform: uppercase;
}

.pratico-comanda-nav {
    height: 100%;
    display: flex;
    gap: 4px;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
}

.pratico-comanda-nav button,
.pratico-comanda-nav a {
    min-width: 96px;
    border: 0;
    border-bottom: 4px solid transparent;
    background: transparent;
    color: #fff;
    font-weight: 900;
    text-transform: uppercase;
    display: grid;
    place-items: center;
    text-decoration: none;
}

.pratico-comanda-nav button:hover,
.pratico-comanda-nav button.is-active,
.pratico-comanda-nav a:hover {
    color: #6bfa70;
    border-bottom-color: var(--pc-green);
}

.pratico-comanda-status {
    display: flex;
    gap: 10px;
    align-items: center;
    flex: 0 0 auto;
}

.pratico-comanda-status span,
.pratico-comanda-status small {
    border: 1px solid var(--pc-line);
    background: var(--pc-panel-2);
    border-radius: 999px;
    padding: 7px 10px;
    font-weight: 900;
    white-space: nowrap;
}

.pratico-comanda-status .is-green { color: #54ef71; }
.pratico-comanda-status .is-orange { color: #fbbf24; }

.pratico-comanda-main {
    display: grid;
    grid-template-columns: clamp(230px, 14vw, 310px) minmax(0, 1fr) clamp(260px, 16vw, 330px);
    gap: 8px;
    padding: 8px;
    min-height: 0;
    overflow: hidden;
}

.pratico-comanda-panel {
    background: rgba(14, 27, 36, .98);
    border: 1px solid var(--pc-line);
    border-radius: 10px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .28);
    min-height: 0;
}

.pratico-comanda-sidebar,
.pratico-comanda-actions {
    padding: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.pratico-comanda-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
    flex: 0 0 auto;
}

.pratico-comanda-title h2,
.pratico-comanda-panel > h2 {
    margin: 0;
}

.pratico-comanda-title button,
.pratico-comanda-btn,
.pratico-comanda-paybox button {
    border: 1px solid var(--pc-line);
    background: var(--pc-panel-2);
    color: #fff;
    border-radius: 8px;
    padding: 12px 14px;
    font-weight: 900;
}

.pratico-comanda-title .is-green,
.pratico-comanda-btn.is-green,
.pratico-comanda-paybox button.is-green {
    background: linear-gradient(#25b547, #0f7c2e);
    border-color: #157c31;
}

.pratico-comanda-btn.is-blue,
.pratico-comanda-paybox button.is-blue {
    background: var(--pc-blue);
    border-color: var(--pc-blue);
}

.pratico-comanda-paybox button.is-red {
    background: #dc2626;
    border-color: #dc2626;
}

.pratico-comanda-search {
    width: 100%;
    height: 36px;
    background: var(--pc-bg);
    border: 1px solid var(--pc-line);
    border-radius: 8px;
    color: #fff;
    padding: 0 12px;
    margin-bottom: 8px;
    flex: 0 0 auto;
}

.pratico-comanda-list {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 8px;
    flex: 1;
    overflow-y: auto;
    min-height: 0;
    max-height: 100%;
    padding-right: 4px;
    overscroll-behavior: contain;
}

.pratico-comanda-card {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    border: 1px solid var(--pc-line);
    background: var(--pc-panel-2);
    border-radius: 9px;
    padding: 10px;
    color: #fff;
    text-align: left;
    text-decoration: none;
}

.pratico-comanda-card.is-active,
.pratico-comanda-card:hover {
    border-color: #60a5fa;
    background: #0f2536;
}

.pratico-comanda-card strong {
    display: block;
    font-size: 18px;
    margin-bottom: 4px;
}

.pratico-comanda-card span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--pc-muted);
    font-size: 12px;
    margin: 4px 0;
}

.pratico-comanda-card b {
    color: #fff;
}

.pratico-comanda-empty {
    border: 1px dashed var(--pc-line);
    border-radius: 9px;
    padding: 14px;
    color: var(--pc-muted);
    background: rgba(255, 255, 255, .025);
}

.pratico-comanda-empty strong,
.pratico-comanda-empty span {
    display: block;
}

.pratico-comanda-empty strong {
    color: #fff;
    margin-bottom: 4px;
}

.pratico-comanda-badge,
.pratico-comanda-state {
    display: inline-block;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.pratico-comanda-badge.is-green,
.pratico-comanda-state.is-pronto {
    background: #103d1d;
    color: #64fa79;
}

.pratico-comanda-badge.is-orange,
.pratico-comanda-state.is-pendente {
    background: #452d0a;
    color: #fbbf24;
}

.pratico-comanda-badge.is-blue,
.pratico-comanda-state.is-producao {
    background: #092d55;
    color: #67b6ff;
}

.pratico-comanda-badge.is-red,
.pratico-comanda-state.is-cancelado {
    background: #4a1117;
    color: #ff7b86;
}

.pratico-comanda-state.is-entregue {
    background: #233042;
    color: #d8e3ea;
}

.pratico-comanda-center {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.pratico-comanda-head {
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 8px;
}

.pratico-comanda-head h1 {
    margin: 0 0 6px;
    font-size: 24px;
}

.pratico-comanda-code {
    display: block;
    max-width: 420px;
    margin: -2px 0 8px;
    overflow: hidden;
    color: var(--pc-muted);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pratico-comanda-delete {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    border: 1px solid rgba(248, 113, 113, .34);
    border-radius: 999px;
    background: rgba(127, 29, 29, .32);
    color: #fecaca;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 900;
}

.pratico-comanda-head > strong {
    color: #fbbf24;
    font-size: 15px;
}

.pratico-comanda-info {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 8px;
}

.pratico-comanda-info div {
    background: var(--pc-panel);
    border: 1px solid var(--pc-line);
    border-radius: 8px;
    padding: 9px;
}

.pratico-comanda-info span,
.pratico-comanda-totals span,
.pratico-comanda-paybox span,
.pratico-comanda-timeline small {
    color: var(--pc-muted);
}

.pratico-comanda-info span,
.pratico-comanda-totals span {
    display: block;
    font-size: 12px;
}

.pratico-comanda-items {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
}

.pratico-comanda-tabs {
    display: flex;
    border-bottom: 1px solid var(--pc-line);
    background: #081219;
    overflow-x: auto;
}

.pratico-comanda-tabs button {
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #fff;
    padding: 11px 16px;
    font-weight: 900;
    white-space: nowrap;
}

.pratico-comanda-tabs button.is-active {
    color: #64fa70;
    border-bottom-color: var(--pc-green);
}

.pratico-comanda-tab {
    display: none;
    flex: 1;
    overflow: auto;
    min-height: 0;
    overscroll-behavior: contain;
}

.pratico-comanda-tab.is-active {
    display: block;
}

.pratico-comanda table {
    width: 100%;
    border-collapse: collapse;
}

.pratico-comanda th,
.pratico-comanda td {
    padding: 10px 14px;
    border-bottom: 1px solid #1f3440;
    text-align: left;
    vertical-align: middle;
}

.pratico-comanda th {
    color: #b8c8cf;
    font-size: 12px;
    text-transform: uppercase;
}

.pratico-comanda td small {
    display: block;
    color: #ff6873;
    margin-top: 4px;
}

.pratico-comanda .is-num {
    text-align: right;
}

.pratico-comanda-icon {
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 16px;
    padding: 6px;
}

.pratico-comanda-locked {
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border-radius: 8px;
    color: #95a6b8;
    background: rgba(148, 163, 184, 0.12);
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.pratico-comanda-totals {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
    border-top: 1px solid var(--pc-line);
    background: #0b1820;
}

.pratico-comanda-totals div {
    border: 1px solid var(--pc-line);
    border-radius: 8px;
    background: var(--pc-bg);
    padding: 8px;
    text-align: center;
}

.pratico-comanda-totals b {
    display: block;
    font-size: 17px;
}

.pratico-comanda-totals .is-grand b {
    color: #64fa70;
    font-size: 22px;
}

.pratico-comanda-quick {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 8px;
}

.pratico-comanda-quick button {
    min-height: 58px;
    background: var(--pc-panel-2);
    border: 1px solid var(--pc-line);
    color: #fff;
    border-radius: 8px;
    font-weight: 900;
    display: grid;
    place-items: center;
    gap: 5px;
}

.pratico-comanda-quick i {
    font-size: 18px;
}

.pratico-comanda-actions-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    max-height: 100%;
    padding-right: 4px;
    overscroll-behavior: contain;
}

.pratico-comanda-paybox {
    margin-top: 8px;
    background: var(--pc-bg);
    border: 1px solid var(--pc-line);
    border-radius: 10px;
    padding: 10px;
}

.pratico-comanda-paybox h3 {
    margin: 0 0 6px;
}

.pratico-comanda-paybox p {
    display: flex;
    justify-content: space-between;
    line-height: 1.75;
    margin: 0;
}

.pratico-comanda-paybox .is-big {
    color: #64fa70;
    border-top: 1px dashed var(--pc-line);
    padding-top: 8px;
    margin-top: 6px;
    font-size: 19px;
    font-weight: 900;
}

.pratico-comanda-paybox button {
    width: 100%;
    min-height: 34px;
    margin-top: 7px;
    text-transform: uppercase;
    padding: 8px 12px;
}

.pratico-comanda-summary {
    flex: 0 0 auto;
    margin-top: 8px;
}

.pratico-comanda-splitbox {
    margin-bottom: 2px;
}

.pratico-comanda-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-top: 8px;
}

.pratico-comanda-split span {
    background: var(--pc-panel-2);
    border: 1px solid var(--pc-line);
    border-radius: 8px;
    padding: 7px;
}

.pratico-comanda-split b {
    display: block;
    color: #fff;
}

.pratico-comanda-kanban {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    padding: 16px;
}

.pratico-comanda-kanban section,
.pratico-comanda-note {
    background: var(--pc-bg);
    border: 1px solid var(--pc-line);
    border-radius: 8px;
}

.pratico-comanda-kanban h3 {
    margin: 0;
    padding: 12px;
    text-align: center;
}

.pratico-comanda-kanban .is-pending h3 { background: #d99a00; }
.pratico-comanda-kanban .is-doing h3 { background: var(--pc-blue); }
.pratico-comanda-kanban .is-ready h3 { background: #168821; }
.pratico-comanda-kanban .is-done h3 { background: #4b5563; }

.pratico-comanda-kanban div {
    margin: 10px;
    padding: 10px;
    background: var(--pc-panel-2);
    border-radius: 7px;
}

.pratico-comanda-timeline,
.pratico-comanda-tab .pratico-comanda-btn,
.pratico-comanda-note {
    margin: 16px;
}

.pratico-comanda-timeline div {
    border-left: 2px solid #2b4656;
    padding: 0 0 18px 18px;
    position: relative;
}

.pratico-comanda-timeline div:before {
    content: "";
    position: absolute;
    left: -7px;
    top: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--pc-green);
}

.pratico-comanda-timeline small {
    display: block;
    margin-top: 4px;
}

.pratico-comanda-note {
    padding: 14px;
}

.pratico-comanda-footer {
    border-top: 1px solid var(--pc-line);
    background: var(--pc-bg);
    color: var(--pc-muted);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 14px;
    font-size: 12px;
}

@media (max-width: 1280px) {
    .pratico-comanda-main {
        grid-template-columns: 300px minmax(0, 1fr) 320px;
    }

    .pratico-comanda-info,
    .pratico-comanda-totals {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .pratico-pos.pratico-comanda {
        overflow: auto;
        grid-template-rows: auto auto auto;
    }

    .pratico-comanda-topbar {
        height: auto;
        min-height: 82px;
        flex-wrap: wrap;
        padding: 12px 16px;
    }

    .pratico-comanda-brand {
        width: auto;
    }

    .pratico-comanda-main {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .pratico-comanda-sidebar,
    .pratico-comanda-actions {
        display: block;
        overflow: visible;
    }

    .pratico-comanda-list,
    .pratico-comanda-actions-scroll {
        overflow: visible;
    }

    .pratico-comanda-kanban {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .pratico-comanda-nav {
        order: 4;
        width: 100%;
        flex: 0 0 100%;
    }

    .pratico-comanda-info,
    .pratico-comanda-totals,
    .pratico-comanda-quick,
    .pratico-comanda-split,
    .pratico-comanda-kanban {
        grid-template-columns: 1fr;
    }

    .pratico-comanda-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Restaurante KDS / cozinha */
.kds-page {
    --kds-bg: #061019;
    --kds-panel: #0d1b26;
    --kds-panel-2: #112636;
    --kds-line: #203746;
    --kds-text: #f8fafc;
    --kds-muted: #9eb0bc;
    --kds-green: #22c55e;
    --kds-red: #dc2626;
    --kds-yellow: #d99a00;
    --kds-blue: #0b65c8;
    height: 100vh;
    background: radial-gradient(circle at top, #132b3a, var(--kds-bg) 48%, #02070c);
    color: var(--kds-text);
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    overflow: hidden;
}

.kds-page button,
.kds-page input,
.kds-page select {
    font: inherit;
}

.kds-topbar {
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--kds-line);
    background: rgba(6, 16, 25, .94);
}

.kds-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 280px;
}

.kds-logo {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #08776d;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.kds-brand strong {
    display: block;
    font-size: 24px;
    line-height: 1;
}

.kds-brand span,
.kds-card small,
.kds-card-meta {
    color: var(--kds-muted);
}

.kds-filters {
    display: flex;
    gap: 8px;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
}

.kds-filters button,
.kds-back {
    min-height: 42px;
    border: 1px solid var(--kds-line);
    border-radius: 10px;
    background: #0b1823;
    color: #fff;
    font-weight: 900;
    padding: 0 14px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
}

.kds-filters button.is-active,
.kds-back {
    border-color: var(--kds-green);
    color: var(--kds-green);
}

.kds-status {
    text-align: right;
    border-left: 1px solid var(--kds-line);
    padding-left: 16px;
}

.kds-status span {
    display: block;
    font-size: 24px;
    font-weight: 900;
}

.kds-status small {
    color: var(--kds-muted);
}

.kds-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 220px 220px;
    gap: 10px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--kds-line);
}

.kds-toolbar input,
.kds-toolbar select {
    min-height: 44px;
    border: 1px solid var(--kds-line);
    border-radius: 10px;
    background: #0b1823;
    color: #fff;
    padding: 0 14px;
}

.kds-board {
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(240px, 1fr));
    gap: 12px;
    padding: 12px;
    overflow: hidden;
}

.kds-column {
    min-height: 0;
    background: rgba(10, 24, 35, .76);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.kds-column > header {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
}

.kds-column h2 {
    margin: 0;
    font-size: 18px;
}

.kds-column > header span {
    min-width: 34px;
    height: 34px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    display: grid;
    place-items: center;
    font-weight: 900;
}

.kds-column.is-pending > header { background: #b77900; }
.kds-column.is-production > header { background: #0b65c8; }
.kds-column.is-ready > header { background: #0f8a35; }
.kds-column.is-delivered > header { background: #334155; }

.kds-column-scroll {
    overflow: auto;
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 10px;
}

.kds-card,
.kds-empty {
    border: 1px solid var(--kds-line);
    background: linear-gradient(180deg, rgba(18, 35, 49, .98), rgba(10, 24, 35, .98));
    border-radius: 10px;
    padding: 14px;
}

.kds-card-head,
.kds-card-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.kds-card-head strong {
    display: block;
    font-size: 20px;
}

.kds-card-head time {
    color: #9bd0ff;
    font-weight: 900;
    text-align: right;
}

.kds-card-head time small {
    display: block;
    color: #7dd3fc;
}

.kds-card h3 {
    margin: 12px 0 8px;
    font-size: 17px;
}

.kds-order-meta {
    margin: 10px 0 8px;
    color: #cbd5e1;
    line-height: 1.45;
}

.kds-items {
    margin: 10px 0 14px;
    padding: 0 0 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    list-style: none;
    display: grid;
    gap: 7px;
}

.kds-items li {
    display: grid;
    gap: 2px;
    padding-left: 16px;
    position: relative;
}

.kds-items li::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: #60a5fa;
    position: absolute;
    left: 0;
    top: .7em;
}

.kds-items span {
    font-weight: 800;
}

.kds-items small {
    color: #fecaca;
}

.kds-note {
    margin: 0 0 10px;
    border: 1px solid rgba(239, 68, 68, .22);
    border-radius: 8px;
    background: rgba(239, 68, 68, .12);
    color: #fecaca;
    padding: 8px;
}

.kds-card button {
    width: 100%;
    min-height: 38px;
    margin-top: 12px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 8px;
    background: var(--kds-panel-2);
    color: #fff;
    font-weight: 900;
}

.kds-empty {
    color: var(--kds-muted);
    text-align: center;
}

@media (max-width: 1280px) {
    .kds-board {
        grid-template-columns: repeat(2, minmax(260px, 1fr));
        overflow: auto;
    }
}

@media (max-width: 760px) {
    .kds-page {
        height: auto;
        min-height: 100vh;
        overflow: auto;
    }

    .kds-topbar,
    .kds-filters {
        flex-wrap: wrap;
    }

    .kds-brand,
    .kds-status,
    .kds-back {
        width: 100%;
    }

    .kds-status {
        text-align: left;
        border-left: 0;
        padding-left: 0;
    }

    .kds-toolbar,
    .kds-board {
        grid-template-columns: 1fr;
    }

    .kds-board {
        overflow: visible;
    }
}

/* KDS profissional - comanda como agrupador e producao por item */
.kds-pro {
    --kds-bg: #06111b;
    --kds-panel: #0d1d2a;
    --kds-panel-2: #102536;
    --kds-line: #21394a;
    --kds-text: #f8fafc;
    --kds-muted: #9fb2c1;
    --kds-orange: #c77d00;
    --kds-blue: #075fd0;
    --kds-green: #0da043;
    --kds-purple: #6f31c7;
    --kds-cyan: #07849b;
    height: 100vh;
    overflow: hidden;
    grid-template-rows: auto minmax(0, 1fr) auto;
    background: radial-gradient(circle at top, #102a3c, #06111b 55%, #03080d);
}

.kds-top {
    min-height: 72px;
    display: flex;
    align-items: center;
    gap: 22px;
    padding: 0 18px;
    border-bottom: 1px solid var(--kds-line);
    background: #07131e;
}

.kds-logo-block {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 220px;
}

.kds-menu-button {
    width: 42px;
    height: 42px;
    border: 1px solid #315065;
    border-radius: 10px;
    background: #0d1d2a;
    color: #fff;
}

.kds-logo-block strong {
    display: block;
    font-size: 22px;
    line-height: 1;
}

.kds-logo-block span {
    color: #22c55e;
    font-weight: 900;
    text-transform: uppercase;
}

.kds-main-nav {
    display: flex;
    align-items: center;
    gap: 8px;
}

.kds-main-nav a {
    min-height: 72px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 12px;
    color: #fff;
    text-decoration: none;
    font-weight: 900;
    border-bottom: 3px solid transparent;
}

.kds-main-nav a.is-active {
    color: #22c55e;
    border-bottom-color: #22c55e;
}

.kds-live-status {
    margin-left: auto;
    color: #cbd5e1;
    font-weight: 800;
}

.kds-live-status i {
    color: #22c55e;
    font-size: 10px;
}

.kds-user {
    min-width: 160px;
    text-align: right;
}

.kds-user strong,
.kds-user small {
    display: block;
}

.kds-user small {
    color: var(--kds-muted);
}

.kds-workspace {
    min-height: 0;
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    transition: grid-template-columns .2s ease;
}

.kds-workspace.has-side-open {
    grid-template-columns: 360px minmax(0, 1fr);
}

.kds-detail-panel {
    position: relative;
    min-height: 0;
    overflow: auto;
    padding: 18px 16px;
    border-right: 1px solid var(--kds-line);
    background: linear-gradient(#0b1d2b, #07131e);
}

.kds-detail-panel.is-collapsed {
    overflow: hidden;
}

.kds-side-close {
    width: 50px;
    height: 50px;
    border: 1px solid #547086;
    border-radius: 50%;
    background: #0d1d2a;
    color: #fff;
    font-size: 22px;
}

.kds-side-empty {
    margin-top: 18px;
    color: #dbeafe;
    text-align: center;
    font-weight: 900;
}

.kds-side-empty span {
    display: block;
    margin-top: 8px;
    color: var(--kds-muted);
    font-weight: 700;
}

.kds-detail-panel.is-collapsed .kds-side-content {
    display: none;
}

.kds-side-content h2 {
    margin: 12px 0 4px;
    font-size: 28px;
}

.kds-side-content h3 {
    margin: 18px 0 10px;
    color: #22c55e;
    font-size: 14px;
    text-transform: uppercase;
}

.kds-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 7px;
    background: #0b65c8;
    color: #fff;
    font-weight: 900;
}

.kds-side-info,
.kds-side-summary,
.kds-timeline {
    display: grid;
    gap: 10px;
    color: #dbeafe;
}

.kds-side-summary {
    margin: 18px 0;
    padding: 14px 0;
    border-top: 1px solid var(--kds-line);
    border-bottom: 1px solid var(--kds-line);
}

.kds-side-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.kds-dot {
    width: 12px;
    height: 12px;
    display: inline-block;
    margin-right: 8px;
    border-radius: 999px;
    vertical-align: middle;
}

.kds-dot.wait { background: #94a3b8; }
.kds-dot.doing { background: #f59e0b; }
.kds-dot.ok { background: #22c55e; }
.kds-dot.cancel { background: #ef4444; }

.kds-timeline {
    padding-left: 18px;
    border-left: 2px solid #22c55e;
}

.kds-timeline div {
    position: relative;
}

.kds-timeline div::before {
    content: "";
    position: absolute;
    left: -25px;
    top: 3px;
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: #22c55e;
}

.kds-timeline b,
.kds-timeline em,
.kds-timeline small {
    display: block;
}

.kds-timeline-entry {
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid rgba(34, 197, 94, .22);
    border-radius: 8px;
    background: rgba(7, 19, 29, .45);
}

.kds-timeline-entry b,
.kds-timeline-entry em {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    overflow-wrap: anywhere;
}

.kds-timeline-entry b {
    -webkit-line-clamp: 2;
}

.kds-timeline-entry em {
    -webkit-line-clamp: 2;
    color: #93c5fd;
    font-style: normal;
    font-size: .9rem;
}

.kds-timeline small {
    color: #cbd5e1;
}

.kds-board-pro {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(260px, 1fr));
    align-content: start;
    gap: 10px;
    padding: 14px;
    overflow: auto;
}

.kds-stage {
    min-height: 0;
    display: flex;
    flex-direction: column;
    border-left: 1px solid var(--kds-line);
    border-right: 1px solid var(--kds-line);
    background: rgba(7, 19, 30, .62);
}

.kds-stage > header {
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 18px;
    border-radius: 8px 8px 0 0;
}

.kds-stage h2 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 19px;
}

.kds-stage > header span {
    min-width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.16);
    font-weight: 900;
}

.kds-stage.pending > header { background: linear-gradient(90deg, #bf7600, #a86600); }
.kds-stage.prod > header { background: linear-gradient(90deg, #075fd0, #064ca7); }
.kds-stage.ready > header { background: linear-gradient(90deg, #0da043, #087a32); }
.kds-stage.ship > header { background: linear-gradient(90deg, #6f31c7, #57249f); }
.kds-stage.done > header { background: linear-gradient(90deg, #07849b, #075f72); }

.kds-stage-scroll {
    min-height: 0;
    padding: 12px;
    display: grid;
    align-content: start;
    gap: 12px;
    overflow: auto;
}

.kds-order-card,
.kds-empty {
    border: 1px solid var(--kds-line);
    border-radius: 10px;
    background: linear-gradient(180deg, #102536, #0b1a27);
    box-shadow: 0 16px 40px rgba(0,0,0,.20);
}

.kds-order-card {
    padding: 15px;
    min-width: 0;
}

.kds-card-head,
.kds-card-foot,
.kds-progress > div {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.kds-card-head h3 {
    margin: 0 0 6px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 21px;
}

.kds-card-head small,
.kds-meta,
.kds-item-row em,
.kds-card-foot {
    color: #c8d4df;
}

.kds-card-head time {
    text-align: right;
    color: #9bd0ff;
    font-weight: 900;
}

.kds-card-head time small {
    display: block;
    color: #7dd3fc;
    font-size: 12px;
}

.kds-meta {
    margin: 11px 0 13px;
    line-height: 1.5;
}

.kds-item-list {
    display: grid;
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--kds-line);
}

.kds-item-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 9px;
    border-radius: 8px;
    background: rgba(13, 29, 42, .92);
}

.kds-item-row > div {
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

.kds-item-row b,
.kds-item-row small,
.kds-item-row em {
    display: block;
}

.kds-item-row small {
    color: #fecaca;
}

.kds-item-icon {
    display: grid;
    place-items: center;
}

.kds-item-row.is-pendente .kds-item-icon { color: #94a3b8; }
.kds-item-row.is-producao .kds-item-icon { color: #f59e0b; }
.kds-item-row.is-pronto .kds-item-icon { color: #22c55e; }
.kds-item-row.is-entregue .kds-item-icon { color: #a78bfa; }

.kds-item-action {
    min-width: 124px;
    display: grid;
    gap: 5px;
}

.kds-item-action form {
    min-width: 0;
}

.kds-item-action span {
    text-align: right;
    color: #22c55e;
    font-weight: 900;
}

.kds-item-action button,
.kds-detail-button {
    width: 100%;
    min-height: 36px;
    border: 1px solid var(--kds-line);
    border-radius: 8px;
    background: #112b3e;
    color: #fff;
    font-weight: 900;
}

.kds-item-action button.orange { background: #b77400; border-color: #b77400; }
.kds-item-action button.green { background: #0da043; border-color: #0da043; }
.kds-item-action button.purple { background: #6f31c7; border-color: #6f31c7; }
.kds-item-action button.outline { background: transparent; border-color: #6f31c7; color: #c084fc; }

.kds-card-foot {
    margin-top: 12px;
    font-weight: 900;
}

.kds-progress {
    margin-top: 12px;
}

.kds-progress > div {
    margin-bottom: 7px;
    font-weight: 900;
}

.kds-progress > span {
    display: block;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: #334155;
}

.kds-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #22c55e;
}

.kds-detail-button {
    margin-top: 12px;
    background: transparent;
}

.kds-complete-form {
    margin-top: 10px;
}

.kds-complete-button {
    width: 100%;
    min-height: 40px;
    border: 1px solid #07849b;
    border-radius: 8px;
    background: #07849b;
    color: #fff;
    font-weight: 900;
}

.kds-empty {
    padding: 22px;
    display: grid;
    place-items: center;
    gap: 8px;
    color: var(--kds-muted);
    text-align: center;
}

.kds-legend {
    height: 54px;
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 0 22px;
    border-top: 1px solid var(--kds-line);
    background: rgba(13,29,42,.92);
    color: #dbeafe;
}

@media (max-width: 1380px) {
    .kds-board-pro {
        grid-template-columns: repeat(3, minmax(260px, 1fr));
    }
}

@media (min-width: 981px) and (max-width: 1500px) {
    .kds-workspace.has-side-open {
        grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
    }

    .kds-detail-panel {
        padding: 14px;
    }

    .kds-detail-panel h1 {
        font-size: 28px;
    }

    .kds-detail-back {
        width: 54px;
        height: 54px;
    }

    .kds-board-pro {
        grid-template-columns: repeat(5, minmax(330px, 360px));
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
    }

    .kds-stage {
        min-width: 330px;
        scroll-snap-align: start;
    }

    .kds-stage > header {
        min-height: 54px;
        padding: 0 14px;
    }

    .kds-stage h2 {
        font-size: 18px;
    }

    .kds-order-card {
        padding: 13px;
    }

    .kds-card-head h3 {
        font-size: 19px;
    }

    .kds-item-row {
        grid-template-columns: 22px minmax(0, 1fr);
        align-items: start;
    }

    .kds-item-row > div:not(.kds-item-action) {
        grid-column: 2;
    }

    .kds-item-action {
        grid-column: 2;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
    }

    .kds-item-action span {
        text-align: left;
        flex: 0 0 auto;
    }

    .kds-item-action button {
        min-height: 34px;
        padding: 0 10px;
        white-space: normal;
        width: auto;
        min-width: 132px;
    }
}

@media (max-width: 980px) {
    .kds-pro {
        height: auto;
        min-height: 100vh;
        overflow: auto;
    }

    .kds-top {
        flex-wrap: wrap;
        height: auto;
        padding: 12px;
    }

    .kds-logo-block,
    .kds-live-status,
    .kds-user,
    .kds-back {
        width: 100%;
        text-align: left;
    }

    .kds-main-nav {
        width: 100%;
        overflow: auto;
    }

    .kds-main-nav a {
        min-height: 44px;
    }

    .kds-workspace,
    .kds-workspace.has-side-open {
        grid-template-columns: 1fr;
    }

    .kds-detail-panel {
        display: none;
    }

    .kds-board-pro {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .kds-stage {
        min-height: 420px;
    }

    .kds-legend {
        flex-wrap: wrap;
        height: auto;
        min-height: 54px;
        padding: 12px;
    }
}

/* PDV-Agile - layout fiel ao mockup de restaurante */
.agile-mock {
    --am-bg: #061018;
    --am-panel: #0b1c28;
    --am-card: #102737;
    --am-line: #244052;
    --am-text: #f8fbff;
    --am-muted: #9fb2c3;
    --am-green: #20c85a;
    --am-blue: #1473d2;
    --am-orange: #d88900;
    --am-red: #da2b2b;
    height: 100vh;
    min-height: 720px;
    display: grid;
    grid-template-rows: 62px minmax(0, 1fr);
    overflow: hidden;
    background: var(--am-bg);
    color: var(--am-text);
}

.agile-mock button,
.agile-mock a,
.agile-mock input,
.agile-mock select,
.agile-mock textarea {
    font-family: inherit;
}

.agile-mock-topbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--am-line);
    background: #07131b;
}

.agile-mock-brand,
.agile-mock-nav,
.agile-mock-operator {
    display: flex;
    align-items: center;
}

.agile-mock-brand {
    gap: 10px;
}

.agile-mock-brand span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #0b8d83;
    color: #fff;
    font-weight: 900;
}

.agile-mock-brand strong,
.agile-mock-brand small,
.agile-mock-operator span,
.agile-mock-operator small {
    display: block;
    line-height: 1;
}

.agile-mock-brand strong {
    font-size: 1.35rem;
}

.agile-mock-brand small,
.agile-mock-nav .is-active,
.agile-mock-nav a:hover,
.agile-mock-nav button:hover,
.agile-mock-page-head span {
    color: var(--am-green);
}

.agile-mock-nav {
    justify-content: center;
    gap: 12px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.agile-mock-nav button,
.agile-mock-nav a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: var(--am-text);
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 900;
    white-space: nowrap;
    cursor: pointer;
}

.agile-mock-nav .is-active {
    border-color: var(--am-green);
}

.agile-mock-nav b {
    min-width: 20px;
    height: 20px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: #f02020;
    color: #fff;
    font-size: .75rem;
}

.agile-mock-operator {
    justify-content: flex-end;
    gap: 7px;
    text-align: right;
}

.agile-mock-operator strong {
    font-size: 1.25rem;
}

.agile-mock-operator small {
    color: var(--am-green);
}

.agile-mock-main {
    min-height: 0;
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
    overflow: hidden;
}

.agile-mock-workspace {
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}

.agile-mock-map,
.agile-mock-comanda,
.agile-mock-channel-main,
.agile-mock-detail,
.agile-mock-editor,
.agile-mock-products,
.agile-mock-list-only,
.agile-mock-placeholder {
    min-width: 0;
    min-height: 0;
    border: 1px solid var(--am-line);
    border-radius: 9px;
    background: var(--am-panel);
    overflow: hidden;
}

.agile-mock-map {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
}

.agile-mock-map-head,
.agile-mock-page-head,
.agile-mock-channel-toolbar,
.agile-mock-detail-title,
.agile-mock-detail section,
.agile-mock-detail-total,
.agile-mock-search-row {
    padding: 14px;
}

.agile-mock-map-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
    border-bottom: 1px solid var(--am-line);
}

.agile-mock-map h2,
.agile-mock-map h3,
.agile-mock-page-head h1,
.agile-mock-detail h2,
.agile-mock-detail h3 {
    margin: 0;
}

.agile-mock-map h2,
.agile-mock-page-head h1,
.agile-mock-detail h3 {
    text-transform: uppercase;
}

.agile-mock-map-head select,
.agile-mock-channel-toolbar select,
.agile-mock-channel-toolbar input,
.agile-mock-search-row input,
.agile-mock-order-form input,
.agile-mock-order-form textarea {
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: #081923;
    color: var(--am-text);
    padding: 10px 12px;
}

.agile-mock-free-filter {
    margin: 12px;
    padding: 10px;
    border-radius: 8px;
    background: #07141d;
    color: var(--am-muted);
    font-weight: 800;
}

.agile-mock-free-filter input {
    width: auto;
    height: auto;
    margin-right: 6px;
    accent-color: var(--am-green);
}

.agile-mock-map-scroll,
.agile-mock-order-cards,
.agile-mock-command-list,
.agile-mock-product-grid,
.agile-mock-detail-items {
    min-height: 0;
    overflow: auto;
    scrollbar-width: thin;
}

.agile-mock-map-scroll {
    padding: 0 12px 12px;
}

.agile-mock-map h3 {
    margin: 12px 0 8px;
    font-size: .95rem;
}

.agile-mock-table-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.agile-mock-table {
    min-height: 70px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2px;
    border: 1px solid var(--am-line);
    border-radius: 7px;
    background: var(--am-card);
    color: var(--am-text);
    text-decoration: none;
    cursor: pointer;
}

.agile-mock-table strong {
    font-size: 1.45rem;
    line-height: 1;
}

.agile-mock-table span,
.agile-mock-table em {
    color: #fff;
    font-size: .75rem;
    font-style: normal;
    font-weight: 900;
}

.agile-mock-table.is-green { background: #1daa49; }
.agile-mock-table.is-orange { background: var(--am-orange); }
.agile-mock-table.is-red { background: #b0242d; }
.agile-mock-table.is-free { background: var(--am-card); }

.agile-mock-map-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 12px;
    border-top: 1px solid var(--am-line);
}

.agile-mock-map-actions button,
.agile-mock-new-order,
.agile-mock-order-form button,
.agile-mock-detail-actions a,
.agile-mock-detail-actions button,
.agile-mock-search-row button {
    border: 0;
    border-radius: 8px;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}

.agile-mock-map-actions button {
    min-height: 58px;
    display: grid;
    place-items: center;
}

.agile-mock-map-actions .is-blue { background: var(--am-blue); }
.agile-mock-map-actions .is-orange { background: #e7a100; }

.agile-mock-view {
    display: none;
    min-height: 0;
    height: 100%;
}

.agile-mock-view.is-active {
    display: grid;
}

.agile-mock-channel {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 430px;
    gap: 10px;
}

.agile-mock-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.agile-mock-page-head h1 {
    font-size: clamp(1.4rem, 2vw, 2rem);
}

.agile-mock-page-head small,
.agile-mock-detail p,
.agile-mock-empty,
.agile-mock-command-list span {
    color: var(--am-muted);
}

.agile-mock-page-head b,
.agile-mock-detail-title b,
.agile-mock-command-list em {
    border: 1px solid currentColor;
    border-radius: 7px;
    padding: 7px 10px;
    text-transform: uppercase;
    font-size: .75rem;
}

.agile-mock-page-head .is-green,
.agile-mock-detail-title .is-green,
.agile-mock-command-list .is-green { color: var(--am-green); }
.agile-mock-page-head .is-orange,
.agile-mock-detail-title .is-orange,
.agile-mock-command-list .is-orange { color: #ffc247; }

.agile-mock-new-order {
    width: calc(100% - 28px);
    margin: 0 14px 8px;
    min-height: 42px;
    background: #16a34a;
    text-transform: uppercase;
}

.agile-mock-status-filters,
.agile-mock-chip-row {
    display: flex;
    gap: 8px;
    padding: 0 14px 10px;
    overflow-x: auto;
}

.agile-mock-status-filters button,
.agile-mock-chip-row button {
    border: 1px solid var(--am-line);
    border-radius: 999px;
    background: var(--am-card);
    color: #fff;
    padding: 8px 13px;
    font-weight: 900;
    white-space: nowrap;
}

.agile-mock-status-filters .is-active,
.agile-mock-chip-row button.is-active {
    border-color: var(--am-green);
    color: var(--am-green);
}

.agile-mock-channel-toolbar,
.agile-mock-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 160px;
    gap: 10px;
}

.agile-mock-order-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(220px, 1fr));
    align-content: start;
    gap: 10px;
    padding: 8px 14px 14px;
}

.agile-mock-order-card {
    min-height: 128px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 8px 12px;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: var(--am-card);
    color: #fff;
    padding: 12px;
    text-align: left;
    overflow: hidden;
}

.agile-mock-order-card.is-selected {
    box-shadow: 0 0 0 2px rgba(89, 170, 255, .35);
}

.agile-mock-order-card strong,
.agile-mock-order-card span,
.agile-mock-order-card small {
    display: block;
}

.agile-mock-order-card em {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: end;
    width: max-content;
    max-width: 100%;
    border: 1px solid currentColor;
    border-radius: 7px;
    color: var(--am-green);
    padding: 4px 8px;
    font-style: italic;
    font-size: .72rem;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.agile-mock-order-card .agile-order-status-stack em.is-awaiting-confirmation,
.agile-mock-detail-title .is-awaiting-confirmation,
.agile-mock-order-meta .is-awaiting-confirmation {
    color: #f59e0b;
}

.agile-order-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 0;
    border-radius: 999px;
    background: #16a34a;
    color: #fff;
    cursor: pointer;
    padding: 0;
    font-size: 14px;
    line-height: 1;
    flex-shrink: 0;
}

.agile-order-whatsapp.is-detail {
    width: auto;
    height: auto;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 700;
}

.agile-order-whatsapp:hover {
    filter: brightness(1.08);
}

.agile-detail-status-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.agile-mock-order-card .agile-order-status-stack {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: end;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    max-width: 100%;
}

.agile-mock-order-card .agile-order-status-stack em {
    grid-column: unset;
    grid-row: unset;
    align-self: auto;
    justify-self: auto;
    flex-shrink: 0;
}

.agile-order-late-warning {
    color: #fbbf24;
    font-size: .72rem;
    line-height: 1;
}

.agile-mock-order-card > div {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    display: grid;
    gap: 4px;
    align-content: start;
}

.agile-mock-order-card .agile-order-source {
    margin-top: 2px;
    color: rgba(255, 255, 255, .72);
    font-size: .74rem;
    line-height: 1.25;
    word-break: break-word;
}

.agile-mock-order-card-footer {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.agile-mock-order-card-footer b,
.agile-mock-order-card-footer small {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    white-space: nowrap;
}

.agile-mock-order-card-footer b {
    flex: 0 0 auto;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.2;
}

.agile-mock-order-card-footer small {
    flex: 0 0 auto;
    color: rgba(255, 255, 255, .78);
    font-size: .78rem;
}

.agile-mock-order-card b {
    color: var(--am-green);
}

.agile-mock-order-card.is-green em {
    color: var(--am-green);
}

.agile-mock-order-card.is-orange em {
    color: var(--am-orange);
}

.agile-mock-order-card.is-blue em {
    color: #60a5fa;
}

.agile-mock-order-card.is-red em {
    color: #f87171;
}

.agile-mock-order-card b,
.agile-mock-channel-main footer strong,
.agile-mock-product-grid span {
    color: var(--am-green);
}

.agile-mock-channel-main {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    align-content: start;
}

.agile-mock-channel-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    align-items: center;
    gap: 10px;
    padding: 0 14px 8px;
}

.agile-mock-channel-actions .agile-mock-status-filters {
    padding: 0;
}

.agile-mock-channel-actions .agile-mock-new-order {
    width: 100%;
    margin: 0;
}

.agile-mock-channel-main footer {
    display: flex;
    justify-content: space-between;
    padding: 10px 14px;
}

.agile-mock-detail article {
    display: none;
    height: 100%;
    min-height: 0;
    grid-template-rows: auto auto minmax(0, 1fr) auto auto;
}

.agile-mock-detail article.is-active {
    display: grid;
}

.agile-mock-detail-title,
.agile-mock-detail section {
    border-bottom: 1px solid var(--am-line);
}

.agile-mock-detail-title h2 {
    font-size: 1.7rem;
}

.agile-mock-detail-title span {
    display: block;
    margin-top: 10px;
    color: var(--am-muted);
}

.agile-mock-detail p {
    display: flex;
    gap: 8px;
    margin: 7px 0;
}

.agile-mock-detail-tabs {
    display: flex;
    gap: 24px;
    border-bottom: 2px solid var(--am-line);
    margin-bottom: 10px;
}

.agile-mock-detail-tabs strong {
    color: var(--am-green);
    border-bottom: 3px solid var(--am-green);
    padding-bottom: 9px;
}

.agile-mock-detail-body {
    min-height: 0;
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.agile-mock-detail-items {
    display: grid;
    align-content: start;
    min-height: 0;
    overflow: auto;
}

.agile-mock-detail-items div {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.agile-mock-detail-items em {
    grid-column: 2;
    color: var(--am-green);
    font-size: .75rem;
    font-style: normal;
    font-weight: 900;
}

.agile-mock-detail-items b {
    grid-column: 3;
    grid-row: 1 / span 2;
}

.agile-mock-detail-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 1.2rem;
    text-transform: uppercase;
}

.agile-mock-detail-actions {
    display: grid;
    gap: 8px;
    padding: 14px;
    background: var(--am-bg);
    z-index: 2;
}

.agile-mock-detail-actions a,
.agile-mock-detail-actions button {
    min-height: 42px;
    display: grid;
    place-items: center;
    background: var(--am-blue);
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
}

.agile-mock-detail-actions button {
    background: #16a34a;
}

.agile-mock-confirm-customer {
    border-color: rgba(34, 197, 94, .45) !important;
    background: rgba(34, 197, 94, .12) !important;
    color: #86efac !important;
}

.agile-mock-inline-action {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    margin: 4px 0;
    border: 1px solid var(--am-line);
    border-radius: 999px;
    padding: 6px 10px;
    color: #93c5fd;
    font-size: .78rem;
    font-weight: 900;
    text-decoration: none;
}

.agile-mock-inline-action[type="button"] {
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.agile-service-modal-panel {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: min(860px, calc(100vw - 32px));
    max-width: calc(100vw - 32px);
    max-height: min(760px, calc(100vh - 32px));
    padding: 0;
    overflow: hidden;
    border: 1px solid #285169;
    border-radius: 18px;
    color: #f4f8fb;
    background: #081d2a;
    box-shadow: 0 28px 90px rgba(0, 0, 0, .58);
}

.agile-service-modal-panel > header,
.agile-service-modal-panel > form,
.agile-service-modal-panel .app-modal-actions {
    padding: 20px 24px;
}

.agile-service-modal-panel > header {
    flex: 0 0 auto;
    padding: 20px 24px;
    border-color: #23485e;
    background: #0a2231;
}

.agile-service-modal-panel .app-modal-header small {
    color: #26dc85;
    font-weight: 900;
    letter-spacing: .08em;
}

.agile-service-modal-panel .app-modal-header h2 {
    color: #fff;
    font-size: 1.35rem;
}

.agile-service-modal-panel .icon-button {
    color: #fff;
    border-color: #315970;
    background: #102c3d;
}

.agile-service-modal-panel label {
    min-width: 0;
    color: #c9d8e2;
    font-weight: 800;
}

.agile-service-modal-panel input,
.agile-service-modal-panel select {
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    color: #fff;
    border: 1px solid #2a5269;
    border-radius: 10px;
    background: #071923;
}

.agile-service-modal-panel input:focus,
.agile-service-modal-panel select:focus {
    border-color: #21d780;
    box-shadow: 0 0 0 3px rgba(33, 215, 128, .14);
    outline: none;
}

.agile-service-modal-panel > form {
    min-width: 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

.agile-service-modal-panel section {
    border: 0;
}

.agile-service-address {
    margin-top: 16px;
    padding: 18px;
    border: 1px solid #244a60;
    border-radius: 12px;
    background: #0a2230;
}

.agile-service-address h3 {
    margin: 0 0 14px;
    font-size: 1rem;
    color: #fff;
}

.agile-service-address h3 i,
.agile-service-address > small {
    color: #2bdd89;
}

.agile-service-modal-panel .app-modal-actions {
    position: sticky;
    bottom: 0;
    margin: 20px -24px -20px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    background: #0a2231;
    border-top: 1px solid #244a60;
}

.agile-service-modal-panel .app-modal-actions .button-light {
    color: #e7eef3;
    border-color: #355b71;
    background: #173344;
}

.agile-service-modal-panel .app-modal-actions .button-primary {
    color: #042217;
    border-color: #26dc85;
    background: #26dc85;
}

@media (max-width: 700px) {
    .app-modal:has(.agile-service-modal-panel) {
        padding: 8px;
    }

    .agile-service-modal-panel {
        width: calc(100vw - 16px);
        max-width: calc(100vw - 16px);
        max-height: calc(100vh - 16px);
        border-radius: 12px;
    }

    .agile-service-modal-panel > header,
    .agile-service-modal-panel > form,
    .agile-service-modal-panel .app-modal-actions {
        padding-left: 16px;
        padding-right: 16px;
    }

    .agile-service-modal-panel .form-grid.two-columns {
        grid-template-columns: 1fr;
    }

    .agile-service-modal-panel .app-modal-actions {
        margin-left: -16px;
        margin-right: -16px;
    }
}

.agile-mock-service-layout {
    min-height: 0;
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 430px;
    gap: 10px;
}

.agile-mock-comanda {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto auto;
    align-content: stretch;
}

.agile-mock-order-header {
    min-height: 118px;
    border-bottom: 1px solid var(--am-line);
}

.agile-mock-order-meta {
    display: grid;
    justify-items: end;
    gap: 8px;
    color: #ffc247;
    font-weight: 900;
}

.agile-mock-info-strip {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    padding: 0 14px 10px;
}

.agile-mock-info-strip article,
.agile-mock-info-account {
    display: grid;
    gap: 4px;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: #0a1922;
    padding: 11px 13px;
    min-width: 0;
}

.agile-mock-info-account {
    color: #fff;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease;
    cursor: pointer;
    font: inherit;
    text-align: left;
    width: 100%;
}

button.agile-mock-info-account {
    appearance: none;
}

.agile-mock-info-account:hover:not(.is-disabled) {
    border-color: var(--am-green);
    background: rgba(34, 197, 94, .08);
}

.agile-mock-info-account.is-disabled {
    opacity: .45;
    pointer-events: none;
    cursor: default;
}

.agile-mock-info-account strong {
    color: var(--am-green);
}

.agile-mock-info-account-summary strong {
    color: #7dd3fc;
}

.agile-mock-info-account-summary:hover:not(.is-disabled) {
    border-color: #38bdf8;
    background: rgba(56, 189, 248, .08);
}

.is-printing,
button.is-printing,
[data-pdv-print-trigger].is-printing {
    opacity: 0.72;
    cursor: wait !important;
    pointer-events: none;
    filter: saturate(0.85);
}

[data-pdv-print-trigger]:active:not(:disabled):not(.is-printing),
button[data-agile-close-preview-print]:active:not(:disabled):not(.is-printing),
button[data-agile-report-print-mode]:active:not(:disabled):not(.is-printing) {
    transform: scale(0.98);
}

.agile-mock-info-account.is-printing strong {
    color: #86efac;
}

.agile-mock-info-strip span {
    color: var(--am-muted);
    font-size: .78rem;
    font-weight: 900;
}

.agile-mock-info-strip strong {
    text-transform: uppercase;
}

.agile-mock-items-panel,
.agile-mock-product-side {
    min-height: 0;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: #0a1922;
    overflow: hidden;
}

.agile-mock-comanda > .agile-mock-items-panel,
.agile-mock-comanda > .agile-mock-bottom-actions,
.agile-mock-comanda > .agile-mock-total-cards {
    margin-left: 14px;
    margin-right: 14px;
}

.agile-mock-items-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
}

.agile-mock-tabs {
    display: flex;
    gap: 20px;
    padding: 0 14px;
    border-bottom: 1px solid var(--am-line);
}

.agile-mock-tabs button {
    min-height: 48px;
    border: 0;
    border-bottom: 3px solid transparent;
    background: transparent;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}

.agile-mock-tabs button.is-active {
    color: var(--am-green);
    border-color: var(--am-green);
}

.agile-mock-tab-panel {
    display: none;
    min-height: 0;
    overflow: auto;
}

.agile-mock-tab-panel.is-active {
    display: block;
}

.agile-mock-empty-state {
    min-height: 86px;
    display: grid;
    place-items: center;
    gap: 8px;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: rgba(8, 22, 31, .7);
    color: #b9d7ef;
    text-align: center;
}

.agile-mock-empty-state i {
    color: #8ec8ff;
}

.agile-mock-items-table {
    width: 100%;
    border-collapse: collapse;
}

.agile-mock-items-table th,
.agile-mock-items-table td {
    padding: 13px 14px;
    border-bottom: 1px solid var(--am-line);
    text-align: left;
    vertical-align: middle;
}

.agile-mock-items-table th {
    color: var(--am-muted);
    font-size: .78rem;
    text-transform: uppercase;
}

.agile-mock-items-table th:first-child,
.agile-mock-items-table td:first-child {
    width: 72px;
    text-align: left;
    color: var(--am-muted);
}

.agile-mock-items-table small {
    display: block;
    color: #ff6c6c;
}

.agile-mock-items-table button {
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    padding: 6px;
}

.agile-mock-item-status {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: .75rem;
    font-weight: 900;
}

.agile-mock-item-status.is-pendente {
    background: rgba(216, 137, 0, .18);
    color: #ffc247;
}

.agile-mock-item-status.is-producao {
    background: rgba(20, 115, 210, .2);
    color: #7fc4ff;
}

.agile-mock-item-status.is-pronto,
.agile-mock-item-status.is-entregue {
    background: rgba(32, 200, 90, .18);
    color: #7cff9f;
}

.agile-mock-history-list,
.agile-mock-note-box {
    padding: 14px;
}

.agile-mock-history-list article {
    display: grid;
    gap: 4px;
    padding: 10px 0 10px 16px;
}

.agile-mock-history-list span,
.agile-mock-note-box {
    color: var(--am-muted);
}

.agile-mock-product-side {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
}

.agile-mock-bottom-actions {
    display: grid;
    grid-template-columns: 1.25fr repeat(3, minmax(0, .8fr));
    grid-auto-rows: max-content;
    align-items: center;
    align-self: end;
    gap: 8px;
    padding: 7px 0;
}

.agile-mock-bottom-actions button,
.agile-mock-side-summary button,
.agile-mock-action-grid button {
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: var(--am-card);
    color: #fff;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
}

.agile-mock-bottom-actions button {
    width: 100%;
    height: 42px;
    min-height: 42px;
    max-height: 42px;
    padding: 7px 10px;
    font-size: .78rem;
}

.agile-mock-bottom-actions .is-green,
.agile-mock-side-summary .is-green {
    border-color: #16a34a;
    background: #16a34a;
}

.agile-mock-total-cards {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    padding-top: 0;
}

.agile-mock-total-cards article {
    min-height: 70px;
    display: grid;
    place-items: center;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: #07141d;
}

.agile-mock-total-cards span {
    color: var(--am-muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.agile-mock-total-cards strong {
    color: #fff;
    font-size: 1.25rem;
}

.agile-mock-total-cards article:last-child strong {
    color: var(--am-green);
    font-size: 1.7rem;
}

.agile-mock-right-panel {
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 10px;
    border: 1px solid var(--am-line);
    border-radius: 9px;
    background: var(--am-panel);
    padding: 10px;
    overflow: hidden;
}

.agile-mock-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.agile-mock-action-grid button {
    min-height: 72px;
    display: grid;
    place-items: center;
    gap: 6px;
}

.agile-mock-action-grid i {
    color: #c7d9e8;
    font-size: 1.15rem;
}

.agile-mock-right-panel .agile-mock-product-side {
    min-height: 290px;
}

.agile-mock-side-summary {
    display: grid;
    gap: 0px;
    border-top: 1px solid var(--am-line);
    padding-top: 10px;
}

.agile-mock-side-summary h3 {
    margin: 0;
}

.agile-mock-side-summary p,
.agile-mock-side-summary div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
}

.agile-mock-side-summary strong.is-green {
    color: var(--am-green);
}

.agile-mock-side-summary strong.is-orange {
    color: var(--am-orange);
}

.agile-mock-side-summary div {
    align-items: center;
    padding-top: 8px;
    border-top: 1px dashed var(--am-line);
    color: var(--am-green);
    font-size: 1.35rem;
    font-weight: 900;
}

.agile-mock-side-summary button {
    min-height: 40px;
}

.agile-mock-side-summary .is-blue {
    border-color: var(--am-blue);
    background: var(--am-blue);
}

.agile-mock-side-summary .is-red {
    border-color: #ef2929;
    background: #ef2929;
}

.agile-mock-view[data-agile-view="novo"].is-active {
    grid-template-columns: minmax(0, 1fr) 430px;
    gap: 10px;
}

.agile-mock-editor,
.agile-mock-products,
.agile-mock-list-only,
.agile-mock-placeholder {
    display: grid;
    min-height: 0;
    align-content: start;
}

.agile-mock-order-form {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-height: 0;
    gap: 12px;
    padding: 14px;
}

.agile-mock-order-scroll {
    min-height: 0;
    display: grid;
    align-content: start;
    gap: 12px;
    overflow: auto;
    padding-right: 4px;
}

.agile-mock-order-footer {
    position: sticky;
    bottom: 0;
    z-index: 3;
    padding-top: 10px;
    background: var(--am-bg);
}

.agile-mock-order-footer button {
    width: 100%;
}

.agile-mock-type-row,
.agile-mock-payment-row,
.agile-mock-choice-grid,
.agile-mock-form-grid {
    display: grid;
    gap: 10px;
}

.agile-mock-type-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.agile-mock-payment-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.agile-mock-choice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.agile-mock-choice-grid-compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.agile-mock-type-row label,
.agile-mock-payment-row label,
.agile-mock-choice-grid label {
    position: relative;
    min-height: 82px;
    display: grid;
    align-content: center;
    gap: 8px;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    padding: 16px 18px;
    background: var(--am-card);
    color: #d9ecfb;
    font-size: 1.02rem;
    font-weight: 900;
}

.agile-mock-choice-grid-compact label {
    min-height: 64px;
    padding: 12px 16px;
}

.agile-mock-type-row label input,
.agile-mock-payment-row label input,
.agile-mock-choice-grid label input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.agile-mock-type-row label::after,
.agile-mock-payment-row label::after,
.agile-mock-choice-grid label::after {
    content: "";
    position: absolute;
    top: 16px;
    right: 18px;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, .75);
    border-radius: 999px;
    background: #fff;
    box-shadow: inset 0 0 0 4px #fff;
}

.agile-mock-payment-row label:has(input:checked),
.agile-mock-type-row label:has(input:checked),
.agile-mock-choice-grid label:has(input:checked) {
    border-color: var(--am-green);
    background: rgba(34, 197, 94, .12);
    color: #d7ffe5;
}

.agile-mock-payment-row label:has(input:checked)::after,
.agile-mock-type-row label:has(input:checked)::after,
.agile-mock-choice-grid label:has(input:checked)::after {
    border-color: #d7ffe5;
    background: #1976ff;
    box-shadow: inset 0 0 0 4px #fff;
}

.agile-mock-type-row i,
.agile-mock-payment-row i,
.agile-mock-choice-grid i {
    color: #9bd0ff;
    font-size: 1.25rem;
}

.agile-mock-payment-badge {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 10px 0 0;
    padding: 8px 10px;
    border: 1px solid var(--am-line);
    border-radius: 7px;
    font-size: .82rem;
}

.agile-mock-payment-badge.is-green {
    border-color: rgba(34, 197, 94, .55);
    color: #7cff9f;
}

.agile-mock-payment-badge.is-orange {
    border-color: rgba(245, 158, 11, .55);
    color: #ffc85c;
}

.agile-mock-payment-toggle.is-green {
    border-color: #16a34a;
    background: #16a34a;
}

.agile-mock-payment-toggle.is-orange {
    border-color: #d08700;
    background: #d08700;
}

.agile-mock-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.agile-mock-field-wide {
    grid-column: 1 / -1;
}

.agile-mock-delivery-fields {
    grid-column: 1 / -1;
    border: 1px solid var(--am-line);
    border-radius: 10px;
    padding: 12px;
    background: rgba(8, 25, 35, .72);
}

.agile-mock-delivery-scroll {
    max-height: 268px;
    overflow: auto;
    padding-right: 4px;
}

.agile-mock-delivery-fields[hidden] {
    display: none !important;
}

.agile-mock-delivery-fields .agile-mock-form-grid {
    margin-top: 10px;
}

.agile-mock-delivery-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.agile-mock-delivery-head strong {
    color: #fff;
    font-weight: 900;
}

.agile-mock-delivery-head i {
    color: var(--am-green);
}

.agile-mock-delivery-head span,
.agile-mock-cep-status {
    color: var(--am-muted);
    font-size: .78rem;
    font-weight: 700;
}

.agile-mock-cep-status {
    display: block;
    margin-top: 8px;
}

.agile-mock-cep-status.is-ok {
    color: var(--am-green);
}

.agile-mock-cep-status.is-error {
    color: #f87171;
}

.agile-mock-delivery-fee-hint {
    display: block;
    margin-top: 8px;
    color: #0f766e;
    font-size: .82rem;
    font-weight: 800;
}

.agile-mock-delivery-fee-hint.is-error {
    color: #b42318;
}

.agile-mock-order-form label {
    display: grid;
    gap: 6px;
    color: var(--am-muted);
    font-weight: 900;
}

.agile-mock-order-form button,
.agile-mock-search-row button {
    min-height: 42px;
    background: #16a34a;
}

.agile-mock-products {
    grid-template-rows: auto auto minmax(0, 1fr);
}

.agile-mock-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: minmax(74px, auto);
    align-content: start;
    min-height: 0;
    overflow: auto;
    gap: 8px;
    padding: 8px 12px 12px;
}

.agile-mock-product-grid article,
.agile-mock-product-grid button {
    min-height: 74px;
    display: grid;
    place-items: center;
    gap: 3px;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    background: var(--am-card);
    color: #fff;
    text-align: center;
    cursor: pointer;
}

.agile-mock-product-grid button:disabled {
    cursor: wait;
    opacity: .55;
}

.agile-mock-toast-region {
    position: fixed;
    top: 72px;
    right: 24px;
    z-index: 250;
    display: grid;
    gap: 8px;
    pointer-events: none;
}

.agile-mock-toast {
    min-width: min(340px, calc(100vw - 48px));
    border: 1px solid #22c55e;
    border-radius: 8px;
    background: #052f20;
    color: #fff;
    padding: 12px 16px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .35);
    font-weight: 900;
    line-height: 1.25;
}

.agile-mock-product-grid i {
    color: #ffc247;
    font-size: 1.35rem;
}

.agile-mock-product-grid strong {
    font-size: .76rem;
    line-height: 1.15;
}

.agile-mock-product-grid span {
    font-size: .78rem;
}

.agile-mock-command-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 8px 14px 14px;
    align-content: start;
}

.agile-mock-command-list a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 14px;
    align-items: center;
    min-height: 118px;
    border: 1px solid var(--am-line);
    border-radius: 8px;
    padding: 12px;
    background: var(--am-card);
    color: #fff;
    text-decoration: none;
}

.agile-mock-command-list strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.agile-mock-command-list span {
    grid-column: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.agile-mock-command-list b {
    grid-column: 1;
    align-self: end;
}

.agile-mock-command-list em {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    justify-self: end;
}

.agile-mock-command-list .agile-order-status-stack {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    justify-self: end;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.agile-mock-command-list .agile-order-status-stack em {
    grid-column: unset;
    grid-row: unset;
    align-self: auto;
    justify-self: auto;
}

.agile-mock-placeholder,
.agile-mock-empty {
    place-items: center;
    text-align: center;
    padding: 24px;
}

.agile-mock-placeholder i {
    color: var(--am-green);
    font-size: 2.5rem;
}

@media (max-width: 1500px) {
    .agile-mock-main {
        grid-template-columns: 300px minmax(0, 1fr);
    }

    .agile-mock-channel,
    .agile-mock-service-layout {
        grid-template-columns: minmax(0, 1fr) 360px;
    }

    .agile-mock-action-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .agile-mock-order-cards {
        grid-template-columns: repeat(2, minmax(220px, 1fr));
    }

    .agile-mock-command-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .agile-mock-channel-actions {
        grid-template-columns: 1fr;
    }

    .agile-mock-choice-grid-compact {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .agile-mock {
        height: auto;
        overflow: visible;
    }

    .agile-mock-topbar,
    .agile-mock-main,
    .agile-mock-channel,
    .agile-mock-service-layout,
    .agile-mock-view[data-agile-view="novo"].is-active {
        grid-template-columns: 1fr;
    }

    .agile-mock-main,
    .agile-mock-map,
    .agile-mock-channel-main,
    .agile-mock-detail {
        min-height: 520px;
    }

    .agile-mock-command-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .agile-mock-choice-grid-compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* Company settings tabs */
.company-settings-tabs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 6px;
    border: 1px solid #d9e3e1;
    background: #f7faf9;
    border-radius: 8px;
}

.company-settings-tabs button {
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #52615f;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}

.company-settings-tabs button.is-active {
    border-color: #9fcfca;
    background: #e7f2f0;
    color: #006b63;
}

.restaurant-settings-panel {
    display: grid;
    gap: 18px;
}

.restaurant-settings-group {
    padding: 18px;
    border: 1px solid #d9e3e1;
    border-radius: 8px;
    background: #fff;
}

.restaurant-settings-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.restaurant-settings-heading h3 {
    margin: 2px 0 0;
}

.settings-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.settings-check,
.settings-switch {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
    min-height: 44px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #d9e3e1;
    border-radius: 6px;
    background: #f9fbfb;
    font-weight: 600;
    cursor: pointer;
}

.settings-check input[type="hidden"],
.settings-switch input[type="hidden"] {
    display: none;
}

.settings-check > span,
.settings-switch > span {
    flex: 1 1 auto;
    line-height: 1.35;
}

.settings-check input[type="checkbox"],
.settings-switch input[type="checkbox"] {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    min-height: 0;
    margin: 0;
}

.settings-info-box {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    background: #edf7f5;
    color: #425250;
}

.settings-info-box strong {
    color: #006b63;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .restaurant-settings-heading,
    .settings-info-box {
        align-items: stretch;
        flex-direction: column;
    }

    .settings-choice-grid {
        grid-template-columns: 1fr;
    }
}

/* PDV tradicional - visual operacional */
.pos-terminal-traditional {
    grid-template-rows: 74px minmax(0, 1fr);
    min-height: 100vh;
    background:
        radial-gradient(circle at 18% 8%, rgba(35, 112, 255, .08), transparent 28%),
        linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
    color: #08245a;
}

.pos-terminal-traditional .pos-shortcut-bar {
    display: none;
}

.pos-terminal-traditional .pos-topbar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 16px;
    min-height: 74px;
    margin: 8px 12px 0;
    border: 1px solid #e6eef8;
    border-radius: 8px;
    padding: 8px 14px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 12px 30px rgba(8, 36, 90, .08);
}

.pos-terminal-traditional .pos-topbar::after {
    content: "✓ CAIXA LIVRE";
    color: #07843c;
    font-size: clamp(1.55rem, 2.2vw, 2.35rem);
    letter-spacing: .02em;
}

.pos-terminal-traditional[data-pdv-status="busy"] .pos-topbar::after {
    content: "• CAIXA OCUPADO";
    color: #b45309;
}

.pos-terminal-traditional .pos-brand {
    min-width: 310px;
    gap: 12px;
}

.pos-terminal-traditional .pos-brand::before {
    content: "\f0c9";
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 8px;
    color: #08245a;
    font: var(--fa-font-solid);
    font-size: 1.1rem;
}

.pos-terminal-traditional .pos-brand .brand-logo {
    width: auto;
    max-width: 235px;
    height: 48px;
    object-fit: contain;
}

.pos-terminal-traditional .pos-brand .brand-mark {
    width: 46px;
    height: 46px;
    border-radius: 8px;
    background: #08245a;
}

.pos-terminal-traditional .pos-brand strong {
    color: #08245a;
    font-size: 1.55rem;
    line-height: 1;
}

.pos-terminal-traditional .pos-brand span {
    color: #ff7900;
    font-size: .67rem;
    letter-spacing: .08em;
}

.pos-terminal-traditional .pos-context {
    justify-self: end;
    min-width: 155px;
}

.pos-terminal-traditional .pos-cash-pill {
    min-height: 48px;
    border: 1px solid #e4ebf5;
    border-radius: 8px;
    padding: 8px 12px 8px 28px;
    background: #fff !important;
    box-shadow: 0 8px 20px rgba(8, 36, 90, .05);
    color: #08245a;
    position: relative;
}

.pos-terminal-traditional .pos-cash-pill::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 13px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #22c55e;
}

.pos-terminal-traditional .pos-cash-pill strong {
    color: #08245a;
}

.pos-terminal-traditional .pos-user-actions {
    gap: 10px;
}

.delivery-distance-row {
    grid-template-columns: minmax(110px, 0.7fr) minmax(110px, 0.7fr) minmax(120px, 0.8fr) auto auto;
}

.dm-review-distance,
.dm-review-address {
    margin: 8px 0;
    color: #667085;
}

.dm-review-distance small {
    font-size: 0.78rem;
}

.dm-review-distance i {
    margin-right: 4px;
    color: #ea580c;
}

.dm-checkout-actions {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.4fr);
    gap: 10px;
    margin-top: 14px;
}

.dm-checkout-actions > .dm-primary,
.dm-checkout-actions > .dm-secondary {
    width: 100%;
    margin: 0;
}

.dm-review-distance-label {
    margin: 18px 6px 2px;
    color: #ef4444;
    font-size: 0.82rem;
}

.dm-review-distance-label i {
    margin-right: 4px;
}

@media (max-width: 420px) {
    .dm-checkout-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
        gap: 8px;
    }
}

.pos-payment-print-option {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    color: #17345f;
    font-weight: 800;
    cursor: pointer;
}

.pos-payment-print-option input {
    width: 20px;
    height: 20px;
    accent-color: #087f78;
    cursor: pointer;
}

.pos-payment-print-option span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.pdv-connectivity-indicator {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    min-height: 48px;
    border: 1px solid #dbe5f2;
    border-radius: 50%;
    padding: 0;
    background: #fff;
    color: #536781;
    font-size: .73rem;
    font-weight: 800;
    white-space: nowrap;
}

.pdv-connectivity-indicator > i {
    font-size: 1.35rem;
}

.pdv-connectivity-indicator[hidden] {
    display: none;
}

.pdv-connectivity-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #94a3b8;
}

.pdv-connectivity-indicator.is-online {
    border-color: #bbebcf;
    color: #08733c;
    background: #f0fbf5;
}

.pdv-connectivity-indicator.is-online .pdv-connectivity-dot {
    background: #16a34a;
}

.pdv-connectivity-indicator.is-offline {
    border-color: #fecaca;
    color: #a3212d;
    background: #fff1f2;
}

.pdv-connectivity-indicator.is-offline .pdv-connectivity-dot {
    background: #dc2626;
    box-shadow: 0 0 0 4px rgba(220, 38, 38, .12);
}

.pdv-connectivity-indicator.is-syncing {
    border-color: #fed7aa;
    color: #9a4a08;
    background: #fff7ed;
}

.pdv-connectivity-indicator.is-syncing .pdv-connectivity-dot {
    background: #f97316;
    animation: pdv-connectivity-pulse 1s infinite alternate;
}

.pdv-connectivity-indicator.is-syncing > i {
    animation: pdv-connectivity-spin .85s linear infinite;
}

@keyframes pdv-connectivity-spin {
    to { transform: rotate(360deg); }
}

@keyframes pdv-connectivity-pulse {
    to { opacity: .35; transform: scale(.75); }
}

.pos-terminal-traditional .pos-user-actions > span {
    display: grid;
    min-width: 126px;
    min-height: 48px;
    align-content: center;
    border: 1px solid #e4ebf5;
    border-radius: 8px;
    padding: 6px 12px 6px 48px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(8, 36, 90, .05);
    color: #08245a;
    font-weight: 900;
    position: relative;
}

.pos-terminal-traditional .pos-user-actions > span::before {
    content: attr(data-initials);
    position: absolute;
    left: 10px;
    top: 50%;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: #eef3ff;
    color: #08245a;
    font-size: .82rem;
    font-weight: 950;
}

.pos-terminal-traditional .pos-user-actions > span::after {
    content: "Operador";
    color: #36527c;
    font-size: .72rem;
    font-weight: 800;
}

.pos-terminal-traditional .pos-user-actions > span:first-letter {
    color: inherit;
}

.pos-terminal-traditional .pos-user-actions .icon-button {
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: #f3f7ff;
    color: #08245a;
    box-shadow: 0 8px 20px rgba(8, 36, 90, .05);
    font-size: 1.2rem;
}

.pos-workspace-traditional {
    grid-template-columns: minmax(330px, 36.5%) minmax(0, 63.5%);
    gap: 8px;
    min-height: 0;
    padding: 10px 12px 10px;
}

.pos-traditional-panel,
.pos-sale-panel-traditional {
    border: 1px solid #e6eef8;
    border-radius: 8px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 12px 30px rgba(8, 36, 90, .08);
}

.pos-traditional-panel {
    display: grid;
    grid-template-rows: 1fr auto auto;
    gap: 10px;
    min-height: 0;
    padding: 12px;
}

.pos-traditional-panel::before {
    content: none;
}

.pos-traditional-heading,
.pos-traditional-info,
.pos-traditional-last {
    display: none !important;
}

.pos-traditional-showcase {
    display: grid;
    place-items: start center;
    align-content: start;
    min-height: 0;
    padding: clamp(48px, 8vh, 76px) 24px 24px;
    text-align: center;
}

.pos-traditional-showcase img {
    max-width: min(74%, 360px);
    max-height: 260px;
    object-fit: contain;
    object-position: center top;
}

.pos-traditional-showcase-logo {
    display: grid;
    place-items: start center;
    width: min(100%, clamp(210px, 18vw, 340px));
    height: clamp(145px, 12vw, 230px);
    max-width: 340px;
    max-height: 230px;
    margin-top: clamp(56px, 10vh, 104px);
    align-self: start;
    overflow: hidden;
}

.pos-traditional-showcase-logo img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
}

.pos-traditional-showcase-logo .pos-traditional-logo-mark {
    width: clamp(72px, 6vw, 110px);
    height: clamp(72px, 6vw, 110px);
}

.pos-traditional-showcase-logo .pos-traditional-logo-mark::before {
    width: clamp(40px, 3.3vw, 61px);
    height: clamp(40px, 3.3vw, 61px);
}

.pos-traditional-showcase .pos-traditional-showcase-logo strong {
    margin-top: 7px;
    font-size: clamp(1.35rem, 2.1vw, 2.8rem);
    line-height: .9;
    white-space: nowrap;
}

.pos-traditional-showcase .pos-traditional-showcase-logo small {
    margin-top: 6px;
    font-size: clamp(.4rem, .42vw, .62rem);
    letter-spacing: .1em;
    line-height: 1.15;
    white-space: nowrap;
}

.pos-traditional-showcase strong {
    display: block;
    margin-top: 12px;
    color: #08245a;
    font-size: clamp(2.9rem, 6vw, 5.2rem);
    font-weight: 950;
    line-height: .9;
}

.pos-traditional-showcase strong em {
    color: #ff7900;
    font-style: normal;
}

.pos-traditional-showcase small {
    margin-top: 10px;
    color: #08245a;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.pos-traditional-logo-mark {
    display: grid;
    place-items: center;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: conic-gradient(from 40deg, #ff7900 0 26%, transparent 26% 36%, #08245a 36% 100%);
    position: relative;
}

.pos-traditional-logo-mark::before {
    content: "";
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #fff;
}

.pos-traditional-entry,
.pos-traditional-values {
    border: 1px solid #e2ebf6;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 22px rgba(8, 36, 90, .06);
}

.pos-traditional-entry {
    padding: 12px;
}

.pos-traditional-entry label,
.pos-traditional-values label {
    color: #08245a;
    font-size: .78rem;
    font-weight: 900;
}

.pos-traditional-search-wrap {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    min-height: 48px;
    border: 2px solid #2c7dff;
    border-radius: 8px;
    padding: 0 10px;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(44, 125, 255, .08);
}

.pos-traditional-search-wrap i {
    color: #08245a;
    font-size: 1.25rem;
}

.pos-traditional-entry input {
    min-height: 44px;
    border: 0;
    padding: 8px;
    color: #08245a;
    font-size: .88rem;
    font-weight: 800;
}

.pos-traditional-entry input:focus {
    box-shadow: none;
    outline: 0;
}

.pos-traditional-values {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    border: 0;
    padding: 0;
    box-shadow: none;
    background: transparent;
}

.pos-traditional-values label {
    min-width: 0;
    border: 1px solid #e2ebf6;
    border-radius: 8px;
    padding: 12px;
    background: #fff;
    box-shadow: 0 10px 22px rgba(8, 36, 90, .06);
}

.pos-traditional-metric {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    margin-top: 6px;
}

.pos-traditional-metric i {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #eaf3ff;
    color: #2c7dff;
}

.pos-traditional-metric.is-total i {
    background: #eafaf0;
    color: #07843c;
}

.pos-traditional-values input {
    min-height: 34px;
    border: 0;
    padding: 0;
    color: #063ea0;
    font-size: 1.9rem;
    font-weight: 950;
    text-align: left;
}

.pos-traditional-promo-card {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 88px;
    border: 1px solid #d7e0eb;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(248, 251, 255, .98), rgba(255, 255, 255, .98));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .72);
    overflow: hidden;
}

.pos-traditional-values label:last-child input {
    color: #095d2d;
}

.pos-sale-panel-traditional {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 31%);
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 12px;
    min-height: 0;
    padding: 12px;
}

.pos-traditional-customer {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    grid-template-areas:
        "icon label"
        "icon name";
    align-items: center;
    gap: 2px 12px;
    border: 0;
    border-radius: 8px;
    padding: 12px 14px;
    background: #fff;
}

.pos-sale-panel-traditional .pos-traditional-customer {
    grid-column: 1;
    grid-row: 1;
}

.pos-traditional-customer i {
    grid-area: icon;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #eaf3ff;
    color: #0d65ff;
    font-size: 1.3rem;
}

.pos-traditional-customer span {
    grid-area: label;
    color: #08245a;
    font-size: .8rem;
    font-weight: 900;
}

.pos-traditional-customer strong {
    grid-area: name;
    color: #08245a;
    font-size: 1.1rem;
    line-height: 1.1;
}

.pos-traditional-total {
    grid-column: 2;
    grid-row: 1;
    justify-content: flex-end;
    min-height: 66px;
    border-radius: 8px;
    padding: 12px 24px;
    background: linear-gradient(135deg, #effaf3, #dff5e7);
}

.pos-traditional-total span {
    color: #043b94;
    font-size: 1rem;
}

.pos-traditional-total strong {
    color: #043b94;
    font-size: clamp(2.55rem, 4.7vw, 3.95rem);
}

.pos-sale-panel-traditional .pos-cart-head {
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: 58px 92px minmax(0, 1fr) 82px 86px 98px;
    min-height: 46px;
    align-items: center;
    border-radius: 6px 6px 0 0;
    padding: 0 14px;
    background: linear-gradient(180deg, #043b94, #063078);
    color: #fff;
    font-size: .78rem;
    font-weight: 950;
    text-transform: uppercase;
}

.pos-sale-panel-traditional .pos-cart-lines {
    grid-column: 1 / -1;
    grid-row: 3;
    gap: 0;
    min-height: 0;
    border: 1px solid #e2ebf6;
    border-top: 0;
    border-radius: 0 0 8px 8px;
    padding: 0;
    background: #fff;
}

.pos-sale-panel-traditional .pos-cart-line {
    grid-template-columns: 58px 92px minmax(0, 1fr) 82px 86px 98px;
    min-height: 40px;
    border: 0;
    border-bottom: 1px solid #edf2f8;
    border-radius: 0;
    padding: 6px 14px;
    box-shadow: none;
    position: relative;
}

.pos-sale-panel-traditional .pos-cart-line.is-selected {
    background: linear-gradient(90deg, rgba(13, 101, 255, .1), #fff 18%);
    box-shadow: inset 4px 0 0 #0d65ff;
}

.pos-sale-panel-traditional .pos-cart-line.is-selected::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 999px;
    background: #0d65ff;
}

.pos-sale-panel-traditional .pdv-empty {
    display: grid;
    place-items: center;
    min-height: 330px;
    color: #42577d;
    font-size: 1rem;
    font-weight: 850;
    text-align: center;
}

.pos-sale-panel-traditional .pdv-empty::before {
    content: "\f07a";
    display: grid;
    place-items: center;
    width: 94px;
    height: 94px;
    margin-bottom: 10px;
    border-radius: 50%;
    background: #eaf3ff;
    color: #043b94;
    font: var(--fa-font-solid);
    font-size: 2.6rem;
}

.pos-sale-panel-traditional .pos-cart-empty-icon {
    display: none;
}

.pos-current-product-line {
    grid-column: 1 / -1;
    grid-row: 4;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    align-items: center;
    min-height: 56px;
    border: 1px solid #cfe3ff;
    border-radius: 8px;
    padding: 0 14px;
    background: linear-gradient(135deg, #eff7ff, #f9fcff);
}

.pos-current-product-line i {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #0d65ff;
    color: #fff;
}

.pos-current-product-line input {
    border: 0;
    padding: 0;
    background: transparent;
    color: #08245a;
    font-size: .95rem;
    font-weight: 950;
}

.pos-sale-panel-traditional .pos-total-box {
    display: none;
}

.pos-traditional2-document {
    display: grid;
    grid-template-columns: minmax(145px, .9fr) minmax(0, 1.35fr);
    gap: 10px;
}

.pos-traditional2-document label {
    min-width: 0;
    color: #08245a;
    font-size: .72rem;
    font-weight: 900;
}

.pos-traditional2-document label > span {
    display: block;
    margin-bottom: 5px;
}

.pos-traditional2-document select,
.pos-traditional2-document input,
.pos-traditional2-change input {
    width: 100%;
    min-height: 42px;
    border: 1px solid #cbd7e7;
    border-radius: 6px;
    padding: 8px 10px;
    background: #fff;
    color: #08245a;
    font-weight: 800;
}

.pos-traditional2-change {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    min-height: 72px;
    border: 1px solid #dbe5f2;
    border-radius: 8px;
    padding: 10px 14px;
    background: #fff;
}

.pos-traditional2-change label {
    color: #111;
    font-size: 1.25rem;
    font-weight: 950;
}

.pos-traditional2-change input {
    border: 0;
    padding: 0;
    text-align: right;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}

@media (min-width: 1021px) {
    .pos-workspace-traditional {
        grid-template-columns: minmax(0, 1.78fr) minmax(330px, 1fr);
        gap: 10px;
    }

    .pos-sale-panel-traditional {
        grid-column: 1;
        grid-row: 1;
    }

    .pos-traditional-panel {
        grid-column: 2;
        grid-row: 1;
        grid-template-columns: minmax(0, 1fr) minmax(280px, 34%);
        grid-template-rows: minmax(320px, 1fr) minmax(70px, 14%) auto auto;
        gap: 10px;
        padding: 10px;
    }

    .pos-traditional-panel > .pos-traditional-showcase {
        grid-column: 1;
        grid-row: 1;
        border: 1px solid #d7e0eb;
        background: #fff;
        overflow: hidden;
        padding: 14px 24px 24px;
    }

    .pos-traditional-panel > .pos-traditional-showcase img {
        display: block;
        width: min(52%, 190px) !important;
        height: auto !important;
        max-width: min(52%, 190px) !important;
        max-height: 155px !important;
        object-fit: contain;
        object-position: center top;
    }

    .pos-traditional-panel > .pos-traditional-showcase > .pos-traditional-showcase-logo img {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        object-position: center !important;
    }

    .pos-traditional-panel > .pos-traditional-controls {
        grid-column: 2;
        grid-row: 1;
        display: grid;
        align-content: start;
        gap: 8px;
        min-width: 0;
    }

    .pos-traditional-panel > .pos-traditional-controls .pos-traditional-values {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .pos-traditional-panel > .pos-traditional-controls .pos-traditional-values label {
        display: grid;
        grid-template-columns: 1fr;
        gap: 3px;
        padding: 8px 10px;
        text-align: right;
    }

    .pos-traditional-panel > .pos-traditional-controls .pos-traditional-values input {
        min-height: 30px;
        font-size: clamp(1.1rem, 2.2vw, 1.8rem);
        text-align: right;
    }

    .pos-traditional-panel > .pos-traditional-controls .pos-traditional-entry input {
        min-height: 30px;
        width: 100%;
        min-width: 0;
        color: #063ea0;
        font-size: clamp(1.05rem, 1.8vw, 1.35rem);
        font-weight: 950;
        letter-spacing: -.03em;
        text-overflow: clip;
    }

    .pos-traditional-panel > .pos-traditional-promo-card {
        grid-column: 1 / -1;
        grid-row: 2;
        min-height: 70px;
    }

    .pos-traditional-panel > .pos-traditional-customer {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    .pos-traditional-panel > .pos-traditional-total {
        grid-column: 1 / -1;
        grid-row: 4;
        min-height: 72px;
        padding: 8px 18px;
        background: linear-gradient(180deg, #063b91, #082f78);
        color: #fff;
    }

    .pos-traditional-panel > .pos-traditional-total span,
    .pos-traditional-panel > .pos-traditional-total strong {
        color: #fff;
    }

    .pos-traditional-panel > .pos-traditional-total strong {
        font-size: clamp(2rem, 3.4vw, 3.25rem);
        line-height: 1;
    }

    .pos-terminal-traditional2 .pos-workspace-traditional {
        grid-template-columns: minmax(0, 2.1fr) minmax(310px, .82fr);
    }

    .pos-terminal-traditional2 .pos-traditional-panel {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: minmax(170px, 1fr) auto auto auto auto auto;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-showcase {
        grid-column: 1;
        grid-row: 1;
        min-height: 190px;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-controls {
        grid-column: 1;
        grid-row: 2;
        display: grid;
        gap: 6px;
        min-width: 0;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-controls .pos-traditional-values {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-controls .pos-traditional-values label {
        padding: 6px 8px;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-controls .pos-traditional-values input {
        font-size: clamp(.95rem, 1.35vw, 1.25rem);
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-promo-card {
        display: none;
    }

    .pos-terminal-traditional2 .pos-traditional2-document {
        grid-column: 1;
        grid-row: 3;
    }

    .pos-terminal-traditional2 .pos-traditional2-change {
        grid-column: 1;
        grid-row: 4;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-customer {
        grid-column: 1;
        grid-row: 5;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-total {
        grid-column: 1;
        grid-row: 6;
    }
}

@media (max-width: 1020px) {
    .pos-terminal-traditional {
        grid-template-rows: auto minmax(0, 1fr);
        overflow: auto;
    }

    .pos-terminal-traditional .pos-topbar {
        grid-template-columns: 1fr auto;
    }

    .pos-terminal-traditional .pos-topbar::after {
        position: static;
        transform: none;
        grid-column: 1 / -1;
        justify-self: center;
    }

    .pos-workspace-traditional {
        grid-template-columns: 1fr;
    }

    .pos-traditional-panel {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto minmax(76px, 13vh) auto auto;
    }

    .pos-traditional-panel > .pos-traditional-showcase,
    .pos-traditional-panel > .pos-traditional-controls,
    .pos-traditional-panel > .pos-traditional-promo-card {
        grid-column: 1;
    }

    .pos-traditional-panel > .pos-traditional-showcase {
        grid-row: 1;
        min-height: 260px;
        padding-top: clamp(24px, 5vh, 48px);
    }

    .pos-traditional-panel > .pos-traditional-showcase img {
        width: min(68%, 190px) !important;
        max-width: min(68%, 190px) !important;
        max-height: 155px !important;
        height: auto !important;
    }

    .pos-traditional-panel > .pos-traditional-showcase > .pos-traditional-showcase-logo img {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        object-position: center !important;
    }

    .pos-traditional-showcase-logo {
        width: min(100%, 210px);
        height: 145px;
        max-width: 210px;
        max-height: 145px;
    }

    .pos-traditional-panel > .pos-traditional-controls {
        grid-row: 2;
        display: grid;
        gap: 8px;
    }

    .pos-traditional-panel > .pos-traditional-promo-card {
        grid-row: 3;
        min-height: clamp(76px, 13vh, 130px);
    }

    .pos-traditional-panel > .pos-traditional-customer {
        grid-column: 1;
        grid-row: 4;
    }

    .pos-traditional-panel > .pos-traditional-total {
        grid-column: 1;
        grid-row: 5;
    }

    .pos-sale-panel-traditional {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto minmax(0, 1fr) auto;
    }

    .pos-sale-panel-traditional .pos-traditional-customer,
    .pos-traditional-total,
    .pos-sale-panel-traditional .pos-cart-head,
    .pos-sale-panel-traditional .pos-cart-lines,
    .pos-current-product-line {
        grid-column: 1;
        grid-row: auto;
    }

    .pos-traditional-showcase {
        min-height: 260px;
    }

    .pos-terminal-traditional2 .pos-traditional-panel {
        grid-template-rows: auto auto auto auto auto auto;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-promo-card {
        display: none;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-showcase {
        grid-row: 1;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-controls {
        grid-row: 2;
    }

    .pos-terminal-traditional2 .pos-traditional2-document {
        grid-row: 3;
    }

    .pos-terminal-traditional2 .pos-traditional2-change {
        grid-row: 4;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-customer {
        grid-row: 5;
    }

    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-total {
        grid-row: 6;
    }

    .pos-traditional2-document {
        grid-template-columns: minmax(130px, .8fr) minmax(0, 1.2fr);
    }
}

@media (max-width: 620px) {
    .pos-traditional2-document {
        grid-template-columns: 1fr;
    }

    .pos-traditional2-change {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .pos-traditional2-change input {
        text-align: left;
    }
}

.coordinate-picker-label {
    grid-column: 1 / -1;
}

.coordinate-input-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
}

.coordinate-input-group input[data-coordinate-display] {
    cursor: default;
    background: #f8fafc;
}

.coordinate-picker-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    min-width: 46px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
    color: var(--primary, #0b7a75);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.coordinate-picker-trigger:hover {
    background: #ecfeff;
    border-color: var(--primary, #0b7a75);
}

.coordinate-picker-trigger svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.coordinate-picker-modal {
    z-index: 200;
}

.coordinate-picker-panel {
    width: min(720px, calc(100vw - 24px));
}

.coordinate-picker-hint {
    margin: 0 0 12px;
    color: #64748b;
    font-size: 14px;
}

.coordinate-picker-map {
    height: 360px;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    background: #e2e8f0;
}

.coordinate-picker-locate-control {
    margin: 0 12px 14px 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.coordinate-picker-locate-control button {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--primary, #0b7a75);
    color: #fff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, .28);
    cursor: pointer;
}

.coordinate-picker-locate-control button:hover:not(:disabled) {
    background: #0a6b66;
}

.coordinate-picker-locate-control button:active:not(:disabled) {
    transform: scale(.94);
}

.coordinate-picker-locate-control button:disabled {
    opacity: .72;
    cursor: wait;
}

.coordinate-picker-locate-control svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.coordinate-picker-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
}

.coordinate-picker-footer span {
    color: #475569;
    font-size: 13px;
    font-weight: 700;
}

.pdv-printing-context {
    margin-bottom: 22px;
}

.pdv-printing-shell {
    display: grid;
    gap: 14px;
}

.pdv-printing-form {
    display: grid;
    gap: 14px;
}

.pdv-printing-panel,
.pdv-printing-empty {
    display: grid;
    gap: 20px;
    padding: 22px 24px;
    overflow: visible;
}

.pdv-printing-panel .section-title-inline {
    margin-bottom: 2px;
}

.pdv-printing-panel .section-title-inline h2 {
    margin-top: 6px;
}

.pdv-printing-panel .form-grid {
    gap: 18px 16px;
}

.pdv-printing-panel .form-grid label {
    display: grid;
    gap: 8px;
}

.pdv-printing-panel .check-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.45;
    padding: 2px 0;
}

.pdv-printing-panel .check-row input {
    margin-top: 2px;
}

.pdv-printing-checks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 28px;
    margin-top: 4px;
    padding-top: 6px;
}

.pdv-printing-checks-col {
    display: grid;
    gap: 14px;
    align-content: start;
}

.pdv-printing-terminals {
    display: grid;
    gap: 14px;
}

.pdv-printing-terminal-card {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 16px;
    background: #fff;
}

.pdv-printing-terminal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.pdv-printing-terminal-head strong {
    display: block;
    font-size: 16px;
}

.pdv-printing-terminal-head .muted {
    display: block;
    margin-top: 4px;
    color: #64748b;
    font-size: 13px;
}

@media (max-width: 768px) {
    .pdv-printing-checks {
        grid-template-columns: 1fr;
    }

    .pdv-printing-panel,
    .pdv-printing-empty {
        padding: 18px 16px;
    }
}

.pdv-printing-empty,
.pdv-printing-readonly,
.pdv-printing-help {
    color: #475569;
    font-size: 14px;
    line-height: 1.6;
}

.pdv-printing-empty p,
.pdv-printing-help p,
.pdv-printing-readonly p,
.pdv-printing-hint {
    margin: 0 0 12px;
}

.pdv-printing-readonly .data-details-grid {
    margin-top: 4px;
}

.pdv-printing-hint {
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
}

.pdv-printing-form .form-actions {
    padding-top: 4px;
}
.label-filters {
    align-items: end;
}

.label-builder-form {
    display: grid;
    gap: 18px;
}

.label-builder-panel {
    display: grid;
    gap: 18px;
    padding: 24px;
    overflow: visible;
}

.label-builder-panel .section-title-inline {
    padding: 0;
    margin-bottom: 2px;
}

.label-template-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.label-template-card {
    display: grid;
    gap: 6px;
    min-height: 112px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    cursor: pointer;
}

.label-template-card input {
    width: 18px;
    height: 18px;
}

.label-template-card strong {
    color: var(--text);
    font-size: 1rem;
}

.label-template-card span,
.label-template-card small {
    color: var(--muted);
}

.label-template-card.is-selected,
.label-template-card:has(input:checked) {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);
}

.label-options {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px 28px;
    padding-top: 8px;
}

.label-custom-grid {
    gap: 16px;
    padding-top: 10px;
}

.label-custom-grid label {
    display: grid;
    gap: 8px;
}

.label-product-list {
    display: grid;
    gap: 10px;
}

.label-product-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
}

.label-product-row .check-row {
    flex: 1;
    margin: 0;
}

.label-product-row .check-row span {
    display: grid;
    gap: 3px;
}

.label-product-row small {
    color: var(--muted);
}

.label-product-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    font-weight: 700;
}

.label-product-meta label {
    display: grid;
    gap: 4px;
    min-width: 74px;
    color: var(--muted);
    font-size: .78rem;
    text-transform: uppercase;
}

.label-product-meta input {
    width: 74px;
    text-align: center;
}

.label-print-actions {
    position: sticky;
    bottom: 0;
    z-index: 4;
    justify-content: flex-end;
    padding: 14px 0;
    background: linear-gradient(180deg, transparent, var(--bg) 28%);
}

@media (max-width: 720px) {
    .label-product-row,
    .label-product-meta {
        align-items: stretch;
        flex-direction: column;
    }

    .label-product-meta {
        gap: 8px;
    }
}
.pos-close-payment-warning {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid #f59e0b;
    border-radius: 12px;
    background: rgba(245, 158, 11, 0.12);
    color: #92400e;
}

.pos-close-payment-warning[hidden] {
    display: none;
}

.pos-close-payment-warning div {
    display: grid;
    gap: 3px;
}

.pos-close-payment-warning span {
    font-size: 0.88rem;
}

.system-email-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.system-email-preview-panel {
    width: min(920px, calc(100vw - 28px));
    max-height: min(92vh, 960px);
}

.system-email-preview-panel .app-modal-header small {
    display: block;
    margin-top: 4px;
    color: #64748b;
}

.system-email-preview-body {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    overflow: hidden;
    background: #f8fafc;
    min-height: 420px;
}

.system-email-preview-body iframe {
    display: block;
    width: 100%;
    min-height: 420px;
    height: min(70vh, 720px);
    border: 0;
    background: #fff;
}

.otp-code-field {
    display: grid;
    gap: 10px;
}

.otp-code-label {
    font-size: 14px;
    color: var(--text);
}

.otp-code-inputs {
    display: grid;
    grid-template-columns: repeat(6, minmax(42px, 1fr));
    gap: 10px;
    max-width: 360px;
}

.otp-code-digit {
    width: 100%;
    min-height: 54px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f4f7f6;
    color: #0f172a;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.otp-code-digit:focus {
    outline: none;
    border-color: var(--accent);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(197, 139, 34, 0.18);
}

.otp-code-field.is-disabled .otp-code-digit {
    opacity: 0.55;
    cursor: not-allowed;
}

@media (max-width: 480px) {
    .otp-code-inputs {
        gap: 8px;
    }

    .otp-code-digit {
        min-height: 48px;
        font-size: 22px;
        border-radius: 8px;
    }
}

/* PDV Tradicional 2: composição exclusiva baseada no terminal de balcão. */
.pos-terminal-traditional2 {
    grid-template-rows: 74px minmax(0, 1fr);
    background: #edf3fa;
}

.pos-terminal-traditional2 .pos-traditional2-topbar {
    display: grid;
    grid-template-columns: 270px minmax(360px, 1fr) auto;
    gap: 18px;
    align-items: center;
    min-height: 74px;
    margin: 0;
    border: 0;
    border-bottom: 7px solid #ff7900;
    border-radius: 0;
    padding: 0 12px 0 28px;
    background: linear-gradient(90deg, #0a459a, #043b91);
    box-shadow: none;
    color: #fff;
}

.pos-terminal-traditional2 .pos-traditional2-topbar::after {
    content: none;
}

.pos-terminal-traditional2[data-pdv-status="free"] .pos-traditional2-topbar::after,
.pos-terminal-traditional2[data-pdv-status="busy"] .pos-traditional2-topbar::after {
    content: none;
    display: none;
}

.pos-traditional2-branch-brand {
    align-self: stretch;
    display: grid;
    place-items: center;
    width: 220px;
    min-height: 64px;
    border: 4px solid #818b87;
    border-radius: 50%;
    padding: 4px 14px;
    background: #fff;
    color: #747474;
    transform: translateY(7px);
    z-index: 2;
    position: relative;
}

.pos-traditional2-branch-brand img {
    display: block;
    width: calc(100% - 20px);
    height: 48px;
    max-width: calc(100% - 20px);
    border-radius: 999px;
    object-fit: contain;
    object-position: center;
    clip-path: ellipse(50% 50% at 50% 50%);
}

.pos-traditional2-branch-brand strong {
    font-size: 1.35rem;
}

.pos-traditional2-slogan {
    position: absolute;
    left: 50%;
    top: calc(100% + 14px);
    display: block;
    width: calc(100% + 50px);
    min-height: 20px;
    border: 0;
    border-radius: 5px;
    padding: 1px 8px;
    transform: translateX(-50%);
    overflow: hidden;
    background: #073f94;
    color: #fff;
    font-size: .62rem;
    font-weight: 800;
    line-height: 14px;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pos-traditional2-clock {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: start;
    gap: clamp(55px, 6vw, 95px);
    font-size: clamp(.9rem, 1.3vw, 1.25rem);
}

.pos-traditional2-clock strong {
    font-size: inherit;
}

.pos-traditional2-session {
    display: grid;
    grid-template-columns: auto auto auto auto;
    gap: 18px;
    align-items: center;
    font-size: .68rem;
    text-transform: uppercase;
}

.pos-traditional2-session .pdv-connectivity-indicator {
    min-width: 38px;
    min-height: 34px;
    justify-content: center;
    border-color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

.pos-traditional2-session .pdv-connectivity-indicator.is-online {
    border-color: rgba(74, 222, 128, .65);
    background: rgba(22, 163, 74, .22);
    color: #86efac;
}

.pos-traditional2-session .pdv-connectivity-indicator.is-offline {
    border-color: rgba(248, 113, 113, .75);
    background: rgba(220, 38, 38, .28);
    color: #fecaca;
}

.pos-traditional2-session span {
    display: grid;
    gap: 2px;
    font-weight: 900;
}

.pos-traditional2-session small {
    font-size: .65rem;
    font-weight: 500;
    text-transform: none;
}

.pos-traditional2-session > strong {
    color: #25d34c;
    white-space: nowrap;
}

.pos-traditional2-session > strong i {
    display: inline-block;
    width: 13px;
    height: 13px;
    border-radius: 4px;
    background: #20bd45;
    vertical-align: -2px;
}

.pos-terminal-traditional2 .pos-workspace-traditional {
    grid-template-columns: minmax(0, 1.9fr) minmax(330px, 1fr);
    gap: 8px;
    padding: 48px 8px 8px;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional,
.pos-terminal-traditional2 .pos-traditional-panel {
    border: 0;
    border-radius: 8px;
    padding: 8px;
    box-shadow: none;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional {
    grid-column: 1;
    grid-row: 1;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 6px;
}

.pos-terminal-traditional2 .pos-traditional-panel {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(210px, 1fr) auto auto auto auto;
    gap: 10px;
}

.pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-showcase {
    grid-column: 1;
    grid-row: 1;
    min-height: 210px;
    border: 0;
    border-radius: 0;
    padding: 14px;
    background: #fff;
    position: relative;
    z-index: 1;
    pointer-events: none;
}

.pos-terminal-traditional2 .pos-traditional-showcase-logo {
    width: min(82%, clamp(220px, 29vw, 560px));
    height: auto;
    max-width: 560px;
    max-height: none;
    margin: 0;
    align-self: center;
    overflow: visible;
}

.pos-terminal-traditional2 .pos-traditional-showcase-logo > img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: min(44vh, 360px) !important;
    object-fit: contain !important;
    object-position: center !important;
}

@media (min-width: 1600px) and (min-height: 850px) {
    .pos-terminal-traditional2 .pos-traditional-showcase-logo {
        width: min(86%, 680px);
        height: auto;
        max-width: 680px;
        max-height: none;
    }
}

@media (min-width: 1021px) and (max-height: 820px) {
    .pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-showcase {
        padding: 10px 18px;
    }

    .pos-terminal-traditional2 .pos-traditional-showcase-logo {
        width: min(72%, 380px);
        height: auto;
        max-width: 440px;
        max-height: none;
    }

    .pos-terminal-traditional2 .pos-traditional-showcase-logo > img {
        max-height: min(34vh, 250px) !important;
    }
}

.pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-promo-card {
    display: none;
}

.pos-terminal-traditional2 .pos-traditional2-document {
    grid-row: 2;
    grid-template-columns: minmax(150px, 1.25fr) auto minmax(110px, .8fr);
    padding: 12px 32px;
    position: relative;
    z-index: 10;
    pointer-events: auto;
    -webkit-app-region: no-drag;
}

.pos-traditional2-quote-actions {
    display: flex;
    gap: 5px;
    align-items: stretch;
}

.pos-traditional2-quote-actions button {
    width: 38px;
    min-height: 36px;
    border: 0;
    border-radius: 5px;
    background: #0d47a1;
    color: #fff;
    cursor: pointer;
    font-size: 1rem;
}

.pos-traditional2-quote-actions button:hover,
.pos-traditional2-quote-actions button:focus-visible {
    background: #083778;
}

.pos-traditional2-quote-actions button[hidden] {
    display: none;
}

.pos-quotes-panel {
    width: min(720px, calc(100vw - 32px));
    max-height: min(720px, calc(100vh - 32px));
}

#pdv-quotes-modal .app-modal-header {
    margin: -22px -22px 0;
    padding: 18px 22px;
    border-bottom-color: #073e7a;
    border-radius: 8px 8px 0 0;
    background: linear-gradient(135deg, #082d63, #0b5f9e);
    color: #fff;
}

#pdv-quotes-modal .app-modal-header h2 {
    color: #fff;
}

#pdv-quotes-modal .app-modal-header .eyebrow {
    color: #69ead2;
}

#pdv-quotes-modal .app-modal-header .icon-button {
    border-color: rgba(255, 255, 255, .35);
    background: rgba(255, 255, 255, .12);
    color: #fff;
}

#pdv-quotes-modal .app-modal-header .icon-button:hover,
#pdv-quotes-modal .app-modal-header .icon-button:focus-visible {
    background: rgba(255, 255, 255, .22);
}

.pos-quotes-body {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.pos-quotes-body label {
    display: grid;
    gap: 6px;
    font-weight: 700;
}

.pos-quotes-body input {
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid #cdd8e8;
    border-radius: 7px;
}

.pos-quotes-list {
    display: grid;
    gap: 8px;
    max-height: 430px;
    overflow: auto;
}

.pos-quote-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 16px;
    padding: 12px 14px;
    border: 1px solid #d9e2ef;
    border-radius: 8px;
    background: #fff;
    color: #071d49;
    text-align: left;
    cursor: pointer;
}

.pos-quote-result:hover,
.pos-quote-result:focus-visible {
    border-color: #0d6efd;
    background: #f2f7ff;
}

.pos-quote-result strong,
.pos-quote-result small {
    display: block;
}

.pos-quote-result .pos-quote-value {
    grid-row: 1 / span 2;
    grid-column: 2;
    align-self: center;
    font-size: 1.08rem;
    font-weight: 800;
}

.pos-quote-walk-in-customer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
    margin-top: 8px;
    padding: 14px;
    border: 1px solid #d7e2ef;
    border-radius: 8px;
    background: #f5f8fc;
}

.pos-quote-walk-in-customer label {
    display: grid;
    gap: 6px;
}

.pos-quote-walk-in-customer input {
    min-height: 42px;
}

.pos-quote-walk-in-customer .button {
    min-height: 42px;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .pos-quote-walk-in-customer {
        grid-template-columns: 1fr;
    }
}

.pos-terminal-traditional2 .pos-traditional2-document label > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

.pos-terminal-traditional2 .pos-traditional2-document select,
.pos-terminal-traditional2 .pos-traditional2-document input {
    min-height: 36px;
    border: 0;
    border-radius: 0;
    padding: 4px 8px;
    background: #f6f8fb;
    position: relative;
    z-index: 11;
    pointer-events: auto;
    cursor: pointer;
}

.pos-terminal-traditional2 .pos-traditional2-document input {
    cursor: text;
}

.pos-terminal-traditional2 .pos-traditional2-change {
    grid-row: 3;
    grid-template-columns: 1fr;
    gap: 0;
    min-height: 90px;
    padding: 8px 38px;
}

.pos-terminal-traditional2 .pos-traditional2-change input {
    min-height: 38px;
    font-size: 1.6rem;
}

.pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-customer {
    grid-row: 4;
}

.pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-total {
    grid-row: 5;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    min-height: 92px;
    padding: 0;
    background: transparent;
}

.pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-total span {
    justify-self: start;
    padding-left: 2px;
    color: #000;
    font-size: 1rem;
    font-weight: 900;
}

.pos-terminal-traditional2 .pos-traditional-panel > .pos-traditional-total strong {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    min-height: 70px;
    border-radius: 8px;
    padding: 6px 18px;
    background: #073f94;
    color: #fff;
}

.pos-terminal-traditional2 .pos-traditional2-current-line {
    grid-row: 1;
    display: grid;
    grid-template-columns: minmax(280px, 1fr) 105px 115px 125px;
    gap: 6px;
}

.pos-terminal-traditional2 .pos-traditional2-current-line label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    min-width: 0;
    border: 1px solid #dce7f4;
    border-radius: 6px;
    padding: 3px 10px;
    background: #fff;
    color: #08245a;
}

.pos-terminal-traditional2 .pos-traditional2-current-line label:first-child {
    grid-template-columns: 30px minmax(0, 1fr);
}

.pos-terminal-traditional2 .pos-traditional2-current-line label:first-child i {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #1768ed;
    color: #fff;
}

.pos-terminal-traditional2 .pos-traditional2-current-line span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.pos-terminal-traditional2 .pos-traditional2-current-line input {
    min-width: 0;
    min-height: 38px;
    border: 0;
    padding: 0;
    color: #000;
    font-size: clamp(1rem, 1.7vw, 1.8rem);
    font-weight: 950;
    text-align: right;
}

.pos-terminal-traditional2 .pos-traditional2-current-line label:first-child input {
    font-size: clamp(1rem, 1.7vw, 1.8rem);
    font-weight: 400;
    text-align: left;
}

.pos-terminal-traditional2 .pos-traditional2-current-line label:not(:first-child) input {
    font-weight: 400;
}

.pos-terminal-traditional2 .pos-traditional2-current-line .is-total input {
    color: #000;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line > :nth-child(4),
.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line > :nth-child(5),
.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line > :nth-child(6) {
    font-weight: 400;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-code,
.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line > :nth-child(4),
.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line > :nth-child(5),
.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line > :nth-child(6) {
    color: #111827;
    font-size: .96rem;
    line-height: 1.25;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line {
    border-bottom: 1px solid rgba(8, 36, 90, .16);
}

.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-head,
.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-line {
    grid-template-columns: 40px 92px minmax(0, 1fr) 82px 86px 98px;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-head {
    grid-row: 2;
}

.pos-terminal-traditional2 .pos-sale-panel-traditional .pos-cart-lines {
    grid-row: 3;
}

.pos-terminal-traditional2 .pos-traditional2-reader {
    grid-row: 4;
    display: grid;
    grid-template-columns: minmax(240px, 1fr) 190px;
    gap: 16px;
    align-items: end;
    min-height: 66px;
}

.pos-terminal-traditional2 .pos-traditional2-reader > label {
    gap: 3px;
    color: #08245a;
    font-size: .72rem;
    font-weight: 950;
}

.pos-traditional2-reader-input {
    display: grid;
    grid-template-columns: 35px minmax(0, 1fr);
    align-items: center;
    min-height: 43px;
    border: 2px solid #1768ed;
    border-radius: 7px;
    padding: 0 8px;
    background: #fff;
}

.pos-traditional2-reader-input i {
    font-size: 1.25rem;
}

.pos-terminal-traditional2 .pos-traditional2-reader input {
    min-height: 38px;
    border: 0;
    padding: 4px;
    font-size: 1rem;
    font-weight: 850;
}

.pos-terminal-traditional2 .pos-traditional2-quantity-input {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-height: 43px;
    color: #073f94;
}

.pos-terminal-traditional2 .pos-traditional2-quantity-input > i {
    font-size: 1.65rem;
}

.pos-terminal-traditional2 .pos-traditional2-quantity-input input {
    min-width: 0;
    min-height: 43px;
    border: 0;
    border-radius: 0;
    padding: 0 6px;
    background: transparent;
    color: #073f94;
    font-size: 1.8rem;
    font-weight: 950;
    text-align: left;
}

.pos-terminal-traditional2 .pos-traditional2-quantity-input input:not([readonly]) {
    background: #1768ed;
    color: #fff;
    outline: 3px solid rgba(23, 104, 237, .2);
}

.pos-terminal-traditional2 .pos-traditional2-reader em {
    font-style: normal;
}

@media (max-width: 1050px) {
    .pos-terminal-traditional2 {
        grid-template-rows: auto minmax(0, 1fr);
        overflow: auto;
    }

    .pos-terminal-traditional2 .pos-traditional2-topbar {
        grid-template-columns: 180px minmax(280px, 1fr);
        min-height: 72px;
        padding-left: 16px;
    }

    .pos-traditional2-branch-brand {
        width: 160px;
    }

    .pos-traditional2-session {
        grid-column: 1 / -1;
        justify-self: end;
        margin-top: -35px;
    }

    .pos-terminal-traditional2 .pos-workspace-traditional {
        grid-template-columns: 1fr;
        overflow: visible;
    }

    .pos-terminal-traditional2 .pos-sale-panel-traditional,
    .pos-terminal-traditional2 .pos-traditional-panel {
        grid-column: 1;
        grid-row: auto;
        min-height: 620px;
    }
}

@media (max-width: 700px) {
    .pos-terminal-traditional2 .pos-traditional2-topbar {
        grid-template-columns: 125px 1fr;
        gap: 8px;
    }

    .pos-traditional2-branch-brand {
        width: 120px;
        min-height: 52px;
    }

    .pos-traditional2-clock {
        grid-template-columns: 1fr;
        gap: 2px;
        font-size: .78rem;
    }

    .pos-traditional2-session {
        display: none;
    }

    .pos-terminal-traditional2 .pos-traditional2-current-line {
        grid-template-columns: 1fr 1fr 1fr;
    }

    .pos-terminal-traditional2 .pos-traditional2-current-line label:first-child {
        grid-column: 1 / -1;
    }

    .pos-terminal-traditional2 .pos-traditional2-reader {
        grid-template-columns: 1fr;
    }

}
/* Escolha de impressão após a venda: painel compacto, sem rolagem horizontal. */
#pdv-post-sale-print-modal .pdv-post-sale-print-panel,
#agile-post-sale-print-modal .pdv-post-sale-print-panel {
    width: min(680px, calc(100vw - 32px));
    max-width: 680px;
    max-height: none;
    overflow: visible;
}

.pdv-post-sale-print-intro {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 2px 4px;
}

.pdv-post-sale-print-intro p {
    margin: 0;
    color: var(--muted);
}

.pdv-post-sale-print-nfce {
    display: grid;
    place-items: center;
    gap: 3px;
    width: 72px;
    height: 72px;
    border: 1px solid rgba(11, 122, 117, .2);
    border-radius: 12px;
    background: linear-gradient(145deg, #ecfaf6, #f7fcfb);
    color: #08776f;
}

.pdv-post-sale-print-nfce i {
    font-size: 1.7rem;
}

.pdv-post-sale-print-nfce span {
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .04em;
}

.pdv-post-sale-print-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.pdv-post-sale-print-actions .button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    min-height: 76px;
    padding: 12px;
    line-height: 1.25;
    text-align: center;
}

.pdv-post-sale-print-actions .button i {
    flex: 0 0 auto;
}

@media (max-width: 620px) {
    #pdv-post-sale-print-modal .pdv-post-sale-print-panel,
#agile-post-sale-print-modal .pdv-post-sale-print-panel {
        width: min(460px, calc(100vw - 24px));
        padding: 18px;
    }

    .pdv-post-sale-print-intro {
        grid-template-columns: 56px minmax(0, 1fr);
        gap: 10px;
    }

    .pdv-post-sale-print-nfce {
        width: 56px;
        height: 56px;
    }

    .pdv-post-sale-print-nfce i {
        font-size: 1.35rem;
    }

    .pdv-post-sale-print-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pdv-post-sale-print-actions .button:last-child {
        grid-column: 1 / -1;
        min-height: 50px;
    }
}

@media (max-width: 380px) {
    .pdv-post-sale-print-actions {
        grid-template-columns: 1fr;
    }

    .pdv-post-sale-print-actions .button:last-child {
        grid-column: auto;
    }
}

.pos-integrated-pix { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 16px; align-items: center; margin-top: 12px; padding: 14px; border: 1px solid #99d5ca; border-radius: 12px; background: #f0fdfa; }
.pos-integrated-pix[hidden] { display: none; }
.pos-integrated-pix img { width: 180px; height: 180px; object-fit: contain; background: #fff; border-radius: 8px; }
.pos-integrated-pix textarea { width: 100%; min-height: 72px; margin: 8px 0; resize: none; font-size: 12px; }
.pos-integrated-pix button { border: 0; border-radius: 8px; padding: 9px 14px; background: #0f766e; color: #fff; font-weight: 700; cursor: pointer; }
@media (max-width: 720px) { .pos-integrated-pix { grid-template-columns: 1fr; } .pos-integrated-pix img { margin: auto; } }
.pos-pix-dialog { width: min(560px, calc(100vw - 28px)); }
.pos-pix-dialog-body { display: grid; justify-items: center; gap: 10px; padding: 22px; text-align: center; }
.pos-pix-dialog-body img { width: min(320px, 72vw); height: min(320px, 72vw); object-fit: contain; padding: 8px; border: 1px solid #d6e3e1; border-radius: 14px; background: #fff; }
.pos-pix-dialog-body > strong { font-size: 28px; color: #0f766e; }
.pos-pix-dialog-body > p { margin: 0; color: #b45309; font-weight: 700; }
.pos-pix-dialog-body label { width: 100%; text-align: left; font-weight: 700; color: #475569; }
.pos-pix-dialog-body textarea { width: 100%; min-height: 82px; margin-top: 6px; resize: none; font-size: 12px; }
.pos-pix-dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 16px 22px; border-top: 1px solid #e2e8f0; }
@media (max-width: 600px) { .pos-pix-dialog-actions .button { width: 100%; } }
/* Dialogo PIX compacto: mantem QR, codigo e acoes visiveis sem rolagem. */
.pos-pix-dialog { max-height: calc(100vh - 16px); overflow: hidden; display: flex; flex-direction: column; }
.pos-pix-dialog .app-modal-header { flex: 0 0 auto; padding-top: 14px; padding-bottom: 12px; }
.pos-pix-dialog-body { flex: 1 1 auto; min-height: 0; gap: 5px; padding: 10px 18px; overflow: hidden; }
.pos-pix-dialog-body img { width: min(280px, 38vh, 66vw); height: min(280px, 38vh, 66vw); padding: 5px; }
.pos-pix-dialog-body > strong { font-size: clamp(22px, 4vh, 30px); line-height: 1.05; }
.pos-pix-dialog-body > p { font-size: 13px; line-height: 1.2; }
.pos-pix-dialog-body label { font-size: 13px; }
.pos-pix-dialog-body textarea { min-height: 52px; height: 7vh; max-height: 72px; margin-top: 4px; padding: 8px; }
.pos-pix-dialog-actions { flex: 0 0 auto; gap: 7px; padding: 10px 18px; }
.pos-pix-dialog-actions .button { min-height: 38px; padding: 8px 12px; }
@media (max-height: 700px) {
    .pos-pix-dialog-body img { width: min(220px, 34vh); height: min(220px, 34vh); }
    .pos-pix-dialog-body textarea { height: 48px; min-height: 48px; }
    .pos-pix-dialog .app-modal-header { padding-top: 9px; padding-bottom: 8px; }
}
/* PDV Agile: PIX integrado em dialog compacto, sem rolagem em resolucoes de caixa. */
.agile-pix-payment-overlay { z-index: 2200; padding: 8px; align-items: center; justify-content: center; }
.agile-pix-payment-overlay[hidden] { display: none !important; }
.agile-pix-payment-modal { width: min(680px, calc(100vw - 16px)); max-height: calc(100vh - 16px); overflow: hidden; }
.agile-pix-payment-modal > header { padding: 12px 16px; }
.agile-pix-payment-modal > header h2 { margin: 2px 0 0; font-size: 1.25rem; }
.agile-pix-payment-body { display: grid; justify-items: center; gap: 7px; padding: 12px 18px 8px; }
.agile-pix-payment-body img { width: min(38vh, 310px); height: min(38vh, 310px); object-fit: contain; border: 1px solid #d4e2e1; border-radius: 14px; padding: 8px; background: #fff; }
.agile-pix-payment-body > strong { color: #087d73; font-size: clamp(1.6rem, 4vh, 2.25rem); }
.agile-pix-payment-body > p { margin: 0; color: #b45309; font-weight: 700; text-align: center; }
.agile-pix-payment-body label { width: 100%; font-weight: 700; color: #475569; }
.agile-pix-payment-body textarea { display: block; width: 100%; height: 52px; margin-top: 5px; resize: none; border: 1px solid #cbd5e1; border-radius: 9px; padding: 8px; font: 12px/1.35 monospace; }
.agile-pix-payment-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 8px 18px 14px; }
.agile-pix-payment-actions button { min-height: 40px; border: 1px solid #b8cfcd; border-radius: 9px; background: #fff; color: #0f766e; font-weight: 800; }
.agile-pix-payment-actions button.is-primary { background: #0f766e; color: #fff; }
.agile-pix-payment-actions button.is-danger { border-color: #ef4444; color: #b91c1c; }
@media (max-height: 650px) {
    .agile-pix-payment-body img { width: min(31vh, 205px); height: min(31vh, 205px); }
    .agile-pix-payment-body textarea { height: 42px; }
    .agile-pix-payment-modal > header, .agile-pix-payment-body, .agile-pix-payment-actions { padding-top: 7px; padding-bottom: 7px; }
}

/* Tooltip padrao do Portal Desktop */
.desktop-standard-tooltip{position:fixed;z-index:1200;min-width:158px;max-width:230px;padding:8px 9px;border-radius:5px;background:#102d58;color:#fff;box-shadow:0 7px 20px rgba(16,45,88,.25);font:10px/1.35 inherit;pointer-events:none;white-space:normal}.desktop-standard-tooltip strong,.desktop-standard-tooltip span{display:block}.desktop-standard-tooltip span{color:#dbe8ff}
