:root {
    color-scheme: light;
    --sidebar: #2a3f54;
    --sidebar-dark: #203448;
    --sidebar-deep: #172d44;
    --accent: #1abb9c;
    --accent-dark: #15967d;
    --page: #f7f7f7;
    --panel: #ffffff;
    --border: #e6e9ed;
    --text: #425567;
    --muted: #73879c;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: var(--text);
    background: var(--page);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-height: 100vh;
    background: var(--page);
    color: var(--text);
}

.app-frame { min-height: 100vh; }
.app-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 50; display: flex; flex-direction: column;
    width: 250px; color: #fff; background: var(--sidebar); transition: width .2s ease, transform .2s ease;
}
.sidebar-brand { display: flex; align-items: center; min-height: 64px; padding: .65rem .9rem; background: var(--sidebar-deep); }
.sidebar-brand > a, .public-brand { display: flex; align-items: center; min-width: 0; gap: .7rem; color: inherit; text-decoration: none; }
.brand-mark {
    display: inline-grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center;
    border: 2px solid var(--accent); border-radius: 50%; color: #fff; font-size: .9rem; font-weight: 800; letter-spacing: -.04em;
}
.brand-copy { display: grid; line-height: 1.1; white-space: nowrap; }
.brand-copy strong { font-size: 1.25rem; font-weight: 500; }
.brand-copy small, .public-brand small { margin-top: .2rem; color: rgba(255,255,255,.58); font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
.sidebar-close { display: none; margin-left: auto; border: 0; color: #fff; background: transparent; font: 300 2rem/1 Arial; cursor: pointer; }
.sidebar-profile { display: flex; align-items: center; min-height: 88px; gap: .8rem; padding: 1rem; background: rgba(255,255,255,.025); }
.profile-avatar, .topbar-avatar {
    display: inline-grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center;
    border: 3px solid rgba(255,255,255,.8); border-radius: 50%; color: #fff; background: #73879c; font-weight: 700;
}
.sidebar-profile div { display: grid; min-width: 0; gap: .2rem; }
.sidebar-profile small { color: rgba(255,255,255,.6); }
.sidebar-profile strong { overflow: hidden; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-nav { flex: 1; overflow-x: hidden; overflow-y: auto; padding: .5rem 0 1rem; }
.nav-section-title { display: block; padding: 1rem 1rem .35rem; color: rgba(255,255,255,.38); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; }
.sidebar-link {
    position: relative; display: flex; align-items: center; min-height: 44px; gap: .75rem; padding: .65rem 1rem;
    border-right: 5px solid transparent; color: rgba(255,255,255,.76); font-size: .9rem; text-decoration: none; white-space: nowrap;
}
.sidebar-link:hover { color: #fff; background: rgba(255,255,255,.06); }
.sidebar-link.active { border-right-color: var(--accent); color: #fff; background: linear-gradient(#334556, #2c4257), var(--sidebar); box-shadow: inset 0 1px rgba(255,255,255,.05), 0 1px rgba(0,0,0,.15); }
.nav-icon { display: inline-grid; flex: 0 0 22px; width: 22px; place-items: center; font-size: 1.15rem; line-height: 1; }
.sidebar-footer { padding: .8rem 1rem; color: rgba(255,255,255,.38); background: rgba(0,0,0,.08); font-size: .72rem; }

.app-topbar {
    position: fixed; inset: 0 0 auto 250px; z-index: 40; display: flex; align-items: center; min-height: 64px;
    padding: 0 1.25rem; border-bottom: 1px solid #d9dee4; background: #fff; transition: left .2s ease;
}
.menu-toggle { display: grid; width: 42px; height: 42px; place-content: center; gap: 5px; border: 0; border-radius: 3px; background: transparent; cursor: pointer; }
.menu-toggle:hover { background: #f1f3f5; }
.menu-toggle span { display: block; width: 21px; height: 2px; background: var(--muted); }
.topbar-title { display: grid; min-width: 0; margin-left: .6rem; line-height: 1.15; }
.topbar-title small { color: #a0a9b2; font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }
.topbar-title strong { overflow: hidden; max-width: 40vw; color: #536a7f; font-size: .92rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.user-menu { display: flex; align-items: center; gap: .65rem; margin-left: auto; color: #515356; font-size: .88rem; }
.topbar-avatar { flex-basis: 32px; width: 32px; height: 32px; border-width: 2px; font-size: .75rem; }
.user-menu form { margin: 0; }
.text-button { border: 0; background: transparent; color: var(--accent-dark); font: inherit; cursor: pointer; padding: .5rem; }
.text-button:hover { text-decoration: underline; }

.app-content {
    display: flex; flex-direction: column; min-height: 100vh; margin-left: 250px; padding-top: 64px;
    transition: margin-left .2s ease;
}
.page-shell {
    flex: 1 0 auto; width: 100%; max-width: none; margin: 0; padding: clamp(1rem, 1.5vw, 1.75rem);
}
.app-footer {
    flex: 0 0 auto; margin-top: auto; padding: 1rem clamp(1rem, 1.5vw, 1.75rem);
    border-top: 1px solid var(--border); color: #8a98a5; background: #fff; text-align: right; font-size: .76rem;
}
.sidebar-overlay { display: none; }

body.sidebar-collapsed .app-sidebar { width: 82px; }
body.sidebar-collapsed .app-topbar { left: 82px; }
body.sidebar-collapsed .app-content { margin-left: 82px; }
body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .sidebar-profile div,
body.sidebar-collapsed .nav-section-title,
body.sidebar-collapsed .sidebar-link > span:last-child,
body.sidebar-collapsed .sidebar-footer { display: none; }
body.sidebar-collapsed .sidebar-brand { justify-content: center; padding-inline: .4rem; }
body.sidebar-collapsed .sidebar-profile { justify-content: center; padding-inline: .4rem; }
body.sidebar-collapsed .sidebar-link { justify-content: center; padding-inline: .4rem; }

.public-header { display: flex; align-items: center; justify-content: space-between; min-height: 70px; padding: .65rem clamp(1rem,4vw,3rem); color: #fff; background: var(--sidebar); }
.public-brand > span:last-child { display: grid; line-height: 1.05; }
.public-brand strong { font-size: 1.18rem; font-weight: 500; }
.public-shell { max-width: 74rem; margin-inline: auto; padding-block: clamp(2rem,7vw,5rem); }

.environment-badge,
.status-card > span {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    padding: 0.35rem 0.7rem;
    font-size: 0.78rem;
    font-weight: 750;
}

.environment-badge { background: var(--accent); color: #fff; text-decoration: none; }
.hero { max-width: 52rem; }
.eyebrow { margin: 0 0 .55rem; color: var(--accent-dark); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
h1 { margin: 0; color: #34495e; font-size: clamp(1.8rem, 4vw, 2.65rem); line-height: 1.08; font-weight: 400; letter-spacing: -.025em; }
.lead { margin-top: 1rem; color: var(--muted); font-size: clamp(.95rem, 2vw, 1.08rem); line-height: 1.65; }

.status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-top: 1.5rem;
}

.status-card {
    min-width: 0;
    padding: 1.15rem;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 2px;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}

.status-card h2 { margin: 1rem 0 0.45rem; font-size: 1.1rem; }
.status-card p { margin: 0; color: #647087; line-height: 1.55; }
.status-card.complete > span { background: #def7e8; color: #187344; }
.status-card.pending > span { background: #fff0ce; color: #855a00; }
.status-card.queued > span { background: #ecebff; color: #5146a8; }
.error-text { color: #b42318; }

code { overflow-wrap: anywhere; }

.auth-page { min-height: calc(100vh - 12rem); display: grid; place-items: center; }
.auth-card {
    width: min(100%, 28rem);
    padding: clamp(1.5rem, 5vw, 2.5rem);
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 3px;
    box-shadow: 0 2px 12px rgba(42,63,84,.12);
}
.auth-heading h1, .auth-card > h1 { font-size: clamp(1.8rem, 8vw, 2.35rem); }
.auth-heading p, .auth-card > p { color: #647087; line-height: 1.55; }
.auth-form { display: grid; gap: 0.55rem; margin-top: 1.75rem; }
.auth-form label { margin-top: 0.55rem; font-size: 0.9rem; font-weight: 750; }
.auth-form input {
    width: 100%; min-height: 3rem; padding: 0.75rem 0.9rem;
    border: 1px solid #ccc; border-radius: 3px; background: #fff; font: inherit;
}
.auth-form input:focus { outline: 3px solid rgba(26,187,156,.14); border-color: var(--accent); }
.primary-button {
    display: inline-flex; align-items: center; justify-content: center; min-height: 3rem;
    margin-top: 1rem; padding: .7rem 1rem; border: 1px solid var(--accent-dark); border-radius: 3px;
    background: var(--accent); color: #fff; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer;
}
.primary-button:hover { background: var(--accent-dark); }
.validation-summary, .field-error { color: #b42318; font-size: 0.88rem; }
.validation-summary:empty, .field-error:empty { display: none; }

.module-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--border); }
.module-heading h1 { font-size: clamp(1.7rem, 4vw, 2.3rem); }
.module-heading .primary-button { width: auto; margin-top: 0; }
.data-panel { padding: clamp(1rem, 3vw, 1.25rem); background: #fff; border: 1px solid var(--border); border-radius: 2px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.catalog-tabs { display: flex; gap: .5rem; margin-bottom: .75rem; padding: .3rem; width: fit-content; max-width: 100%; background: #eef2f6; border: 1px solid #d5dde5; border-radius: 4px; }
.catalog-tab { min-height: 42px; padding: .65rem 1rem; color: #34495e; background: #fff; border: 1px solid #c9d3dd; border-radius: 3px; font-weight: 700; cursor: pointer; }
.catalog-tab:hover { color: #203448; background: #f4f7fa; border-color: #9eacba; }
.catalog-tab.active { color: #fff; background: #2a3f54; border-color: #2a3f54; box-shadow: 0 2px 5px rgba(32,52,72,.25); }
.catalog-tab:focus-visible { outline: 3px solid rgba(17,112,177,.25); outline-offset: 2px; }
.service-catalog-section[hidden] { display: none; }
.service-catalog-section .panel-heading { margin-bottom: 1rem; }
.service-catalog-section .panel-heading h2 { margin-top: .2rem; font-size: clamp(1.35rem, 3vw, 1.7rem); }
.search-label { display: block; margin-bottom: .45rem; font-weight: 800; }
.search-input { width: min(100%, 38rem); min-height: 2.7rem; padding: .65rem .8rem; border: 1px solid #ccc; border-radius: 3px; font: inherit; }
.search-input:focus { outline: 3px solid rgba(26,187,156,.12); border-color: var(--accent); }
.data-status { color: var(--muted); }
.responsive-table { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 52rem; }
th, td { padding: .7rem .65rem; text-align: left; border-bottom: 1px solid var(--border); }
tbody tr:hover { background: #f5fbfa; }
th { color: var(--muted); background: #f7f7f7; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.pager { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; padding-top: 1rem; }
.pager button { min-height: 2.35rem; padding: .45rem .8rem; border: 1px solid #ccc; background: #fff; border-radius: 3px; cursor: pointer; }
.pager button:disabled { opacity: .45; cursor: default; }
.notice { margin: 0 0 1rem; padding: .8rem 1rem; border-radius: 3px; font-weight: 650; }
.notice.success { color: #136c41; background: #def7e8; }
.notice.error { color: #9f241b; background: #fee4e2; }
.write-off-button { min-height: 2.7rem; padding: .65rem 1rem; color: #fff; background: #c05b31; border: 1px solid #a94722; border-radius: 3px; font: inherit; font-weight: 700; cursor: pointer; }
.write-off-button:hover { background: #a94722; }
.inventory-history-panel { margin-top: 1rem; }
.inventory-history-panel .panel-heading { margin-bottom: .7rem; }
.inventory-history-panel h2 { margin-top: .15rem; color: #2a4358; font-size: 1.35rem; }
.write-off-history { min-width: 66rem; }
.write-off-history td { vertical-align: top; }
.write-off-history td:nth-child(5) { max-width: 24rem; white-space: normal; }
.write-off-dialog { width: min(calc(100% - 1.25rem), 39rem); }
.dialog-hint { margin: -.2rem 0 .25rem; padding: .75rem .85rem; color: #5e7181; background: #f4f7f9; border-left: 3px solid #c05b31; line-height: 1.45; }
.stock-balance { margin-top: -.5rem; padding: .6rem .75rem; color: #23664f; background: #e8f6f0; border-radius: 3px; font-size: .9rem; font-weight: 700; }
.stock-empty { color: #b42318; }
.form-dialog { width: min(calc(100% - 1.25rem), 34rem); padding: 0; border: 0; border-radius: 3px; box-shadow: 0 1.5rem 4rem rgba(24,32,50,.25); }
.shift-closing-dialog { width: min(calc(100% - 1.25rem), 72rem); max-height: min(92vh, 60rem); border-radius: 12px; }
.shift-closing-form { gap: 1rem; padding: clamp(1rem, 2.5vw, 1.75rem); }
.shift-closing-lead { margin: -.25rem 0 0; color: #64778a; }
.shift-closing-loading { padding: 2rem; color: #597084; background: #f5f8fa; border: 1px solid #dfe7ed; border-radius: 8px; text-align: center; font-weight: 700; }
#shift-closing-content { display: grid; gap: .9rem; }
#shift-closing-content[hidden] { display: none; }
.shift-closing-period { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .9rem; color: #3f5b70; background: #eef5f7; border: 1px solid #d6e5e9; border-radius: 7px; }
.shift-closing-period span { color: #6a7f90; font-size: .82rem; }
.shift-closing-section { padding: 1rem; background: #fff; border: 1px solid #dfe6eb; border-radius: 9px; box-shadow: 0 4px 14px rgba(42,63,84,.04); }
.shift-closing-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.shift-closing-section-heading span { color: #0b8d74; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.shift-closing-section-heading h3 { margin: .15rem 0 0; color: #2a4358; font-size: 1.08rem; }
.shift-closing-section-heading > strong { font-size: 1.15rem; }
.shift-closing-table-wrap { border: 1px solid #e3e9ee; border-radius: 7px; }
.shift-closing-table { min-width: 42rem; }
.shift-closing-table th, .shift-closing-table td { padding: .58rem .7rem; }
.shift-closing-table td:not(:first-child), .shift-closing-table th:not(:first-child) { text-align: right; }
.shift-closing-table tfoot th { color: #2e4b60; background: #edf6f3; }
.payment-kind-dot { display: inline-block; width: .55rem; height: .55rem; margin-right: .45rem; border-radius: 50%; }
.payment-kind-dot.cash { background: #13aa78; }
.payment-kind-dot.noncash { background: #4d78b8; }
.shift-closing-kpis, .shift-control-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin-top: .8rem; }
.shift-closing-kpis article, .shift-control-grid article { display: grid; gap: .2rem; min-width: 0; padding: .72rem; background: #f6f8fa; border: 1px solid #e4e9ed; border-radius: 7px; }
.shift-closing-kpis span, .shift-control-grid span, .shift-control-grid small { color: #6b7e8e; font-size: .76rem; }
.shift-closing-kpis strong, .shift-control-grid strong { color: #243e54; font-size: 1.02rem; }
.shift-expense-list { display: grid; gap: .45rem; }
.shift-expense-list > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem .7rem; background: #fff7f6; border-radius: 6px; }
.shift-expense-list small { color: #8a7471; }
.shift-expense-list strong, .negative { color: #b43b31; }
.material-cost-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .7rem; padding: .75rem; background: #fff3e9; border: 1px solid #efd3ba; border-radius: 6px; }
.material-cost-summary span { display: grid; gap: .18rem; }
.material-cost-summary small { color: #806b5b; font-size: .76rem; }
.cash-reconciliation { background: #f4faf7; border-color: #cce8db; }
.cash-equation { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1.15fr; align-items: stretch; gap: .5rem; }
.cash-equation > div { display: grid; align-content: center; gap: .25rem; min-width: 0; padding: .7rem; background: #fff; border: 1px solid #dce9e2; border-radius: 7px; }
.cash-equation > b { align-self: center; color: #71867b; font-size: 1.15rem; }
.cash-equation span { color: #687d72; font-size: .74rem; line-height: 1.25; }
.cash-equation-total { color: #08775f; background: #e3f5ed !important; border-color: #a9dcc8 !important; }
.cash-equation-total strong { font-size: 1.15rem; }
.shift-opening-note { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .7rem; color: #667c71; font-size: .83rem; }
.actual-cash-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(12rem,.65fr); gap: .65rem 1rem; padding: 1rem; background: #f2f5f8; border: 1px solid #d5dee5; border-radius: 9px; }
.actual-cash-card > label { grid-column: 1 / -1; margin: 0; color: #2b455a; font-size: 1rem; }
.actual-cash-input { position: relative; }
.actual-cash-input input { width: 100%; padding-right: 2.5rem; background: #fff; font-size: 1.15rem; font-weight: 800; }
.actual-cash-input > span { position: absolute; top: 50%; right: .9rem; color: #718394; transform: translateY(-50%); }
.actual-cash-difference { display: grid; align-content: center; gap: .2rem; padding: .55rem .7rem; background: #fff; border-radius: 6px; }
.actual-cash-difference span { color: #718394; font-size: .75rem; }
.balanced { color: #08775f !important; }
.positive { color: #1769a3 !important; }
.negative { color: #b43b31 !important; }
.form-dialog::backdrop { background: rgba(16, 24, 40, .52); backdrop-filter: blur(3px); }
.system-confirm-dialog { width: min(calc(100% - 1.5rem), 27rem); padding: 0; overflow: hidden; color: var(--text); background: #fff; border: 0; border-radius: 12px; box-shadow: 0 24px 70px rgba(23,45,68,.3); }
.system-confirm-dialog[open] { animation: system-confirm-in .16s ease-out; }
.system-confirm-dialog::backdrop { background: rgba(23,45,68,.62); backdrop-filter: blur(2px); }
.system-confirm-card { display: grid; grid-template-columns: 3rem minmax(0,1fr); gap: 0 1rem; padding: 1.5rem; }
.system-confirm-icon { display: grid; width: 3rem; height: 3rem; place-items: center; color: #355b7d; background: #edf3f8; border-radius: 50%; }
.system-confirm-icon svg { width: 1.4rem; height: 1.4rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.system-confirm-copy { min-width: 0; padding-top: .15rem; }
.system-confirm-copy h2 { margin: 0; color: #263d52; font-size: 1.15rem; line-height: 1.3; }
.system-confirm-copy p { margin: .45rem 0 0; color: #667b8e; line-height: 1.5; }
.system-confirm-actions { display: flex; grid-column: 1 / -1; justify-content: flex-end; gap: .65rem; margin-top: 1.35rem; }
.system-confirm-actions button { min-height: 2.6rem; padding: .62rem 1rem; border-radius: 6px; font: inherit; font-weight: 750; cursor: pointer; }
.system-confirm-cancel { color: #51677b; background: #fff; border: 1px solid #cbd5df; }
.system-confirm-cancel:hover { background: #f5f7f9; border-color: #aebbc7; }
.system-confirm-submit { color: #fff; background: #2a3f54; border: 1px solid #203448; box-shadow: 0 2px 5px rgba(32,52,72,.18); }
.system-confirm-submit:hover { background: #203448; }
.system-confirm-dialog[data-tone="success"] .system-confirm-icon { color: #08785f; background: #def7ed; }
.system-confirm-dialog[data-tone="success"] .system-confirm-submit { background: var(--accent); border-color: var(--accent-dark); }
.system-confirm-dialog[data-tone="success"] .system-confirm-submit:hover { background: var(--accent-dark); }
.system-confirm-dialog[data-tone="danger"] .system-confirm-icon { color: #b42318; background: #fee8e6; }
.system-confirm-dialog[data-tone="danger"] .system-confirm-submit { background: #c83b31; border-color: #ae2f27; }
.system-confirm-dialog[data-tone="danger"] .system-confirm-submit:hover { background: #ae2f27; }
@keyframes system-confirm-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
.entity-form { display: grid; gap: .5rem; padding: clamp(1.2rem, 4vw, 2rem); }
.entity-form label { margin-top: .45rem; font-weight: 750; }
.entity-form input, .entity-form select, .entity-form textarea { min-height: 2.7rem; padding: .65rem .75rem; border: 1px solid #ccc; border-radius: 3px; background: #fff; font: inherit; }
.entity-form input:focus, .entity-form select:focus, .entity-form textarea:focus { outline: 3px solid rgba(26,187,156,.12); border-color: var(--accent); }
.vehicle-catalog-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:.55rem 0 .2rem; padding:1rem; border:1px solid #dce7ed; border-radius:10px; background:linear-gradient(145deg,#f8fbfc,#fff); }
.vehicle-catalog-field { display:grid; align-content:start; gap:.38rem; min-width:0; }
.vehicle-catalog-label { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.entity-form .vehicle-catalog-label label { margin:0; color:#29445e; }
.vehicle-catalog-label span { color:#8393a4; font-size:.72rem; font-weight:700; }
.entity-form .vehicle-catalog-native { display:none; }
.vehicle-combobox { position:relative; min-width:0; }
.vehicle-combobox.open { z-index:35; }
.vehicle-combobox-trigger { display:flex; width:100%; min-height:3.35rem; align-items:center; justify-content:space-between; gap:.8rem; padding:.55rem .85rem; border:1px solid #bfd0dc; border-radius:9px; background:#fff; color:#18354d; text-align:left; font:inherit; cursor:pointer; transition:border-color .15s ease,box-shadow .15s ease,background .15s ease; }
.vehicle-combobox-trigger:hover:not(:disabled),.vehicle-combobox.open .vehicle-combobox-trigger { border-color:#1abb9c; box-shadow:0 0 0 3px rgba(26,187,156,.11); }
.vehicle-combobox-trigger>span { display:grid; min-width:0; gap:.08rem; }
.vehicle-combobox-trigger small { color:#7c8fa1; font-size:.67rem; font-weight:700; line-height:1.2; }
.vehicle-combobox-trigger strong { overflow:hidden; color:#516b82; font-size:.92rem; font-weight:750; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.vehicle-combobox.has-value .vehicle-combobox-trigger strong { color:#08785f; }
.vehicle-combobox-trigger i { flex:0 0 auto; width:.52rem; height:.52rem; margin-right:.2rem; border-right:2px solid #527089; border-bottom:2px solid #527089; transform:translateY(-20%) rotate(45deg); transition:transform .15s ease; }
.vehicle-combobox.open .vehicle-combobox-trigger i { transform:translateY(20%) rotate(225deg); }
.vehicle-combobox-trigger:disabled { color:#8291a1; border-color:#dae2e8; background:#f2f5f7; cursor:not-allowed; }
.vehicle-combobox-panel { box-sizing:border-box; position:absolute; top:calc(100% + .45rem); left:0; z-index:50; width:calc(200% + .8rem); max-width:none; overflow:hidden; padding:.75rem; border:1px solid #cfdae3; border-radius:12px; background:#fff; box-shadow:0 18px 45px rgba(25,45,65,.2); }
.vehicle-combobox[data-vehicle-combobox="model"] .vehicle-combobox-panel { right:0; left:auto; }
.vehicle-combobox-panel[hidden] { display:none; }
.vehicle-combobox-backdrop { display:none; }
.vehicle-combobox-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.1rem .2rem .55rem; color:#1d3b54; }
.vehicle-combobox-heading>button { display:grid; width:2rem; height:2rem; place-items:center; border:0; border-radius:50%; background:#eef3f6; color:#49647b; font-size:1.35rem; cursor:pointer; }
.vehicle-combobox-search { display:flex; align-items:center; gap:.5rem; margin:0 0 .6rem; padding:0 .7rem; border:1px solid #b9cbd7; border-radius:9px; background:#fff; color:#698096; }
.entity-form .vehicle-combobox-search input { width:100%; min-height:2.75rem; padding:.45rem 0; border:0; outline:0; box-shadow:none; }
.vehicle-combobox-options { display:grid; max-height:17rem; gap:.3rem; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.vehicle-combobox-option { display:flex; width:100%; min-height:3.2rem; align-items:center; justify-content:space-between; gap:.75rem; padding:.55rem .7rem; border:1px solid transparent; border-radius:8px; background:#fff; color:#25425a; text-align:left; cursor:pointer; }
.vehicle-combobox-option[hidden],.vehicle-combobox-empty[hidden] { display:none; }
.vehicle-combobox-option:hover,.vehicle-combobox-option:focus-visible { border-color:#b9ddd3; outline:0; background:#effaf7; }
.vehicle-combobox-option>span { display:grid; min-width:0; gap:.08rem; }
.vehicle-combobox-option strong { overflow-wrap:anywhere; font-size:.88rem; line-height:1.25; }
.vehicle-combobox-option small { color:#8191a2; font-size:.68rem; }
.vehicle-combobox-option i { display:grid; flex:0 0 auto; width:1.4rem; height:1.4rem; place-items:center; border:1px solid #bfd0dc; border-radius:50%; color:transparent; font-size:.75rem; font-style:normal; }
.vehicle-combobox-option.selected { border-color:#1abb9c; background:#eaf8f4; color:#08785f; }
.vehicle-combobox-option.selected i { border-color:#1abb9c; background:#1abb9c; color:#fff; }
.vehicle-combobox-option.unset-option strong { color:#687d91; }
.vehicle-combobox-empty { margin:.5rem 0 0; padding:1.2rem; border-radius:8px; background:#f5f8fa; color:#718397; text-align:center; }
.vehicle-catalog-field>small { min-height:1rem; color:#718397; font-size:.72rem; }
@media(max-width:620px){
    .vehicle-catalog-picker{grid-template-columns:1fr;padding:.8rem;gap:.7rem}
    .vehicle-catalog-field>small{min-height:0}
    .vehicle-combobox-trigger{min-height:3.65rem;border-radius:10px}
    .vehicle-combobox-trigger strong{font-size:1rem;white-space:normal}
    .vehicle-combobox-panel,.vehicle-combobox[data-vehicle-combobox="model"] .vehicle-combobox-panel{position:fixed;top:auto;right:.55rem;bottom:.55rem;left:.55rem;width:auto;max-width:none;max-height:min(76dvh,36rem);padding:.9rem;border-radius:18px;box-shadow:0 0 0 100vmax rgba(20,36,52,.48),0 -12px 45px rgba(16,33,48,.24)}
    .vehicle-combobox-backdrop.active{display:block;position:fixed;inset:0;z-index:40;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:default}
    .vehicle-combobox-panel{z-index:50}
    .vehicle-combobox-heading{padding:.2rem .15rem .75rem;font-size:1.05rem}
    .vehicle-combobox-search{margin-bottom:.75rem;border-radius:11px}
    .entity-form .vehicle-combobox-search input{min-height:3rem;font-size:1rem}
    .vehicle-combobox-options{max-height:calc(min(76dvh,36rem) - 8.5rem);gap:.4rem}
    .vehicle-combobox-option{min-height:3.7rem;padding:.65rem .75rem;border-color:#e0e7ec;border-radius:11px}
    .vehicle-combobox-option strong{font-size:.98rem}
    .vehicle-combobox-option small{font-size:.72rem}
}
.dialog-heading, .dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.dialog-heading h2 { margin: 0; font-size: 1.7rem; }
.icon-button { border: 0; background: transparent; font-size: 2rem; cursor: pointer; }
.dialog-actions { justify-content: flex-end; margin-top: 1rem; }
.secondary-button { min-height: 2.7rem; padding: .65rem .9rem; border: 1px solid #ccc; border-radius: 3px; background: #fff; color: #536a7f; font: inherit; font-weight: 600; cursor: pointer; }
.secondary-button:hover { background: #f5f5f5; }
.secondary-button, .primary-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.table-action-button { display: inline-flex; align-items: center; justify-content: center; min-height: 2.15rem; padding: .4rem .65rem; border: 1px solid #9fd7c8; border-radius: .45rem; color: #08785f; background: #effaf7; font-size: .82rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.table-action-button:hover { border-color: #1abb9c; background: #e2f7f1; }
.entity-link { color: #0b68a8; font-weight: 750; text-decoration: none; }
.entity-link:hover { text-decoration: underline; }
.compact-heading { align-items: end; }
.editor-panel { max-width: 760px; }
.editor-panel .entity-form { padding: 0; }
.client-editor-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(28rem, 1.1fr); align-items: start; gap: 1rem; }
.client-editor-layout .editor-panel { max-width: none; }
.client-details-panel, .client-vehicles-panel { min-width: 0; }
.client-editor-heading { margin-bottom: 1.15rem; }
.client-editor-heading h2 { margin: .18rem 0 0; color: #243c52; }
.client-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.client-contact-grid > div { display: grid; gap: .5rem; }
.field-hint { margin: 0; color: #718296; font-size: .86rem; line-height: 1.45; }
.client-vehicle-list { display: grid; gap: .7rem; }
.client-vehicle-card { display: grid; grid-template-columns: 2.3rem minmax(0, 1fr) auto; align-items: center; gap: .85rem; min-width: 0; padding: .9rem 1rem; border: 1px solid #d8e2e9; border-radius: .75rem; background: linear-gradient(135deg, #fbfdfd, #f5faf9); }
.vehicle-card-number { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; color: #08785f; background: #dcf7ef; font-weight: 800; }
.vehicle-card-body { display: grid; min-width: 0; gap: .18rem; }
.vehicle-card-body strong { color: #163952; font-size: 1.05rem; letter-spacing: .04em; }
.vehicle-card-body span, .vehicle-card-body small { color: #647b8e; overflow-wrap: anywhere; }
.vehicle-primary-badge { align-self: center; padding: .35rem .55rem; border-radius: 999px; color: #08785f; background: #e4f8f2; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.client-danger-panel { margin-top: 1rem; }
.client-danger-panel .danger-zone { margin-top: 0; padding-top: 0; border-top: 0; }
.client-vehicle-dialog { width: min(36rem, calc(100vw - 2rem)); }
.dialog-lead { margin: -.1rem 0 .35rem; color: #647b8e; line-height: 1.5; }
.empty-state { padding: 1.2rem; border: 1px dashed #b9ccd8; border-radius: .75rem; background: #f8fbfc; }
.empty-state p { margin: .35rem 0 0; color: #647b8e; }
.field-validation, .validation-summary { color: #b42318; font-size: .9rem; }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid #e5e7eb; }
.danger-zone p { margin: .3rem 0 0; color: #64748b; }
.danger-zone input { min-height: 2.7rem; width: min(100%, 28rem); margin-top: .65rem; padding: .6rem .75rem; border: 1px solid #cbd5e1; border-radius: .65rem; font: inherit; }
.danger-button { min-height: 2.8rem; padding: .65rem 1rem; border: 1px solid #dc2626; border-radius: .7rem; background: #fff; color: #b91c1c; font: inherit; font-weight: 750; cursor: pointer; }
.danger-button:hover { background: #fef2f2; }
.status-pill { display: inline-flex; padding: .25rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 750; }
.status-pill.active { color: #087443; background: #dff7e9; }
.status-pill.inactive { color: #9f1239; background: #ffe4e6; }
.journal-panel { overflow: hidden; padding: 0; border-color: #dfe5eb; border-radius: 8px; box-shadow: 0 8px 24px rgba(42,63,84,.07); }
.journal-panel .data-status { margin: 0; padding: .8rem 1.25rem; color: #5f7387; background: #fff; border-bottom: 1px solid #edf0f2; font-weight: 650; }
.filter-grid.journal-filters { max-width: none; padding: 1.15rem 1.25rem; background: linear-gradient(135deg, #f8fafc 0%, #f1f6f8 100%); border-bottom: 1px solid #e3e8ed; }
.journal-filters .search-label { color: #34495e; font-size: .88rem; }
.journal-filters .search-input { width: 100%; background: #fff; border-color: #cfd8e1; border-radius: 6px; }
.journal-shift-period { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 2.7rem; padding: .65rem .8rem; color: #17664f; background: #e6f7f0; border: 1px solid #c8eadc; border-radius: 6px; font-weight: 750; }
.journal-live-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .35rem; color: #617589; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.journal-live-status i { width: .55rem; height: .55rem; border-radius: 50%; background: #9aa8b5; box-shadow: 0 0 0 3px rgba(154,168,181,.15); }
.journal-live-status.connected { color: #087f65; }
.journal-live-status.connected i { background: #12b894; box-shadow: 0 0 0 3px rgba(18,184,148,.16); }
.journal-live-status.connecting i { background: #e1a72d; box-shadow: 0 0 0 3px rgba(225,167,45,.15); animation: journal-live-pulse 1.2s ease-in-out infinite; }
.journal-live-status.offline { color: #a83b34; }
.journal-live-status.offline i { background: #d1534a; }
@keyframes journal-live-pulse { 50% { opacity: .35; } }
.journal-table { min-width: 78rem; }
.journal-table th { padding-block: .8rem; color: #647b91; background: #f8fafb; border-bottom-color: #dfe5eb; }
.journal-table td { height: 58px; padding-block: .75rem; vertical-align: middle; }
.journal-table tbody tr { transition: background-color .15s ease, box-shadow .15s ease; }
.journal-table tbody tr:hover { background: #f3faf8; box-shadow: inset 3px 0 0 var(--accent); }
.journal-time { font-variant-numeric: tabular-nums; font-weight: 750; }
.journal-plate { display: inline-flex; padding: .28rem .5rem; color: #273d51; background: #f1f4f7; border: 1px solid #dbe2e8; border-radius: 4px; font-weight: 700; letter-spacing: .035em; white-space: nowrap; }
.journal-service { max-width: 27rem; }
.journal-bay { display: inline-grid; width: 2rem; height: 2rem; place-items: center; color: #34495e; background: #edf2f6; border-radius: 50%; font-weight: 800; }
.journal-amount { color: #263b4e; font-variant-numeric: tabular-nums; font-weight: 800; white-space: nowrap; }
.journal-amount small { color: #8494a4; font-size: .72rem; font-weight: 700; }
.journal-payment-cell { min-width: 8.5rem; }
.journal-payment-badge { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.15rem; padding: .38rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.journal-payment-badge.paid { color: #087443; background: #dff7e9; border: 1px solid #c4ecd6; }
.journal-payment-badge.unpaid { color: #a21b3e; background: #fff0f2; border: 1px solid #ffd8df; }
.journal-payment-button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 2.35rem; padding: .48rem .8rem; color: #fff; background: linear-gradient(135deg, #1abb9c, #15967d); border: 1px solid #12876f; border-radius: 6px; box-shadow: 0 2px 5px rgba(21,150,125,.2); font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; white-space: nowrap; transition: box-shadow .15s ease, transform .15s ease, filter .15s ease; }
.journal-payment-button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.journal-payment-button:hover { box-shadow: 0 5px 12px rgba(21,150,125,.3); filter: brightness(.96); transform: translateY(-1px); }
.journal-payment-button:active { box-shadow: 0 1px 3px rgba(21,150,125,.22); transform: translateY(0); }
.journal-payment-button:focus-visible { outline: 3px solid rgba(26,187,156,.22); outline-offset: 2px; }
.journal-edit-button { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.3rem; padding: .45rem .7rem; color: #34495e; background: #fff; border: 1px solid #cbd5df; border-radius: 6px; font-size: .78rem; font-weight: 750; text-decoration: none; white-space: nowrap; transition: background-color .15s ease, border-color .15s ease, transform .15s ease; }
.journal-edit-button svg { width: .95rem; height: .95rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.journal-edit-button:hover { color: #203448; background: #f1f6f9; border-color: #9fb0bf; transform: translateY(-1px); }
.journal-row-actions { display: flex; align-items: center; gap: .4rem; }
.journal-receipt-button { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.3rem; padding: .45rem .65rem; color: #08785f; background: #f2fbf8; border: 1px solid #b9dfd4; border-radius: 6px; font-size: .78rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.journal-receipt-button svg { width: .95rem; height: .95rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.journal-receipt-button:hover { color: #065f4d; background: #e4f7f1; border-color: #82c4b1; }
.journal-photo-button { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.3rem; padding: .45rem .65rem; color: #285c85; background: #f4f8fc; border: 1px solid #c5d8e8; border-radius: 6px; font-size: .78rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.journal-photo-button svg { width: .95rem; height: .95rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.journal-photo-button:hover { color: #17486f; background: #e9f2f9; border-color: #91b4cf; }
.journal-service > span:first-child { display: block; }
.journal-extra-services { display: -webkit-box; max-width: 26rem; margin-top: .3rem; overflow: hidden; color: #587186; font-size: .75rem; line-height: 1.3; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.journal-extra-services b { color: #08785f; }
.journal-panel .pager { padding: 1rem 1.25rem; background: #fbfcfd; border-top: 1px solid #edf0f2; }
.filter-grid { display: grid; grid-template-columns: minmax(180px, .45fr) minmax(280px, 1fr); gap: 1rem; max-width: 900px; }
.filter-grid > div { display: grid; gap: .45rem; }
.inactive-row { opacity: .58; }
.heading-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.shift-badge { display: inline-flex; padding: .55rem .75rem; border-radius: 999px; color: #087443; background: #dff7e9; font-size: .86rem; font-weight: 750; }
.order-editor { max-width: 920px; min-width: 0; }
.order-editor .entity-form { padding: 0; }
.form-section { display: grid; min-inline-size: 0; width: 100%; gap: .5rem; margin: 0 0 1rem; padding: 1rem; border: 1px solid var(--border); border-radius: 2px; }
.form-section input, .form-section select, .form-section textarea, .form-section > div { min-width: 0; max-width: 100%; }
.form-section legend { padding: 0 .4rem; font-size: 1.05rem; font-weight: 800; }
.two-column-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
.two-column-form > div { display: grid; gap: .35rem; }
.wide-field { grid-column: 1 / -1; }
.checkbox-field { align-content: end; grid-template-columns: auto 1fr !important; align-items: center; }
.checkbox-field input { min-height: auto; width: 1.2rem; height: 1.2rem; }
.lookup-results { display: grid; max-height: 18rem; overflow-y: auto; border-radius: .65rem; box-shadow: 0 .7rem 2rem rgba(15, 23, 42, .12); }
.lookup-results:empty { display: none; }
.lookup-results button { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border: 0; border-bottom: 1px solid #e2e8f0; background: #fff; text-align: left; cursor: pointer; }
.lookup-results button:hover { background: #eff6ff; }
.lookup-results span, .selected-value { color: #64748b; }
.additional-picker { display: grid; grid-template-columns: 1fr auto; gap: .6rem; }
.selected-extras { display: grid; gap: .5rem; }
.selected-extra { display: grid; grid-template-columns: 1fr minmax(9rem, .25fr) auto; align-items: center; gap: .6rem; padding: .55rem .7rem; border: 1px solid #e2e8f0; border-radius: .65rem; }
.selected-extra > input[type="hidden"] { display: none; }
.edit-comment-section { border-color: #b8dccc; background: #f7fcfa; }
.form-label { display: block; margin-top: .45rem; font-weight: 750; }
.current-order-comment { margin: .35rem 0 0; padding: .75rem; color: #536a7f; background: #f4f7f9; border: 1px solid #dce3e9; border-radius: 4px; white-space: pre-wrap; }
@media (max-width: 720px) { .filter-grid { grid-template-columns: 1fr; } .danger-zone { align-items: stretch; flex-direction: column; } }

.expense-filters { grid-template-columns: minmax(150px, .3fr) minmax(150px, .3fr) minmax(280px, 1fr); max-width: 100%; }
.entity-form textarea { resize: vertical; }
@media (max-width: 1050px) {
    .client-editor-layout { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .client-contact-grid { grid-template-columns: 1fr; }
    .client-editor-heading { align-items: stretch; flex-direction: column; }
    .client-editor-heading .primary-button { width: 100%; }
    .client-vehicle-card { grid-template-columns: 2.2rem minmax(0, 1fr); }
    .vehicle-primary-badge { grid-column: 2; justify-self: start; }
}
.report-filter-panel { margin-bottom: 1rem; }
.report-filters { grid-template-columns: minmax(150px, .35fr) minmax(150px, .35fr) auto; align-items: end; }
.report-filters .primary-button { margin: 0; }
.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; margin: 1rem 0; }
.metric-card { display: grid; gap: .4rem; padding: 1rem; border: 1px solid var(--border); border-radius: 2px; background: #fff; }
.metric-card span, .metric-card small { color: #647087; }
.metric-card strong { font-size: clamp(1.25rem, 2.5vw, 1.75rem); }
.metric-card.expense strong { color: #b42318; }
.metric-card.net { border-color: #9fd6bb; background: #effcf5; }
.report-section { margin-top: 1rem; }
.report-section h2 { margin: 0 0 1rem; }
.report-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.report-columns > *, .report-section { min-width: 0; }
.report-photo-link { display: inline-flex; padding: .36rem .6rem; color: #17664f; background: #edf8f4; border: 1px solid #c5e4d8; border-radius: 5px; font-size: .78rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.report-photo-link:hover { color: #0d4d3a; background: #ddf1e9; border-color: #93c9b6; }
.compact-table { min-width: 26rem; }
.daily-chart { display: grid; gap: .55rem; }
.daily-row { display: grid; grid-template-columns: 5rem 1fr minmax(7rem, auto); align-items: center; gap: .8rem; }
.daily-row time { color: #526079; font-size: .88rem; }
.daily-row strong { text-align: right; }
.bar-track { position: relative; display: grid; gap: 3px; min-height: 15px; }
.bar { display: block; min-width: 2px; height: 6px; border-radius: 999px; }
.bar.revenue { background: #18a66a; }
.bar.expense { background: #ef6b73; }
.settings-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.settings-summary article { display: grid; gap: .25rem; padding: 1rem; border: 1px solid var(--border); border-radius: 2px; background: #fff; }
.settings-summary strong { font-size: 1.6rem; }
.settings-summary span, .section-heading p { color: #647087; }
.settings-section { margin-bottom: 1rem; }
.premium-settings-section { border-left: 4px solid #1abb9c; }
.premium-settings-form { display: grid; gap: 1rem; }
.premium-enabled-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: #f1faf7; border: 1px solid #c8e9de; border-radius: 7px; cursor: pointer; }
.premium-enabled-card > span { display: grid; gap: .25rem; }
.premium-enabled-card small { color: #687c75; }
.premium-enabled-card input { flex: 0 0 auto; width: 1.35rem; height: 1.35rem; accent-color: var(--accent-dark); }
.premium-tier-list { display: grid; gap: .65rem; }
.premium-tier-row { display: grid; grid-template-columns: minmax(12rem,1fr) minmax(12rem,1fr) auto; align-items: end; gap: .75rem; padding: .8rem; background: #f7f9fa; border: 1px solid #dfe5e9; border-radius: 7px; }
.premium-tier-row label { display: block; margin-bottom: .4rem; font-size: .82rem; font-weight: 750; }
.money-input { position: relative; }
.money-input input { width: 100%; padding-right: 2.2rem; }
.money-input span { position: absolute; top: 50%; right: .8rem; color: #73879c; transform: translateY(-50%); }
.premium-tier-remove { width: 2.7rem; height: 2.7rem; color: #b42318; background: #fff; border: 1px solid #e2b8b3; border-radius: 6px; font: 700 1.4rem/1 Arial; cursor: pointer; }
.premium-settings-actions { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.premium-settings-actions .primary-button { margin-top: 0; }
@media (max-width: 700px) { .premium-tier-row { grid-template-columns: 1fr auto; } .premium-tier-row > div { grid-column: 1 / -1; } .premium-tier-remove { grid-column: 2; grid-row: 1; justify-self: end; } }
.settings-section h2 { margin: 0 0 1rem; }
.settings-form { display: grid; gap: .8rem 1rem; }
.settings-form > div { display: grid; gap: .4rem; }
.settings-form input, .settings-form textarea { min-height: 2.7rem; padding: .65rem .75rem; border: 1px solid #ccc; border-radius: 3px; font: inherit; }
.settings-form .primary-button { width: fit-content; margin: 0; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-heading h2, .section-heading p { margin: 0; }
.integration-panel { min-width: 0; max-width: none; }
.integration-panel h2 { margin-top: 0; }
.integration-form { padding: 1rem 0 0; }
.integration-form .primary-button { width: fit-content; }
.primary-button:disabled { opacity: .5; cursor: not-allowed; }
.recognition-result { display: grid; gap: .35rem; margin-top: 1rem; padding: 1rem; border-radius: .7rem; background: #f1f5f9; }
.recognition-result strong { font-size: 1.5rem; }
.recognition-result.success { color: #136c41; background: #def7e8; }
.recognition-result.error { color: #9f241b; background: #fee4e2; }
.integration-heading p { margin: .35rem 0 0; color: var(--muted, #687c91); }
.integration-lab-grid { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(520px, 1.28fr); align-items: start; gap: 1rem; }
.integration-panel { padding: 1.2rem; }
.integration-card-heading { display: flex; align-items: center; gap: .75rem; margin-bottom: .7rem; }
.integration-card-heading h2 { margin: .1rem 0 0; color: #29435b; }
.integration-step { display: grid; flex: 0 0 2rem; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #19b99a; color: #fff; font-weight: 900; }
.camera-roi-form { gap: .75rem; padding-top: 1rem; }
.camera-roi-editor { position: relative; overflow: hidden; width: 100%; border: 1px solid #bfd0dc; border-radius: 12px; background: #14222e; line-height: 0; touch-action: none; user-select: none; cursor: crosshair; }
.camera-roi-editor img { display: block; width: 100%; height: auto; pointer-events: none; }
.camera-roi-selection { position: absolute; border: 2px solid #ff4d45; background: rgba(255, 66, 57, .16); box-shadow: 0 0 0 9999px rgba(9, 24, 36, .42), inset 0 0 0 1px rgba(255,255,255,.85); pointer-events: none; }
.camera-roi-editor-hint { position: absolute; right: .65rem; bottom: .65rem; padding: .42rem .6rem; border-radius: 7px; background: rgba(16, 39, 55, .82); color: #fff; font-size: .72rem; font-weight: 750; line-height: 1.2; pointer-events: none; }
.camera-roi-dimensions { margin: 0; color: #718497; font-size: .8rem; }
.camera-roi-coordinate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.camera-roi-coordinate-grid label { display: grid; gap: .3rem; min-width: 0; color: #405a72; font-size: .77rem; font-weight: 800; }
.camera-roi-coordinate-grid input { box-sizing: border-box; width: 100%; min-width: 0; }
.camera-roi-actions { display: flex; justify-content: flex-end; gap: .65rem; }
.camera-roi-result { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(240px, 1.2fr); align-items: stretch; gap: .8rem; margin-top: 1rem; }
.camera-roi-crop-preview { display: grid; gap: .45rem; min-width: 0; padding: .7rem; border: 1px solid #d4e0e8; border-radius: 12px; background: #f6f9fb; }
.camera-roi-crop-preview span { color: #60778c; font-size: .75rem; font-weight: 800; }
.camera-roi-crop-preview img { display: block; width: 100%; min-height: 85px; max-height: 180px; border-radius: 7px; background: #dae4eb; object-fit: contain; }
.camera-roi-result .recognition-result { align-content: center; margin: 0; }
.camera-roi-note { margin-top: 1rem; }
@media (max-width: 1050px) { .integration-lab-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
    .integration-panel { padding: .8rem; }
    .integration-card-heading { align-items: flex-start; }
    .camera-roi-coordinate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .camera-roi-actions { align-items: stretch; flex-direction: column; }
    .camera-roi-actions > * { justify-content: center; width: 100%; }
    .camera-roi-result { grid-template-columns: 1fr; }
    .camera-roi-editor-hint { right: .35rem; bottom: .35rem; left: .35rem; text-align: center; }
}
.inline-actions { display: flex; align-items: center; gap: .35rem; }
.inline-actions form { margin: 0; }
.danger-text { color: #b42318; }
.inline-form { display: inline; margin: 0; }
.table-note { display: block; margin-top: .15rem; color: #66758a; font-size: .75rem; font-weight: 400; }
.feedback-filters { grid-template-columns: minmax(140px,.3fr) minmax(140px,.3fr) minmax(120px,.2fr) minmax(260px,1fr); max-width: 100%; }
.feedback-summary { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1rem 0; }
.feedback-summary article { display: grid; min-width: 9rem; padding: .7rem .9rem; border-radius: .7rem; background: #f1f5f9; }
.feedback-summary strong { font-size: 1.35rem; }
.feedback-summary span { color: #647087; font-size: .82rem; }
.score-pill { display: inline-flex; min-width: 3.5rem; justify-content: center; padding: .25rem .5rem; border-radius: 999px; font-weight: 800; background: #fee4e2; color: #9f241b; }
.score-4, .score-5 { background: #def7e8; color: #136c41; }
.score-3 { background: #fff0ce; color: #855a00; }
.plate-recognition { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .6rem; }
.plate-recognition .data-status { grid-column: 1 / -1; margin: 0; }
.data-hint { margin: .75rem 0 0; color: #66758a; font-size: .86rem; line-height: 1.45; }
@media (max-width: 980px) { .feedback-filters { grid-template-columns: 1fr 1fr; } }
@media (max-width: 880px) { .expense-filters { grid-template-columns: 1fr 1fr; } .expense-filters > div:last-child { grid-column: 1 / -1; } }
@media (max-width: 960px) { .metric-grid, .settings-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .report-columns { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
    .shift-closing-dialog { width: 100%; max-width: none; max-height: 96vh; margin: auto 0 0; border-radius: 14px 14px 0 0; }
    .shift-closing-form { padding: 1rem; }
    .shift-closing-form .dialog-heading h2 { font-size: 1.35rem; }
    .shift-closing-period { align-items: flex-start; flex-direction: column; gap: .2rem; }
    .shift-closing-table-wrap { overflow: visible; border: 0; }
    .shift-closing-table { display: block; min-width: 0; }
    .shift-closing-table thead { display: none; }
    .shift-closing-table tbody, .shift-closing-table tfoot { display: grid; gap: .55rem; }
    .shift-closing-table tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .75rem; padding: .7rem; background: #f7f9fb; border: 1px solid #e2e8ed; border-radius: 7px; }
    .shift-closing-table tbody td { display: grid; gap: .1rem; height: auto; padding: 0; text-align: left !important; border: 0; }
    .shift-closing-table tbody td:first-child { grid-column: 1 / -1; font-weight: 750; }
    .shift-closing-table tbody td:nth-child(2)::before { content: 'Заказы'; }
    .shift-closing-table tbody td:nth-child(3)::before { content: 'Основные'; }
    .shift-closing-table tbody td:nth-child(4)::before { content: 'Доп. услуги'; }
    .shift-closing-table tbody td:nth-child(5)::before { content: 'Всего'; }
    .shift-closing-table tbody td:not(:first-child)::before { color: #748697; font-size: .68rem; font-weight: 650; text-transform: uppercase; }
    .shift-closing-table tfoot tr { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .75rem; padding: .7rem; background: #eaf5f1; border-radius: 7px; }
    .shift-closing-table tfoot th { padding: 0; text-align: left !important; background: transparent; border: 0; }
    .shift-closing-table tfoot th:first-child { grid-column: 1 / -1; }
    .shift-closing-kpis, .shift-control-grid { grid-template-columns: 1fr; }
    .cash-equation { grid-template-columns: 1fr; }
    .cash-equation > b { justify-self: center; line-height: .7; }
    .actual-cash-card { grid-template-columns: 1fr; }
    .actual-cash-card > label { grid-column: auto; }
    .shift-closing-form .dialog-actions { position: static; display: grid; grid-template-columns: 1fr 1fr; margin-top: 0; padding-top: .5rem; background: #fff; }
}

@media (max-width: 900px) {
    .app-sidebar, body.sidebar-collapsed .app-sidebar { width: min(84vw, 280px); transform: translateX(-101%); }
    .app-topbar, body.sidebar-collapsed .app-topbar { left: 0; padding-inline: .7rem; }
    .app-content, body.sidebar-collapsed .app-content { margin-left: 0; }
    .sidebar-close { display: block; }
    .sidebar-overlay { position: fixed; inset: 0; z-index: 45; display: block; border: 0; background: rgba(23,45,68,.58); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
    body.sidebar-open { overflow: hidden; }
    body.sidebar-open .app-sidebar { transform: translateX(0); box-shadow: 8px 0 30px rgba(0,0,0,.22); }
    body.sidebar-open .sidebar-overlay { opacity: 1; pointer-events: auto; }
    body.sidebar-collapsed .brand-copy, body.sidebar-collapsed .sidebar-profile div,
    body.sidebar-collapsed .nav-section-title, body.sidebar-collapsed .sidebar-link > span:last-child,
    body.sidebar-collapsed .sidebar-footer { display: initial; }
    body.sidebar-collapsed .brand-copy, body.sidebar-collapsed .sidebar-profile div { display: grid; }
    body.sidebar-collapsed .nav-section-title { display: block; }
    body.sidebar-collapsed .sidebar-brand, body.sidebar-collapsed .sidebar-profile { justify-content: flex-start; padding-inline: 1rem; }
    body.sidebar-collapsed .sidebar-link { justify-content: flex-start; padding-inline: 1rem; }
}

@media (max-width: 760px) {
    .system-confirm-card { padding: 1.2rem; }
    .system-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .system-confirm-actions button { width: 100%; }
    .catalog-tabs { width: 100%; }
    .catalog-tab { flex: 1; padding-inline: .65rem; }
    .module-heading { align-items: stretch; flex-direction: column; }
    .heading-actions { align-items: stretch; flex-direction: column; }
    .two-column-form { grid-template-columns: 1fr; }
    .additional-picker, .selected-extra { grid-template-columns: 1fr; }
    .wide-field { grid-column: auto; }
    .status-grid { grid-template-columns: 1fr; }
    .expense-filters { grid-template-columns: 1fr; }
    .expense-filters > div:last-child { grid-column: auto; }
    .report-filters, .metric-grid { grid-template-columns: 1fr; }
    .daily-row { grid-template-columns: 4.5rem 1fr; }
    .daily-row strong { grid-column: 2; text-align: left; }
    .settings-summary { grid-template-columns: 1fr; }
    .section-heading { align-items: stretch; flex-direction: column; }
    .feedback-filters { grid-template-columns: 1fr; }
    .plate-recognition { grid-template-columns: 1fr; }
    .plate-recognition .data-status { grid-column: auto; }
    .page-shell { width: 100%; padding: .85rem; }
    .app-footer { padding: .85rem; text-align: center; }
    .topbar-title strong { max-width: 42vw; }
    .topbar-user { display: none; }
    .status-grid { margin-top: 1.5rem; }
    .data-panel { padding: .9rem; }
}

@media (max-width: 420px) {
    .topbar-title small, .topbar-avatar { display: none; }
    .user-menu { gap: .2rem; }
    .public-header { padding-inline: .8rem; }
}

.photo-report-heading .module-subtitle { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; margin: .65rem 0 0; color: #64748b; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }
.photo-upload-panel, .photo-gallery-panel { margin-top: 1rem; }
.photo-upload-form { display: grid; justify-items: start; gap: .85rem; }
.photo-file-picker { display: inline-flex; align-items: center; gap: .8rem; min-width: min(100%, 24rem); padding: .85rem 1rem; color: #294257; background: linear-gradient(135deg, #f7fbfd, #eef6f8); border: 1px dashed #8eb6c4; border-radius: 8px; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.photo-file-picker:hover { background: #edf8f6; border-color: #1abb9c; transform: translateY(-1px); }
.photo-file-picker > span:last-child { display: grid; gap: .15rem; }
.photo-file-picker small { color: #718296; font-size: .78rem; }
.photo-file-icon { display: grid; width: 2.65rem; height: 2.65rem; flex: 0 0 auto; place-items: center; color: #fff; background: linear-gradient(135deg, #1abb9c, #148f77); border-radius: 8px; }
.photo-file-icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.photo-preview { display: grid; grid-template-columns: repeat(6, minmax(5rem, 8rem)); gap: .65rem; max-width: 100%; }
.photo-preview:empty { display: none; }
.photo-preview-item { min-width: 0; overflow: hidden; background: #f4f7f9; border: 1px solid #dce4ea; border-radius: 7px; }
.photo-preview-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.photo-preview-item span { display: block; overflow: hidden; padding: .4rem .5rem; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.error-text { color: #b42318 !important; }
.section-count { display: inline-grid; min-width: 1.85rem; height: 1.85rem; margin-left: .25rem; padding: 0 .35rem; place-items: center; color: #385067; background: #edf2f6; border-radius: 999px; font-size: .85rem; vertical-align: middle; }
.order-photo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.order-photo-card { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #dbe3e9; border-radius: 8px; box-shadow: 0 5px 16px rgba(42, 63, 84, .07); }
.order-photo-link { position: relative; display: block; overflow: hidden; color: #fff; background: #e8eef2; text-decoration: none; }
.order-photo-link img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .2s ease; }
.order-photo-link span { position: absolute; right: .55rem; bottom: .55rem; padding: .3rem .5rem; background: rgba(25, 43, 58, .82); border-radius: 4px; font-size: .72rem; font-weight: 750; opacity: 0; transform: translateY(.25rem); transition: opacity .18s ease, transform .18s ease; }
.order-photo-link:hover img { transform: scale(1.025); }
.order-photo-link:hover span { opacity: 1; transform: translateY(0); }
.order-photo-meta { display: grid; gap: .25rem; padding: .75rem; }
.order-photo-meta strong { overflow: hidden; color: #2c4357; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.order-photo-meta small { color: #718296; font-size: .74rem; }
.order-photo-card form { padding: 0 .75rem .75rem; }
.photo-remove-button { padding: .38rem .55rem; color: #a21b3e; background: #fff7f8; border: 1px solid #ffd2da; border-radius: 5px; font: inherit; font-size: .75rem; font-weight: 750; cursor: pointer; }
.photo-remove-button:hover { background: #ffedf0; border-color: #f6a9b7; }
.photo-empty-state { display: grid; justify-items: center; gap: .4rem; padding: 3rem 1rem; color: #65778a; text-align: center; }
.photo-empty-state > span { font-size: 2.4rem; filter: grayscale(.25); }
.photo-empty-state strong { color: #31495d; font-size: 1.05rem; }
.photo-empty-state p { max-width: 34rem; margin: 0; }

@media (max-width: 1100px) {
    .order-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .photo-preview { grid-template-columns: repeat(4, minmax(5rem, 8rem)); }
}
@media (max-width: 720px) {
    .order-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .photo-preview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .photo-file-picker { width: 100%; }
    .order-photo-link span { display: none; }
}
@media (max-width: 420px) {
    .order-photo-grid { grid-template-columns: 1fr; }
}

.loyalty-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.loyalty-tabs { margin: 1rem 0; }
.loyalty-panel { margin-top: 0; }
.loyalty-table { min-width: 70rem; }
.muted-value { color: #718296; font-size: .82rem; }
.table-action { min-height: 2rem; padding: .35rem .55rem; color: #34495e; background: #fff; border: 1px solid #cbd5df; border-radius: 5px; font: inherit; font-size: .76rem; font-weight: 750; cursor: pointer; white-space: nowrap; }
.table-action:hover { background: #f1f6f9; border-color: #9fb0bf; }
.table-action.accent { color: #08785f; background: #f2fbf8; border-color: #b9dfd4; }
.table-action:disabled { opacity: .45; cursor: not-allowed; }
.checkbox-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .75rem; padding: .8rem; background: #f5faf8; border: 1px solid #cfe7de; border-radius: 7px; }
.checkbox-card input { width: 1.2rem; height: 1.2rem; min-height: auto; }
.checkbox-card span { display: grid; gap: .15rem; }
.checkbox-card small { color: #718296; }
.notification-safety-note { display: grid; gap: .2rem; margin-bottom: 1rem; padding: .8rem 1rem; color: #6c5609; background: #fff8dc; border: 1px solid #eadb9a; border-radius: 7px; }
.notification-safety-note span { font-size: .86rem; line-height: 1.45; }
.notification-table { min-width: 72rem; }
.notification-message-cell { min-width: 20rem; max-width: 34rem; white-space: normal; line-height: 1.4; }
.status-pill.pending { color: #7a5900; background: #fff3cd; }
@media (max-width: 960px) { .loyalty-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .loyalty-metrics { grid-template-columns: 1fr; } }

/* Worker payroll */
.payroll-heading .module-subtitle { margin: .45rem 0 0; color: #647087; }
.payroll-filter-actions { display: flex; align-items: center; gap: .65rem; }
.payroll-filter-actions .secondary-button { min-height: 2.75rem; text-decoration: none; }
.payroll-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.payroll-table small { font-weight: 500; color: #718096; }
.table-note { display: block; margin-top: .2rem; color: #718096; font-size: .78rem; font-weight: 500; }
.positive-value { color: #08785f; }
.negative-value { color: #b42318; }
.table-action { padding: .42rem .65rem; color: #17664f; background: #edf8f4; border: 1px solid #b7ddcf; border-radius: 4px; font-weight: 750; cursor: pointer; }
.table-action:hover { background: #dff2eb; }
.empty-cell { padding: 2rem !important; color: #718096; text-align: center; }
.payroll-dialog { width: min(calc(100% - 1.25rem), 76rem); max-width: none; }
.payroll-dialog-body { padding: 1.35rem; }
.payroll-tabs { margin: 1rem 0; }
.field-hint { margin: -.35rem 0 .3rem; color: #718096; font-size: .82rem; }

/* Fast journal order editor */
.order-page-heading p { margin: .45rem 0 0; color: #66788a; }
.quick-order-editor { width: 100%; max-width: none; margin-inline: 0; padding: clamp(.85rem, 1.5vw, 1.5rem); border-radius: 10px; box-shadow: 0 10px 32px rgba(42,63,84,.08); }
.quick-order-editor .entity-form { gap: 1rem; }
.quick-order-editor .form-section { margin: 0; padding: clamp(1rem, 2vw, 1.35rem); background: #fff; border-color: #dce4ea; border-radius: 9px; }
.quick-order-editor .form-section.selection-invalid { border-color: #e6a29c; box-shadow: 0 0 0 3px rgba(180,35,24,.08); }
.quick-order-editor .order-step > legend { padding: 0 .6rem; color: #2a3f54; font-size: 1.08rem; }
.quick-order-editor .order-step > legend span { display: inline-grid; width: 1.8rem; height: 1.8rem; margin-right: .35rem; place-items: center; color: #fff; background: #1abb9c; border-radius: 50%; font-size: .82rem; }
.order-client-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, .42fr); gap: .8rem 1rem; }
.order-client-grid > div { display: grid; gap: .4rem; }
.client-lookup-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.quick-client-button { display: inline-flex; min-height: 2.2rem; align-items: center; gap: .4rem; padding: .35rem .65rem; color: #08785f; background: #edf8f4; border: 1px solid #b9dfd4; border-radius: 6px; font: inherit; font-size: .8rem; font-weight: 750; cursor: pointer; }
.quick-client-button span { display: grid; width: 1.25rem; height: 1.25rem; place-items: center; color: #fff; background: #1abb9c; border-radius: 50%; font-size: 1rem; }
.quick-client-button:hover { background: #dff3ec; border-color: #83c6b3; }
.client-not-found { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .7rem .8rem; color: #6c5609; background: #fff9e5; border: 1px solid #eadb9a; border-radius: 7px; }
.client-not-found[hidden] { display: none; }
.client-not-found button { padding: .3rem .55rem; color: #17664f; background: #fff; border: 1px solid #b9d8cc; border-radius: 5px; font: inherit; font-size: .78rem; font-weight: 750; cursor: pointer; }
.selected-value.success { padding: .6rem .75rem; color: #08785f; background: #eaf8f3; border: 1px solid #b9dfd4; border-radius: 6px; }
.quick-client-dialog { width: min(calc(100% - 1.25rem), 38rem); }
.quick-client-dialog .dialog-intro { margin: 0 0 .3rem; color: #66788a; line-height: 1.45; }
.quick-client-dialog .two-column-form > div { display: grid; gap: .35rem; }
.inline-form-error { margin: .2rem 0; padding: .65rem .75rem; color: #9f1239; background: #fff1f2; border: 1px solid #fecdd3; border-radius: 6px; }
.inline-form-error[hidden] { display: none; }
.search-field { position: relative; }
.search-field > span { position: absolute; top: 50%; left: .85rem; z-index: 1; color: #718296; font-size: 1.25rem; transform: translateY(-50%); pointer-events: none; }
.search-field input { width: 100%; padding-left: 2.45rem !important; border-color: #cbd6df !important; border-radius: 7px !important; }
.compact-file-picker { display: flex; min-height: 2.7rem; align-items: center; padding: .65rem .8rem; color: #415a70; background: #f5f9fb; border: 1px dashed #9fb7c7; border-radius: 7px; cursor: pointer; }
.compact-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.plate-entry-row { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .75rem !important; }
.plate-number-field { display: grid; gap: .4rem; }
.plate-camera-button { display: inline-flex; min-width: 13.5rem; min-height: 2.7rem; align-items: center; justify-content: center; gap: .55rem; padding: .55rem .85rem; color: #08785f; background: #f4faf8; border: 1px solid #74bca8; border-radius: 7px; font: inherit; cursor: pointer; transition: background-color .15s ease, border-color .15s ease, transform .15s ease; }
.plate-camera-button:hover { background: #eaf8f3; border-color: #1abb9c; transform: translateY(-1px); }
.plate-camera-button strong { color: inherit; white-space: nowrap; }
.plate-camera-icon { display: grid; flex: 0 0 auto; width: 1.65rem; height: 1.65rem; place-items: center; color: #fff; background: #1abb9c; border-radius: 50%; font-size: .8rem; }
.plate-recognition-dialog { width: min(calc(100% - 1.25rem), 43rem); overflow: hidden; border-radius: 10px; }
.plate-recognition-dialog-body { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 1.5rem); }
.plate-recognition-dialog .dialog-intro { margin: 0; color: #66788a; line-height: 1.5; }
.plate-photo-area { position: relative; display: grid; width: 100%; min-height: 18rem; overflow: hidden; place-items: center; padding: 1rem; color: #405a6f; background: #f5f8fa; border: 2px dashed #a9bac7; border-radius: 9px; font: inherit; cursor: pointer; }
.plate-photo-area:hover { background: #eef7f4; border-color: #64b39d; }
.plate-photo-area img, .plate-photo-area video, .plate-photo-area canvas { width: 100%; max-height: 26rem; object-fit: contain; border-radius: 6px; }
.plate-photo-area video, .plate-photo-area canvas { background: #111; }
.plate-photo-area img[hidden], .plate-photo-area video[hidden], .plate-photo-area canvas[hidden], .plate-photo-area span[hidden] { display: none; }
.plate-photo-area > span { display: grid; max-width: 24rem; place-items: center; gap: .45rem; text-align: center; }
.plate-photo-area > span b { display: grid; width: 3.3rem; height: 3.3rem; place-items: center; color: #fff; background: #1abb9c; border-radius: 50%; font-size: 1.5rem; }
.plate-photo-area > span strong { color: #2a3f54; font-size: 1.05rem; }
.plate-photo-area > span small { color: #718296; line-height: 1.45; }
.plate-recognition-progress { display: flex; align-items: center; gap: .7rem; padding: .85rem 1rem; color: #31566d; background: #edf5fa; border-radius: 7px; }
.plate-recognition-progress[hidden], .plate-recognition-result[hidden], .plate-not-found-actions[hidden] { display: none; }
.recognition-spinner { width: 1.25rem; height: 1.25rem; border: 2px solid #b9d3e2; border-top-color: #1575a8; border-radius: 50%; animation: recognition-spin .75s linear infinite; }
@keyframes recognition-spin { to { transform: rotate(360deg); } }
.plate-recognition-result { display: grid; gap: .3rem; padding: .9rem 1rem; border: 1px solid; border-radius: 8px; }
.plate-recognition-result strong { font-size: 1.15rem; }
.plate-recognition-result span { line-height: 1.45; }
.plate-recognition-result.success { color: #08785f; background: #eaf8f3; border-color: #adddcc; }
.plate-recognition-result.warning { color: #73570a; background: #fff9e5; border-color: #eadb9a; }
.plate-recognition-result.error { color: #a12b22; background: #fff0ef; border-color: #efb9b4; }
.plate-camera-status { min-height: 1.3rem; margin: -.25rem 0 0; color: #66788a; font-size: .84rem; line-height: 1.45; }
.plate-camera-actions { display: flex; justify-content: flex-end; gap: .65rem; }
.plate-camera-actions .primary-button { margin-top: 0; }
.plate-not-found-actions { display: flex; justify-content: flex-end; gap: .65rem; }
.plate-not-found-actions > [hidden] { display: none; }
.plate-not-found-actions .primary-button, .plate-dialog-default-actions .primary-button { margin-top: 0; }
.step-hint { margin: 0 0 .35rem; color: #66788a; }
.vehicle-category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .7rem; }
.vehicle-category-card { position: relative; display: grid; min-width: 0; min-height: 5.6rem; align-content: center; gap: .25rem; padding: .9rem 3rem .9rem 1rem; background: #f8fafb; border: 1px solid #d7e0e7; border-radius: 8px; cursor: pointer; transition: transform .15s ease, border-color .15s ease, background-color .15s ease, box-shadow .15s ease; }
.vehicle-category-card:hover { border-color: #7fbbaa; transform: translateY(-1px); }
.vehicle-category-card input { position: absolute; opacity: 0; pointer-events: none; }
.vehicle-category-card strong { min-width: 0; color: #2b4357; font-size: 1rem; line-height: 1.25; overflow-wrap: anywhere; }
.vehicle-category-card small { color: #718296; }
.category-check { position: absolute; top: 50%; right: .9rem; display: grid; width: 1.55rem; height: 1.55rem; place-items: center; color: transparent; background: #fff; border: 2px solid #b9c7d1; border-radius: 50%; transform: translateY(-50%); }
.vehicle-category-card:has(input:checked) { background: #eaf8f3; border-color: #1abb9c; box-shadow: 0 4px 12px rgba(26,187,156,.12); }
.vehicle-category-card:has(input:checked) .category-check { color: #fff; background: #1abb9c; border-color: #1abb9c; }
.vehicle-category-card:has(input:checked) strong { color: #08785f; }
.category-selected-label { display: none; color: #08785f; font-weight: 750; }
.vehicle-category-card:has(input:checked) .category-prompt { display: none; }
.vehicle-category-card:has(input:checked) .category-selected-label { display: inline; }
.work-option-sections { display: grid; gap: 1rem; }
.worker-browser-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.work-option-section { display: grid; min-width: 0; gap: .65rem; padding: 1rem; background: #f9fbfc; border: 1px solid #dde5eb; border-radius: 8px; }
.work-option-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.work-option-heading h3, .work-option-heading p { margin: 0; }
.work-option-heading h3 { color: #2a3f54; font-size: 1rem; }
.work-option-heading p { margin-top: .15rem; color: #718296; font-size: .8rem; }
.compact-search-field { position: relative; width: min(100%, 19rem); }
.compact-search-field span { position: absolute; top: 50%; left: .75rem; color: #718296; transform: translateY(-50%); pointer-events: none; }
.compact-search-field input { width: 100%; min-height: 2.45rem !important; padding: .5rem .7rem .5rem 2rem !important; border-radius: 7px !important; }
.work-option-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .55rem; max-height: 15rem; overflow-y: auto; padding: .1rem .15rem .1rem 0; }
.work-option-card { position: relative; display: grid; min-width: 0; min-height: 4.6rem; align-content: center; gap: .18rem; padding: .7rem 2.45rem .7rem .75rem; color: #2e465a; background: #fff; border: 1px solid #d5e0e7; border-radius: 7px; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.work-option-card:hover { background: #f1faf7; border-color: #83c6b3; transform: translateY(-1px); }
.work-option-card[hidden] { display: none; }
.work-option-card strong { min-width: 0; line-height: 1.2; overflow-wrap: anywhere; }
.work-option-card small { color: #718296; }
.work-option-card .option-check { position: absolute; top: 50%; right: .75rem; display: grid; width: 1.45rem; height: 1.45rem; place-items: center; color: transparent; background: #fff; border: 2px solid #bdcbd5; border-radius: 50%; transform: translateY(-50%); }
.work-option-card.selected { color: #08785f; background: #e9f8f3; border-color: #1abb9c; }
.work-option-card.selected small { color: #08785f; font-weight: 750; }
.work-option-card.selected .option-check { color: #fff; background: #1abb9c; border-color: #1abb9c; }
.work-option-card.unavailable { opacity: .42; cursor: not-allowed; transform: none; }
.work-option-card.none-option { background: #f4f7f9; }
.work-option-card.none-option.selected { background: #e9f8f3; }
.option-empty { margin: 0; padding: .8rem; color: #718296; text-align: center; }
.work-option-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.compact-option-grid { grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); max-height: none; }
.compact-option-grid .work-option-card { min-height: 4.2rem; }
.option-list-grid { display: grid; grid-template-columns: 1fr; max-height: 20rem; gap: .45rem; }
.option-list-card { display: flex; min-height: 3.75rem; align-items: center; justify-content: space-between; gap: .75rem; padding: .65rem .75rem; }
.option-list-card .option-copy { display: grid; min-width: 0; gap: .15rem; }
.option-list-card .option-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.option-list-card .option-state { display: flex; flex: 0 0 auto; align-items: center; gap: .55rem; color: #718296; font-size: .78rem; font-weight: 750; }
.option-list-card .option-check { position: static; flex: 0 0 auto; transform: none; }
.option-list-card.selected .option-state { color: #08785f; }
.worker-browser-section { align-content: start; }
.payment-browser-section { align-content: start; }
.payment-option-grid { max-height: 14rem; }
.order-services-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.service-browser { align-content: start; }
.service-search-wrap { display: grid; gap: .4rem; }
.service-live-results { display: grid; max-height: 21rem; overflow-y: auto; gap: .45rem; padding: .15rem .2rem .15rem 0; }
.service-choice { display: flex; width: 100%; min-height: 3.7rem; align-items: center; justify-content: space-between; gap: .7rem; padding: .7rem .8rem; color: #2f475b; background: #fff; border: 1px solid #dbe3e9; border-radius: 7px; text-align: left; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }
.service-choice:hover { background: #f1faf7; border-color: #83c6b3; transform: translateY(-1px); }
.service-choice.selected { background: #e8f7f2; border-color: #1abb9c; }
.service-choice[hidden] { display: none; }
.service-choice span { display: grid; min-width: 0; gap: .15rem; }
.service-choice strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.service-choice small { color: #718296; }
.service-choice b { flex: 0 0 auto; color: #08785f; white-space: nowrap; }
.service-empty { margin: .4rem 0; padding: 1rem; color: #718296; background: #f7f9fb; border-radius: 7px; text-align: center; }
.selected-main-service { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .8rem; color: #17664f; background: #eaf8f3; border: 1px solid #a9dacb; border-radius: 7px; }
.selected-main-service[hidden] { display: none; }
.selected-main-service span { display: grid; gap: .1rem; }
.selected-main-service small { color: #4d7c6c; }
.selected-main-service b { white-space: nowrap; }
.text-button { width: fit-content; padding: .2rem 0; color: #9f3340; background: transparent; border: 0; font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.service-price-field { display: grid; gap: .35rem; margin-top: .35rem; padding-top: .75rem; border-top: 1px solid #e5eaee; }
.service-price-field small { color: #718296; }
.quick-order-editor .selected-extras { margin-top: .4rem; }
.quick-order-editor .selected-extra { grid-template-columns: minmax(0, 1fr) minmax(8rem, .35fr) auto; padding: .65rem .75rem; background: #f7fafb; border-color: #dbe3e9; border-radius: 7px; }
.quick-order-editor .selected-extra > span, .quick-order-editor .selected-extra > label { display: grid; gap: .15rem; }
.quick-order-editor .selected-extra small { color: #718296; }
.order-final-step { background: #fbfcfd !important; }
.order-final-summary { align-items: stretch; gap: 1rem; }
.payment-status-card, .order-total-card { min-height: 6rem; padding: 1rem 1.1rem; border-radius: 8px; }
.payment-status-card { display: flex !important; align-items: center; justify-content: space-between; gap: 1rem; background: #f7f9fb; border: 1px solid #dbe3e9; }
.payment-status-copy { display: grid; gap: .2rem; }
.payment-status-copy strong { color: #2a3f54; font-size: 1rem; }
.payment-status-copy span { color: #718296; font-size: .8rem; }
.payment-toggle { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .55rem; color: #40576b; font-weight: 750; cursor: pointer; }
.payment-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.payment-toggle-control { position: relative; width: 2.75rem; height: 1.55rem; background: #cbd5dc; border-radius: 999px; transition: background-color .15s ease; }
.payment-toggle-control::after { position: absolute; top: .2rem; left: .2rem; width: 1.15rem; height: 1.15rem; background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(42,63,84,.25); content: ''; transition: transform .15s ease; }
.payment-toggle input:checked + .payment-toggle-control { background: #1abb9c; }
.payment-toggle input:checked + .payment-toggle-control::after { transform: translateX(1.2rem); }
.payment-toggle input:focus-visible + .payment-toggle-control { outline: 3px solid rgba(26,187,156,.2); outline-offset: 2px; }
.order-total-card { display: flex !important; align-items: center; justify-content: space-between; gap: 1rem; color: #40576b; background: #edf8f4; border: 1px solid #c5e4d8; }
.order-total-card > span { display: grid; gap: .2rem; }
.order-total-card small { color: #658376; font-size: .75rem; font-weight: 500; }
.order-total-card b { color: #335b4d; font-size: .95rem; }
.order-total-card strong { flex: 0 0 auto; color: #08785f; font-size: 1.45rem; white-space: nowrap; }
.order-submit-bar { display: flex; justify-content: flex-end; gap: .65rem; margin-top: .25rem; padding: .75rem; background: #f8fafb; border: 1px solid #dbe3e9; border-radius: 9px; }
@media (max-width: 900px) { .order-services-grid, .order-client-grid, .worker-browser-row { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
    .quick-order-editor { padding: .65rem; border-radius: 7px; }
    .vehicle-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vehicle-category-card { min-height: 5rem; padding: .75rem 2.5rem .75rem .75rem; }
    .quick-order-editor .selected-extra { grid-template-columns: 1fr auto; }
    .quick-order-editor .selected-extra > label { grid-column: 1 / -1; grid-row: 2; }
    .order-submit-bar > * { flex: 1; justify-content: center; text-align: center; }
    .work-option-heading { align-items: stretch; flex-direction: column; }
    .compact-search-field { width: 100%; }
    .work-option-grid { grid-template-columns: 1fr; }
    .compact-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .work-option-row { grid-template-columns: 1fr; }
    .work-option-section { padding: .75rem; }
    .work-option-card { min-height: 4.4rem; padding: .7rem 2.6rem .7rem .7rem; }
    .option-list-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; min-height: 4.25rem; padding: .65rem .7rem; }
    .option-list-card .option-copy { min-width: 0; padding-right: .35rem; }
    .option-list-card .option-copy strong { overflow: visible; line-height: 1.25; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
    .option-list-card .option-copy small { line-height: 1.25; }
    .option-list-card .option-state { min-width: 4.7rem; justify-content: flex-end; }
    .option-list-card .option-state-text { display: none; }
    .option-list-card.selected .option-state-text { display: inline; }
    .worker-option-grid, .payment-option-grid { max-height: 18rem; }
    .option-list-card.none-option { min-height: 5.65rem; align-items: center; }
    .option-list-card.none-option .option-copy { align-self: center; gap: .25rem; }
    .option-list-card.none-option .option-copy strong,
    .option-list-card.none-option .option-copy small { display: block; max-width: 100%; }
    .option-list-card.none-option .option-state { align-self: center; }
    .client-lookup-heading, .client-not-found { align-items: stretch; flex-direction: column; }
    .quick-client-button, .client-not-found button { justify-content: center; width: 100%; }
    .plate-photo-area { min-height: 13rem; }
    .plate-entry-row { grid-template-columns: 1fr; }
    .plate-camera-button { width: 100%; }
    .plate-camera-actions { display: grid; grid-template-columns: 1fr; }
    .plate-camera-actions > * { width: 100%; }
    .plate-not-found-actions { display: grid; grid-template-columns: 1fr; }
    .plate-not-found-actions > * { width: 100%; }
    .payment-status-card { align-items: flex-start; flex-direction: column; }
    .order-submit-bar { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); padding: .55rem; }
    .order-submit-bar > * { min-width: 0; padding-inline: .45rem; }
}

/* Personal discounts and promotions */
.offers-metrics { margin-bottom: 1rem; }
.offers-tabs { margin-bottom: 1rem; }
.offers-panel { padding: 1.25rem; }
.offers-panel[hidden] { display: none !important; }
.promotion-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.promotion-card { display: flex; min-width: 0; flex-direction: column; gap: .75rem; padding: 1.1rem; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, #fff, #f8fbfd); }
.promotion-card.inactive { opacity: .62; }
.promotion-card-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.promotion-card-top > strong { color: #07896c; font-size: 1.4rem; }
.promotion-card h3, .promotion-card p { margin: 0; }
.promotion-card p { color: var(--muted); }
.promotion-card dl { display: grid; gap: .65rem; margin: 0; }
.promotion-card dl > div { display: grid; grid-template-columns: minmax(8rem, .6fr) minmax(0, 1fr); gap: .75rem; padding-top: .65rem; border-top: 1px solid var(--line); }
.promotion-card dt { color: var(--muted); font-size: .78rem; }
.promotion-card dd { margin: 0; font-weight: 700; }
.promotion-card .inline-actions { margin-top: auto; padding-top: .25rem; }
.order-total-card em { display: block; margin-top: .3rem; color: #087f65; font-size: .78rem; font-style: normal; font-weight: 800; }
@media (max-width: 760px) {
    .promotion-grid { grid-template-columns: 1fr; }
    .promotion-card dl > div { grid-template-columns: 1fr; gap: .15rem; }
    .offers-panel { padding: .85rem; }
}

.loyalty-achievement-alert, .customer-reward-alert { border: 1px solid #f2c94c; border-radius: 16px; background: linear-gradient(135deg,#fff9df,#fff3bd); color: #604b00; box-shadow: 0 12px 30px rgba(190,140,0,.14); }
.loyalty-achievement-alert { display:flex; gap:1rem; align-items:center; margin:0 0 1rem; padding:1rem 1.2rem; }
.loyalty-achievement-alert>span { font-size:2rem; }.loyalty-achievement-alert p{margin:.2rem 0}.loyalty-achievement-alert a{font-weight:800;color:#7a5700}
.loyalty-achievement-alert.persistent { position:relative; border-width:2px; }
.loyalty-achievement-content { min-width:0; display:grid; gap:.4rem; }
.journal-reward-list { display:flex; flex-wrap:wrap; gap:.35rem .9rem; }
.journal-reward-list span { display:inline-flex; gap:.25rem; align-items:baseline; }
.journal-reward-list small { color:#806d28; }
.journal-table tr.loyalty-reward-row td { background:#fff9df; }
.journal-table tr.loyalty-reward-row td:first-child { box-shadow:inset 4px 0 #e5ad00; }
.journal-reward-chip { display:block; width:max-content; margin-top:.3rem; padding:.18rem .45rem; border:1px solid #e7bd35; border-radius:999px; background:#fff3bd; color:#6c5200; font-size:.7rem; font-weight:800; white-space:nowrap; }
.loyalty-reward-option { background:#fff9df!important }.loyalty-reward-option em { display:block;color:#8a6300;font-style:normal;font-weight:800;margin-top:.25rem }
.selected-value.loyalty-reward-alert { padding:.85rem 1rem;border:1px solid #e4b929;border-radius:12px;background:#fff6cf;color:#674d00;font-weight:800 }
.client-wash-history{display:grid;gap:.7rem;margin-top:.25rem;padding:.85rem;border:1px solid #d7e4ec;border-radius:10px;background:#f7fafc}.client-wash-history[hidden]{display:none}.client-history-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.client-history-heading>span:first-child{display:grid;gap:.1rem}.client-history-heading strong{color:#29445d}.client-history-heading small{color:#718599}.client-history-heading>span:last-child{max-width:52%;color:#718599;font-size:.76rem;font-weight:800;text-align:right}.client-history-heading>span.success{color:#087b5e}.client-history-heading>span.warning{color:#9b690c}.client-history-heading>span.error{color:#b23830}.client-wash-history-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.client-history-card{display:grid;grid-template-rows:auto 1fr auto auto;gap:.55rem;min-width:0;padding:.75rem;border:1px solid #d8e3eb;border-radius:9px;background:#fff;transition:.16s}.client-history-card.applied{border-color:#19b795;background:#effbf7;box-shadow:inset 0 0 0 1px #19b795}.client-history-meta,.client-history-service{display:grid;gap:.12rem;min-width:0}.client-history-meta time{color:#668096;font-size:.7rem;font-weight:800}.client-history-meta span,.client-history-service small{overflow:hidden;color:#788a9b;font-size:.7rem;line-height:1.3;text-overflow:ellipsis}.client-history-service strong{overflow:hidden;color:#233f58;font-size:.82rem;line-height:1.25;text-overflow:ellipsis}.client-history-card>b{color:#173c57;font-size:.86rem}.repeat-order-button{width:100%;padding:.5rem .6rem;border:1px solid #9fd9ca;border-radius:6px;background:#f0fbf7;color:#087b5e;font-size:.76rem;font-weight:850;cursor:pointer}.repeat-order-button:hover{border-color:#18b897;background:#18b897;color:#fff}.client-history-empty{grid-column:1/-1;margin:0;padding:.5rem;color:#72869a;text-align:center}
@media(max-width:1250px){.client-wash-history-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.client-history-heading{align-items:flex-start;flex-direction:column;gap:.35rem}.client-history-heading>span:last-child{max-width:none;text-align:left}.client-wash-history-list{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.client-history-card{flex:0 0 min(78vw,260px);scroll-snap-align:start}}
.metric-card.reward { border-color:#f0cf62;background:linear-gradient(145deg,#fffdf2,#fff5c9) }
.reward-ready-row { background:#fffaf0 }.reward-ready-pill { display:block;width:max-content;margin-top:.35rem;padding:.25rem .5rem;border-radius:999px;background:#fff0ad;color:#6f5000;font-weight:800;font-size:.75rem }
.loyalty-reward-list,.loyalty-rule-grid,.loyalty-progress-grid { display:grid;gap:1rem }.loyalty-rule-grid,.loyalty-progress-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.loyalty-reward-card { display:grid;grid-template-columns:auto 1fr minmax(260px,.8fr);gap:1rem;align-items:center;border:1px solid #ead27d;border-radius:16px;padding:1rem;background:#fffdf5 }.reward-icon{font-size:2rem}.loyalty-reward-card h3,.loyalty-rule-card h3{margin:.15rem 0}.loyalty-reward-card small{display:block;color:var(--muted);margin-top:.3rem}.reward-issue-form{display:grid;gap:.5rem}
.loyalty-rule-card { display:grid;grid-template-columns:auto 1fr;gap:1rem;border:1px solid var(--line);border-radius:16px;padding:1rem;background:#fff}.loyalty-rule-card.inactive{opacity:.58}.rule-target{display:flex;flex-direction:column;align-items:center;justify-content:center;width:76px;height:76px;border-radius:18px;background:#e8f8f3;color:#087f65}.rule-target strong{font-size:1.8rem}.rule-target span{font-size:.65rem;text-align:center}.loyalty-rule-card .inline-actions{grid-column:1/-1}
.loyalty-rule-card.discount-rule,.loyalty-reward-card.discount-reward{border-color:#a9d8ef;background:linear-gradient(145deg,#fff,#eef9ff)}.loyalty-rule-card.discount-rule .rule-target{background:#e5f4fb;color:#17658b}.reward-type-pill{display:inline-flex;width:max-content;margin-bottom:.35rem;padding:.2rem .45rem;border-radius:999px;font-size:.68rem;font-weight:850}.reward-type-pill.gift{background:#fff0ad;color:#6f5000}.reward-type-pill.discount{background:#dff3fc;color:#17658b}.reward-type-fieldset{margin:0;padding:0;border:0}.reward-type-fieldset legend{margin-bottom:.45rem;font-weight:800}.reward-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.reward-type-option{position:relative;margin:0!important;cursor:pointer}.reward-type-option input{position:absolute;opacity:0;pointer-events:none}.reward-type-option span{display:grid;gap:.2rem;height:100%;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:#fff}.reward-type-option input:checked+span{border-color:#13ae8e;background:#ecfaf6;box-shadow:inset 0 0 0 1px #13ae8e}.reward-type-option small{color:var(--muted)}.checkbox-card.disabled{opacity:.5;pointer-events:none}.loyalty-permanent-discount{display:inline-flex;margin-top:.45rem;padding:.35rem .65rem;border-radius:999px;background:#dff3fc;color:#17658b;font-size:.8rem;font-weight:850}
.client-loyalty-panel{margin-top:1rem}.customer-reward-alert{padding:1rem;margin-bottom:1rem}.customer-reward-alert>div{display:flex;gap:.6rem;align-items:center;font-size:1.05rem}.customer-reward-alert article{display:grid;grid-template-columns:1fr minmax(280px,.8fr);gap:1rem;align-items:center;margin-top:.75rem;padding:.8rem;border-radius:12px;background:rgba(255,255,255,.7)}.customer-reward-alert form{display:flex;gap:.5rem}.customer-reward-alert input{min-width:0}.progress-heading{display:flex;justify-content:space-between;gap:1rem}.progress-heading small{display:block;color:var(--muted)}.loyalty-progress-grid article{border:1px solid var(--line);border-radius:14px;padding:1rem}.loyalty-progress-track{height:10px;margin:.8rem 0;border-radius:999px;background:#e6edf2;overflow:hidden}.loyalty-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#11af90,#20c7a4);border-radius:inherit}.loyalty-progress-grid p{margin:0;color:var(--muted);font-size:.85rem}.reward-history{margin-top:1rem}.reward-history summary{cursor:pointer;font-weight:800}.reward-history p{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:.65rem 0}
@media(max-width:720px){.loyalty-reward-card,.customer-reward-alert article{grid-template-columns:1fr}.customer-reward-alert form{flex-direction:column}.loyalty-achievement-alert{align-items:flex-start}.journal-reward-list{display:grid}.reward-history p{flex-direction:column}.reward-type-grid{grid-template-columns:1fr}}

/* Platform super administrator */
.platform-heading p{margin:.35rem 0 0;color:#71839a}.platform-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.platform-metrics article{padding:1.1rem 1.25rem;border:1px solid #dbe4ee;border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(30,55,80,.06)}.platform-metrics span{display:block;color:#71839a;font-size:.82rem;font-weight:700}.platform-metrics strong{display:block;margin-top:.25rem;color:#18324c;font-size:2rem}.platform-metrics .positive strong{color:#07956f}.platform-metrics .negative strong{color:#c33b32}.platform-list-panel,.platform-section{padding:1.25rem}.platform-search{display:grid;gap:.4rem;margin-bottom:1.2rem}.platform-search label{font-weight:800;color:#29445e}.platform-search>div{display:flex;gap:.6rem}.platform-search input{flex:1;min-width:0}.platform-wash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.platform-wash-card{display:flex;min-width:0;flex-direction:column;padding:1.15rem;border:1px solid #d8e2ec;border-radius:16px;background:linear-gradient(145deg,#fff,#f8fbfd);color:#18324c;text-decoration:none;box-shadow:0 8px 22px rgba(29,53,77,.06);transition:.18s ease}.platform-wash-card:hover{transform:translateY(-2px);border-color:#1bb99a;box-shadow:0 14px 32px rgba(25,90,80,.12)}.platform-wash-card.blocked{background:#fff9f8;border-color:#efd6d3}.platform-wash-card-top{display:flex;justify-content:space-between;align-items:center;color:#8796a8;font-size:.76rem}.platform-status{display:inline-flex;width:max-content;align-items:center;padding:.28rem .58rem;border-radius:999px;font-size:.73rem;font-style:normal;font-weight:800}.platform-status.active{background:#dcf7eb;color:#067b58}.platform-status.blocked{background:#ffe6e3;color:#b32d27}.platform-status.large{padding:.55rem .8rem;font-size:.82rem}.platform-wash-card h2{margin:.85rem 0 .2rem;font-size:1.25rem}.platform-wash-card p{margin:0;color:#526b82}.platform-wash-card>small{margin:.3rem 0 .9rem;color:#7b8da0}.platform-wash-stats{display:flex;gap:1rem;padding:.75rem 0;border-top:1px solid #e8edf2;border-bottom:1px solid #e8edf2;color:#60778c}.platform-wash-stats b{color:#17344e}.platform-module-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:.8rem 0}.platform-module-tags span{padding:.25rem .45rem;border-radius:7px;background:#edf5f7;color:#397060;font-size:.7rem;font-weight:700}.platform-card-link{margin-top:auto;padding-top:.5rem;color:#07896c;font-size:.83rem}.platform-dialog{width:min(680px,calc(100vw - 2rem))}.platform-detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1rem;margin-bottom:1rem}.platform-section{margin-bottom:1rem}.platform-danger-section{display:flex;flex-direction:column;justify-content:space-between;border-color:#f0d3d0;background:#fffafa}.platform-danger-section h2{margin:.25rem 0}.platform-danger-section p{color:#77615f}.platform-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.platform-module-card{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.8rem;padding:1rem;border:1px solid #d9e3ed;border-radius:14px;background:#fbfdff;cursor:pointer}.platform-module-card:has(input:checked){border-color:#19b798;background:#f0fbf8;box-shadow:inset 0 0 0 1px #19b798}.platform-module-card input{position:absolute;opacity:0;pointer-events:none}.module-switch{position:relative;width:42px;height:24px;border-radius:999px;background:#cbd6df;transition:.2s}.module-switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:.2s}.platform-module-card input:checked+.module-switch{background:#18b897}.platform-module-card input:checked+.module-switch:after{transform:translateX(18px)}.platform-module-card strong,.platform-module-card small,.platform-module-card em{display:block}.platform-module-card small{margin:.3rem 0;color:#657c91}.platform-module-card em{color:#8291a1;font-size:.7rem;font-style:normal;font-weight:700}.platform-user-list{display:grid;gap:.65rem}.platform-user-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.85rem;padding:.85rem;border:1px solid #dde6ee;border-radius:13px}.platform-user-card.blocked{opacity:.7;background:#fafafa}.platform-user-avatar{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:#e9f3f7;color:#245a70;font-weight:900}.platform-user-card>div:nth-child(2) strong,.platform-user-card>div:nth-child(2) span,.platform-user-card>div:nth-child(2) small{display:block}.platform-user-card>div:nth-child(2) span{color:#536e86;font-size:.83rem}.platform-user-card>div:nth-child(2) small{color:#8998a6}.platform-user-actions{display:flex;align-items:center;gap:.5rem}.platform-user-actions form{margin:0}.back-link{display:block;margin-bottom:.7rem;color:#567187;text-decoration:none;font-weight:700}
@media(max-width:1050px){.platform-wash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-detail-grid{grid-template-columns:1fr}.platform-user-card{grid-template-columns:auto minmax(0,1fr) auto}.platform-user-actions{grid-column:2/-1}}
@media(max-width:680px){.platform-metrics,.platform-wash-grid,.platform-module-grid{grid-template-columns:1fr}.platform-search>div,.platform-user-actions{align-items:stretch;flex-direction:column}.platform-user-card{grid-template-columns:auto minmax(0,1fr)}.platform-user-card>.platform-status{grid-column:2}.platform-user-actions{grid-column:1/-1}.platform-heading .platform-status.large{margin-top:.6rem}}
.platform-pager{margin-top:1rem}.platform-pager a.disabled{pointer-events:none;opacity:.45}
.platform-section .form-grid,.platform-dialog .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.platform-section .form-grid .full,.platform-dialog .form-grid .full{grid-column:1/-1}.platform-section .form-grid label,.platform-dialog .form-grid label{display:grid;align-content:start;gap:.45rem;min-width:0;margin:0;color:#29445e}.platform-section .form-grid label>span,.platform-dialog .form-grid label>span{font-size:.82rem;font-weight:800}.platform-section .form-grid label>span b,.platform-dialog .form-grid label>span b{color:#d7463b}.platform-section .form-grid input,.platform-section .form-grid textarea,.platform-section .form-grid select,.platform-dialog .form-grid input,.platform-dialog .form-grid textarea,.platform-dialog .form-grid select{box-sizing:border-box;width:100%;min-width:0}.platform-section>.entity-form{gap:1.15rem;padding:.85rem 0 0}.platform-carwash-form textarea{min-height:7rem;line-height:1.45}.platform-carwash-form .form-actions{display:flex;justify-content:flex-start;padding-top:.15rem}
@media(max-width:680px){.platform-section .form-grid,.platform-dialog .form-grid{grid-template-columns:1fr}.platform-section .form-grid .full,.platform-dialog .form-grid .full{grid-column:auto}.platform-section input,.platform-section textarea,.platform-section select,.platform-dialog input,.platform-dialog textarea,.platform-dialog select{box-sizing:border-box;width:100%;max-width:100%;min-width:0}}
@media(max-width:680px){.platform-module-card input{width:auto;max-width:none}}

.platform-class-badge{display:inline-flex;width:max-content;margin-top:.65rem;padding:.3rem .65rem;border-radius:999px;font-size:.74rem;font-weight:850}.platform-class-badge.traditional{background:#eaf2f8;color:#315b78}.platform-class-badge.self-service{background:#e1f8f1;color:#087c61}.platform-class-picker{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:0;border:0}.platform-class-picker legend{grid-column:1/-1;margin-bottom:.1rem;color:#29445e;font-size:.82rem;font-weight:850}.platform-class-picker label{position:relative!important;display:flex!important;min-height:72px;align-items:center!important;padding:.8rem 1rem .8rem 2.6rem!important;border:1px solid #d8e3ec;border-radius:13px;background:#f9fbfd;cursor:pointer}.platform-class-picker label:has(input:checked){border-color:#18b897;background:#effbf7;box-shadow:inset 0 0 0 1px #18b897}.platform-class-picker input{position:absolute;left:1rem;width:18px!important;height:18px!important;accent-color:#18b897}.platform-class-picker span,.platform-class-picker strong,.platform-class-picker small{display:block}.platform-class-picker strong{color:#17344e}.platform-class-picker small{margin-top:.2rem;color:#6d8195;font-weight:500}

.selfservice-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.selfservice-heading h1{margin:.15rem 0 .25rem}.selfservice-heading p:last-child{margin:0;color:#687d91}.selfservice-shift-strip{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.9rem 1.1rem;border:1px solid #bce9dc;border-radius:14px;background:#effbf7}.selfservice-shift-strip small,.selfservice-shift-strip strong{display:block}.selfservice-shift-strip small{color:#608276;font-size:.72rem;font-weight:800;text-transform:uppercase}.selfservice-shift-strip strong{margin-top:.2rem;color:#087b5f}.selfservice-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.selfservice-metrics article{display:grid;gap:.2rem;min-width:0;padding:1rem;border:1px solid #dbe5ed;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(31,55,78,.05)}.selfservice-metrics article.revenue{border-color:#bde6da;background:#f2fbf8}.selfservice-metrics small{color:#657d91;font-size:.75rem;font-weight:800}.selfservice-metrics strong{color:#173550;font-size:1.55rem;line-height:1.1}.selfservice-metrics span{overflow:hidden;color:#8494a3;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.selfservice-visits-card{overflow:hidden;padding:0}.selfservice-visits-card .card-heading-row{padding:1.1rem 1.25rem}.selfservice-table-wrap{margin:0}.selfservice-table{margin:0}.selfservice-table td>small{display:block;margin-top:.2rem;color:#7d8fa1;font-size:.7rem;line-height:1.25}.selfservice-table tr.active-visit{background:#f2fbf8}.selfservice-table tr.active-visit td:first-child{box-shadow:inset 3px 0 #17b897}.plate-chip{display:inline-block;padding:.27rem .5rem;border:1px solid #cfdae5;border-radius:5px;background:#f3f6f9;color:#183750;font-weight:900;letter-spacing:.05em}.bay-circle{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:#eaf1f6;color:#214762;font-weight:900}.visit-status{display:inline-flex;padding:.28rem .55rem;border-radius:999px;font-size:.72rem;font-weight:850}.visit-status.success{background:#dcf7eb;color:#087957}.visit-status.pending{background:#fff3d6;color:#976510}.visit-status.warning{background:#ffe7e2;color:#ae352c}.new-client-mark{display:inline-block!important;width:max-content;margin-top:.25rem!important;padding:.12rem .35rem;border-radius:999px;background:#dff7ed;color:#077a59;font-weight:850}.selfservice-empty{display:grid;min-height:330px;place-items:center;align-content:center;gap:.55rem;text-align:center}.selfservice-empty h2,.selfservice-empty p{margin:0}.selfservice-empty p{max-width:540px;color:#6b7f91}.selfservice-camera-icon{display:grid;width:64px;height:64px;place-items:center;border-radius:50%;background:#e1f8f1;color:#0a9875;font-size:2rem}.empty-inline{display:grid;min-height:190px;place-items:center;align-content:center;gap:.35rem;color:#6b7e90}.empty-inline strong{color:#29445d}.danger-outline{border-color:#efaaa5!important;color:#bd3028!important}.system-alert{margin-bottom:1rem;padding:.8rem 1rem;border-radius:11px;font-weight:750}.system-alert.success{border:1px solid #bce8d9;background:#e8f9f2;color:#087959}.system-alert.error{border:1px solid #f1c3bd;background:#fff0ee;color:#b13830}.selfservice-last-shift{display:grid;gap:.25rem;margin-top:1rem;padding:.8rem 1rem;border:1px solid #d9e5ed;border-radius:12px;background:#f8fbfd;color:#61788d}.selfservice-last-shift strong{color:#1e435d;font-size:.88rem}

@media(max-width:1100px){.selfservice-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.selfservice-metrics article.revenue{grid-column:span 2}}
@media(max-width:680px){.platform-class-picker{grid-template-columns:1fr}.selfservice-heading{align-items:stretch;flex-direction:column}.selfservice-heading form,.selfservice-heading button{width:100%}.selfservice-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.selfservice-metrics article.revenue{grid-column:span 2}.selfservice-shift-strip{align-items:flex-start;flex-direction:column}.selfservice-table thead{display:none}.selfservice-table,.selfservice-table tbody,.selfservice-table tr,.selfservice-table td{display:block;width:100%}.selfservice-table tr{box-sizing:border-box;padding:.8rem 1rem;border-bottom:1px solid #e1e8ee}.selfservice-table td{display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;padding:.35rem 0!important;border:0}.selfservice-table td:before{content:attr(data-label);color:#71859a;font-size:.7rem;font-weight:800;text-transform:uppercase}.selfservice-table td>*{grid-column:2}.selfservice-table tr.active-visit td:first-child{box-shadow:none}}
.storage-current-badge{display:inline-flex;align-items:center;padding:.65rem .9rem;border:1px solid #b9e5d8;border-radius:999px;background:#edf9f5;color:#087b5e;font-size:.82rem;font-weight:850}.storage-provider-panel,.google-storage-panel{padding:0;overflow:hidden}.storage-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1.2rem}.storage-provider-card{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.35rem .75rem;min-width:0;padding:1.05rem;border:1px solid #d8e3ec;border-radius:15px;background:#fff;cursor:pointer;transition:.18s}.storage-provider-card:has(input:checked){border-color:#14b794;background:#effbf7;box-shadow:inset 0 0 0 1px #14b794}.storage-provider-card.unavailable{opacity:.55;cursor:not-allowed}.storage-provider-card input{position:absolute;opacity:0;pointer-events:none}.storage-provider-icon{display:grid;grid-row:1/4;width:44px;height:44px;place-items:center;border-radius:12px;background:#eaf1f6;color:#2c526e;font-size:.85rem;font-weight:900}.storage-provider-icon.google{background:linear-gradient(135deg,#4285f4,#34a853);color:#fff;font-size:1.1rem}.storage-provider-card strong,.storage-provider-card small,.storage-provider-card em{display:block}.storage-provider-card strong{color:#243e56}.storage-provider-card small{color:#718497;font-size:.76rem;line-height:1.35}.storage-provider-card em{color:#0b876a;font-size:.7rem;font-style:normal;font-weight:800}.storage-provider-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.google-storage-connected,.google-storage-connect,.google-storage-setup{padding:1.2rem}.google-storage-connected{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.google-storage-connected>div{display:flex;flex-direction:column;padding:.85rem;border:1px solid #dfe7ed;background:#f8fbfd}.google-storage-connected span{color:#728699;font-size:.76rem}.google-storage-connected strong,.google-storage-connected a{margin-top:.2rem;color:#21435d;font-weight:850}.google-storage-connected p,.google-storage-connected form{grid-column:1/-1}.google-storage-setup code,.google-storage-setup pre{display:block;overflow:auto;padding:.8rem;border:1px solid #d7e2ea;border-radius:8px;background:#f5f8fa;color:#21445d;white-space:pre-wrap}.google-storage-setup li{margin:.35rem 0}.storage-note{margin-top:1rem}
@media(max-width:850px){.storage-provider-grid{grid-template-columns:1fr}.google-storage-connected{grid-template-columns:1fr}.google-storage-connected p,.google-storage-connected form{grid-column:auto}.storage-current-badge{align-self:flex-start}}
.storage-summary-heading{align-items:center}.storage-summary-heading p{margin:0;color:#718497;font-size:.82rem}.storage-wash-list{display:grid}.storage-wash-row{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(150px,.8fr) minmax(210px,1fr) auto auto;align-items:center;gap:1rem;padding:1rem;border-bottom:1px solid #e2e9ef}.storage-wash-row:last-child{border-bottom:0}.storage-wash-row>div:not(.storage-wash-identity){display:grid;gap:.2rem;min-width:0}.storage-wash-row>div>span{color:#718497;font-size:.72rem}.storage-wash-row>div>strong{overflow:hidden;color:#29445e;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.storage-wash-identity{display:flex;align-items:center;gap:.75rem;min-width:0}.storage-wash-identity>div{display:grid;min-width:0}.storage-wash-identity strong{overflow:hidden;color:#1e3a53;text-overflow:ellipsis;white-space:nowrap}.storage-wash-identity small{color:#8392a1}.storage-google-ready{color:#087b5e!important}.storage-google-missing{color:#a56a16!important}.storage-platform-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1050px){.storage-wash-row{grid-template-columns:minmax(220px,1fr) minmax(160px,.8fr) auto}.storage-wash-row>div:nth-child(3){grid-column:1/3}.storage-wash-row>a{grid-column:3}.storage-platform-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.storage-summary-heading{align-items:flex-start;flex-direction:column}.storage-wash-row{grid-template-columns:1fr;gap:.7rem}.storage-wash-row>div:nth-child(3),.storage-wash-row>a{grid-column:auto}.storage-wash-row>.platform-status{justify-self:start}.storage-wash-row>a{width:100%;text-align:center}.storage-platform-metrics{grid-template-columns:1fr}}

@media (max-width: 390px) {
    .compact-option-grid, .vehicle-category-grid { grid-template-columns: 1fr; }
    .order-submit-bar { grid-template-columns: 1fr; }
}
@media (max-width: 960px) { .payroll-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .payroll-metrics { grid-template-columns: 1fr; }
    .payroll-filter-actions { align-items: stretch; flex-direction: column; }
    .payroll-filter-actions > * { justify-content: center; width: 100%; }
    .payroll-dialog-body { padding: .8rem; }
}
/* Camera control / anti-theft module */
.camera-heading p { margin: .45rem 0 0; color: var(--muted, #687c91); max-width: 760px; }
.camera-live-mark { display: inline-flex; align-items: center; gap: .55rem; padding: .65rem 1rem; border-radius: 999px; background: #e2f8ef; color: #087b5e; font-weight: 800; white-space: nowrap; }
.camera-live-mark i { width: .58rem; height: .58rem; border-radius: 50%; background: #14b894; box-shadow: 0 0 0 5px rgba(20,184,148,.13); }
.camera-secret-panel { display: grid; grid-template-columns: minmax(220px,1fr) minmax(260px,1.3fr) auto; align-items: center; gap: 1rem; margin-bottom: 1.2rem; padding: 1.15rem 1.3rem; border: 1px solid #e8c56b; background: #fffae9; }
.camera-secret-panel h2,.camera-secret-panel p { margin: .15rem 0; }
.camera-secret-panel code { overflow: auto; padding: .8rem; border: 1px dashed #b58a21; background: #fff; color: #243c54; font-size: .84rem; }
.camera-control-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; margin-bottom:1rem; padding:1rem 1.1rem; border:1px solid #dce5ed; border-radius:12px; background:#f7fafc; }
.camera-shift-browser { display:grid; flex:1; gap:.75rem; min-width:0; }.camera-shift-browser-head { display:flex; align-items:end; gap:.75rem; }.camera-shift-date-picker { display:grid; gap:.3rem; width:220px; }.camera-shift-date-picker label { color:#60788d; font-size:.7rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }.camera-shift-date-picker input { width:100%; min-height:43px; padding:.65rem .75rem; border:1px solid #bdcdd9; border-radius:8px; background:#fff; color:#203d56; font:inherit; font-weight:800; color-scheme:light; }.camera-shift-date-picker input:focus { border-color:#18b89a; outline:3px solid rgba(24,184,154,.12); }
.camera-shift-stepper { display:flex; align-items:center; gap:.4rem; }.camera-shift-stepper a,.camera-shift-stepper span { display:grid; min-width:43px; min-height:43px; place-items:center; padding:.45rem .75rem; border:1px solid #cbd9e3; border-radius:8px; background:#fff; color:#294b66; font-weight:850; text-decoration:none; }.camera-shift-stepper a:hover { border-color:#18b89a; color:#07856d; }.camera-shift-stepper .current { min-width:132px; }.camera-shift-stepper .current.active { border-color:#b9e8db; background:#e9f9f4; color:#08785e; }.camera-shift-stepper .disabled { opacity:.38; }
.camera-day-shifts { display:flex; gap:.55rem; overflow-x:auto; padding-bottom:.1rem; scrollbar-width:thin; }.camera-day-shifts a { display:grid; flex:0 0 auto; gap:.1rem; min-width:145px; padding:.55rem .75rem; border:1px solid #cfdae4; border-radius:9px; background:#fff; color:#60788d; text-decoration:none; }.camera-day-shifts a span { font-size:.68rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }.camera-day-shifts a strong { color:#24445d; font-size:.84rem; }.camera-day-shifts a:hover,.camera-day-shifts a.active { border-color:#19b99a; background:#eaf9f5; }.camera-day-shifts a.active span,.camera-day-shifts a.active strong { color:#08785f; }.camera-no-shifts { display:flex; align-items:center; gap:.5rem; min-height:47px; padding:.65rem .8rem; border:1px dashed #ccd9e3; border-radius:9px; background:#fff; color:#718599; font-size:.8rem; }.camera-no-shifts strong { color:#3b566e; }
.camera-shift-caption { display:grid; flex:0 0 260px; gap:.2rem; color:#6d8295; font-size:.8rem; text-align:right; }.camera-shift-caption strong { color:#23455f; font-size:1rem; }.camera-shift-caption span { line-height:1.35; }
.camera-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-bottom: 1.1rem; }
.camera-stat-grid>a { position: relative; overflow: hidden; padding: 1rem 1.1rem; border: 1px solid #dce5ed; background: #fff; box-shadow: 0 8px 24px rgba(41,61,81,.06); color:inherit; text-decoration:none; transition:border-color .15s,transform .15s,box-shadow .15s; }
.camera-stat-grid>a:hover,.camera-stat-grid>a.active { transform:translateY(-1px); border-color:#16b795; box-shadow:0 10px 28px rgba(41,61,81,.11); }.camera-stat-grid>a.active { background:#f2fbf8; }
.camera-stat-grid>a::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#67809a; }
.camera-stat-grid>a.success::before { background:#12b792; }.camera-stat-grid>a.warning::before { background:#e8a821; }.camera-stat-grid>a.danger::before { background:#dc4d4d; }
.camera-stat-grid span { display:block; color:#6b7f92; font-size:.84rem; }.camera-stat-grid strong { display:block; margin-top:.25rem; color:#203a53; font-size:1.7rem; }
.camera-stat-grid small { display:block; margin-top:.25rem; color:#0b8c6c; font-size:.72rem; font-weight:700; }
.camera-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(330px,.72fr); gap:1.1rem; align-items:start; }
.panel-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:1.15rem 1.25rem; border-bottom:1px solid #e3eaf0; }
.panel-title-row h2 { margin:.15rem 0 0; }.camera-visits-panel { padding:0; overflow:hidden; }
.camera-filter-tabs { display:flex; flex-wrap:wrap; gap:.45rem; padding:.75rem 1.25rem; border-bottom:1px solid #e3eaf0; background:#f8fafc; }.camera-filter-tabs a { display:inline-flex; align-items:center; gap:.35rem; padding:.48rem .72rem; border:1px solid #cedae3; border-radius:999px; background:#fff; color:#405a72; font-size:.78rem; font-weight:750; text-decoration:none; }.camera-filter-tabs a:hover,.camera-filter-tabs a.active { border-color:#13b58f; background:#eaf9f4; color:#087b5e; }.camera-filter-tabs b { display:inline-grid; min-width:1.25rem; height:1.25rem; place-items:center; padding:0 .25rem; border-radius:999px; background:#dce8ef; color:#314e67; font-size:.68rem; }.camera-filter-tabs a.active b { background:#14b58f; color:#fff; }
.camera-empty { display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:4rem 1rem; color:#708397; }.camera-empty strong { color:#2d465f; }
.camera-visit-list { display:flex; flex-direction:column; }
.camera-visit { display:grid; grid-template-columns:150px minmax(0,1fr); gap:1rem; padding:1rem 1.2rem; border-bottom:1px solid #e2e9ef; border-left:4px solid #8da0b1; }
.camera-visit.matched { border-left-color:#13b58f; }.camera-visit.review { border-left-color:#e7a91f; background:#fffdf7; }.camera-visit.danger { border-left-color:#d84c4c; background:#fffafa; }.camera-visit.ignored { opacity:.65; }
.camera-visit.duration-alert { border-left-color:#e18d18; background:linear-gradient(90deg,#fffbf2 0,#fff 32%); }
.camera-visit-evidence { min-height:105px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid #d6e0e8; background:#edf3f7; color:#7890a5; }
.camera-visit-evidence a,.camera-visit-evidence img { width:100%; height:100%; min-height:105px; display:block; }.camera-visit-evidence img { object-fit:cover; }
.camera-visit-evidence>span { font-size:1.8rem; }.camera-visit-evidence small { margin-top:.25rem; }
.camera-visit-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }.camera-visit-top>div { display:flex; flex-direction:column; }.camera-visit-top strong { font-size:1.05rem; color:#243f58; }.camera-visit-top span:not(.camera-status) { color:#788b9d; font-size:.83rem; }
.camera-status { padding:.35rem .65rem; border-radius:999px; background:#e8eef3; color:#546b80; font-size:.75rem; font-weight:800; white-space:nowrap; }
.camera-status.matched { background:#dcf6eb; color:#087b5e; }.camera-status.review { background:#fff0c9; color:#8a6000; }.camera-status.danger { background:#ffe2e2; color:#aa2f2f; }.camera-status.ignored { background:#eceff2; color:#72808d; }
.camera-visit-meta { display:flex; flex-wrap:wrap; gap:.45rem 1rem; margin-top:.65rem; color:#516a80; font-size:.82rem; }.camera-visit-meta b { color:#263f57; }
.camera-match-reason { margin:.6rem 0; color:#6a7e91; font-size:.84rem; }.camera-linked-order { display:inline-flex; padding:.5rem .7rem; border:1px solid #b9e4d7; background:#effaf6; color:#087b5e; font-weight:800; text-decoration:none; }
.camera-duration { display:grid; grid-template-columns:repeat(3,minmax(90px,1fr)) auto; align-items:center; gap:.55rem; margin:.7rem 0; padding:.65rem .75rem; border:1px solid #d9e4eb; background:#f7fafc; }
.camera-duration>div { display:flex; flex-direction:column; }.camera-duration>div span { color:#7a8da0; font-size:.71rem; }.camera-duration>div strong { color:#263f58; font-size:.88rem; }.camera-duration-status { justify-self:end; padding:.35rem .55rem; border-radius:999px; background:#e8eef3; color:#526a80; font-size:.73rem; font-weight:800; }
.camera-duration.normal { border-color:#bce8d8; background:#f2fbf7; }.camera-duration.normal .camera-duration-status { background:#d9f5e9; color:#087b5e; }
.camera-duration.too-short { border-color:#f0b9b9; background:#fff7f7; }.camera-duration.too-short .camera-duration-status { background:#ffe0e0; color:#ad3030; }
.camera-duration.too-long { border-color:#f0d397; background:#fffbf2; }.camera-duration.too-long .camera-duration-status { background:#ffedc5; color:#8a6000; }
.camera-duration.in-progress .camera-duration-status { background:#dceef9; color:#236589; }
.camera-timeline { margin:.75rem 0; }.camera-timeline-title { display:flex; justify-content:space-between; color:#405a72; font-size:.8rem; }.camera-timeline-title span { color:#7b8fa2; }
.camera-timeline-strip { display:flex; gap:.45rem; margin-top:.4rem; padding-bottom:.25rem; overflow-x:auto; }.camera-timeline-strip a { position:relative; flex:0 0 108px; height:72px; border:1px solid #d3dee6; background:#edf3f7; }.camera-timeline-strip img { width:100%; height:100%; object-fit:cover; }.camera-timeline-strip time { position:absolute; right:.25rem; bottom:.2rem; padding:.08rem .25rem; background:rgba(20,38,55,.78); color:#fff; font-size:.65rem; }
.camera-review-block { margin-top:.8rem; padding-top:.8rem; border-top:1px dashed #d5dee6; }
.camera-candidate-form { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,.7fr) auto; align-items:center; gap:.7rem; margin-top:.55rem; padding:.65rem; border:1px solid #dbe4eb; background:#fff; }
.camera-candidate-form>div { display:flex; flex-direction:column; }.camera-candidate-form span,.camera-candidate-form small { color:#73879a; font-size:.76rem; }.camera-candidate-form input,.camera-ignore-form input { min-width:0; padding:.6rem .7rem; border:1px solid #cdd9e2; }
.camera-ignore-form { display:flex; gap:.65rem; margin-top:.7rem; }.camera-ignore-form input { flex:1; }.camera-danger-copy { color:#a53232; font-weight:700; }
.camera-sidebar-stack { display:flex; flex-direction:column; gap:1rem; }.camera-setup { padding:0; }
.camera-setup summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; cursor:pointer; list-style:none; }.camera-setup summary::-webkit-details-marker { display:none; }.camera-setup summary>span { display:flex; flex-direction:column; }.camera-setup summary strong { color:#27425b; font-size:1rem; }
.camera-details-body,.camera-settings-form,.camera-api-help { padding:0 1.1rem 1.1rem; border-top:1px solid #e2e9ef; }
.camera-endpoint { display:flex; justify-content:space-between; gap:.6rem; padding:.75rem 0; border-bottom:1px solid #e5ebf0; }.camera-endpoint.disabled { opacity:.55; }.camera-endpoint>div:first-child { display:flex; flex-direction:column; }.camera-endpoint span,.camera-endpoint small { color:#75899c; font-size:.77rem; }.camera-endpoint-actions { display:flex; flex-direction:column; align-items:flex-end; }.camera-endpoint-actions .text-button { padding:.15rem; font-size:.75rem; }
.camera-endpoint-form,.camera-settings-form { display:grid; gap:.7rem; margin-top:1rem; }.camera-endpoint-form label,.camera-settings-form label { display:grid; gap:.3rem; color:#3a536b; font-size:.82rem; font-weight:700; }.camera-endpoint-form input,.camera-endpoint-form select,.camera-settings-form input { width:100%; padding:.65rem .7rem; border:1px solid #cad6df; background:#fff; }
.camera-api-help { color:#5e7488; font-size:.85rem; line-height:1.55; }.camera-api-help code { color:#174e70; }.camera-api-url { display:block; padding:.7rem; border:1px solid #cbdde8; background:#f1f7fa; }
.primary-button.compact,.secondary-button.compact { padding:.55rem .7rem; font-size:.78rem; white-space:nowrap; }
.camera-pagination { display:flex; align-items:center; justify-content:flex-end; gap:.75rem; padding:1rem 1.25rem; border-top:1px solid #e2e9ef; }.camera-pagination a { padding:.5rem .75rem; border:1px solid #cbd8e2; background:#fff; color:#38536c; text-decoration:none; }.camera-pagination a:not(.disabled):hover { border-color:#13b58f; color:#087b5e; }.camera-pagination a.disabled { opacity:.45; pointer-events:none; }.camera-pagination span { color:#667d91; font-size:.82rem; }
@media (max-width:1100px) { .camera-layout { grid-template-columns:1fr; }.camera-sidebar-stack { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }.camera-sidebar-stack>details:last-child { grid-column:1/-1; } }
@media (max-width:760px) {
  .camera-heading { align-items:flex-start; }.camera-live-mark { align-self:flex-start; }.camera-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.camera-secret-panel { grid-template-columns:1fr; }
  .camera-control-toolbar { align-items:stretch; flex-direction:column; }.camera-shift-browser-head { align-items:stretch; flex-direction:column; }.camera-shift-date-picker { width:100%; }.camera-shift-stepper { display:grid; grid-template-columns:43px 1fr 43px; }.camera-shift-stepper .current { min-width:0; }.camera-no-shifts { align-items:flex-start; flex-direction:column; }.camera-shift-caption { flex-basis:auto; text-align:left; }.camera-filter-tabs { flex-wrap:nowrap; overflow-x:auto; }.camera-filter-tabs a { flex:0 0 auto; }.camera-pagination { justify-content:space-between; }
  .camera-sidebar-stack { display:flex; }.camera-visit { grid-template-columns:1fr; padding:.9rem; }.camera-visit-evidence { max-height:210px; }.camera-candidate-form { grid-template-columns:1fr; }.camera-ignore-form { flex-direction:column; }.camera-visit-top { flex-direction:column; gap:.4rem; }.camera-status { white-space:normal; }
  .camera-duration { grid-template-columns:repeat(3,minmax(0,1fr)); }.camera-duration-status { grid-column:1/-1; justify-self:stretch; text-align:center; }
}
