:root {
  --ink: #163137;
  --ink-2: #29474d;
  --muted: #718286;
  --line: #dce5e4;
  --canvas: #f3f5f1;
  --paper: #ffffff;
  --teal: #13877c;
  --teal-dark: #0d645d;
  --teal-soft: #dff2ee;
  --amber: #e58a35;
  --blue: #477b9d;
  --violet: #776aa6;
  --nav: #102e34;
  --danger: #bc4d4d;
  --shadow: 0 14px 38px rgba(20, 51, 55, .07);
  --radius: 18px;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }

.eyebrow { margin: 0 0 8px; color: #8ba0a3; font-size: 11px; font-weight: 800; letter-spacing: .15em; }
.eyebrow.accent { color: var(--teal); }
.muted { color: var(--muted); }
.uppercase { text-transform: uppercase; }

.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(380px, .9fr) minmax(560px, 1.1fr); background: var(--paper); }
.auth-brand { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: clamp(48px, 8vw, 120px); color: #eef8f5; background: var(--nav); }
.auth-brand::before { content: ""; position: absolute; width: 560px; height: 560px; right: -280px; top: -160px; border: 1px solid rgba(132, 208, 197, .15); border-radius: 50%; box-shadow: 0 0 0 80px rgba(132, 208, 197, .03), 0 0 0 160px rgba(132, 208, 197, .025); }
.auth-brand::after { content: ""; position: absolute; inset: auto 8% 8% auto; width: 140px; height: 220px; opacity: .24; background: repeating-linear-gradient(135deg, transparent 0 12px, #6fc1b5 13px 14px); transform: skewX(-12deg); }
.brand-mark { display: flex; gap: 6px; align-items: end; height: 42px; margin-bottom: 74px; }
.brand-mark span { display: block; width: 8px; border-radius: 9px; background: #79c9bd; transform: skewX(-14deg); }
.brand-mark span:nth-child(1) { height: 22px; }.brand-mark span:nth-child(2) { height: 32px; }.brand-mark span:nth-child(3) { height: 42px; background: #f0a45d; }
.auth-brand h1 { position: relative; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px, 5vw, 76px); font-weight: 500; line-height: .98; letter-spacing: -.045em; }
.auth-copy { position: relative; max-width: 560px; margin: 32px 0 54px; color: #aac3c1; font-size: 17px; line-height: 1.7; }
.brand-proof { position: relative; display: flex; gap: 48px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.12); }
.brand-proof div { display: grid; gap: 5px; }.brand-proof strong { font-size: 14px; }.brand-proof span { color: #819e9c; font-size: 12px; }
.auth-panel { display: flex; align-items: center; justify-content: center; padding: 48px; overflow: auto; }
.auth-card { width: min(100%, 580px); }
.auth-card h2 { margin: 0; font-size: 35px; letter-spacing: -.035em; }.auth-card > .muted { margin: 10px 0 34px; }
.auth-card label { display: grid; gap: 8px; color: var(--ink-2); font-size: 12px; font-weight: 750; letter-spacing: .02em; }
.auth-card input { width: 100%; height: 50px; padding: 0 15px; color: var(--ink); border: 1px solid #d4dfde; border-radius: 11px; outline: none; background: #fbfcfa; transition: border .2s, box-shadow .2s; }
.auth-card input:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(19,135,124,.1); }
#login-form label + label { margin-top: 18px; }
.auth-card .remember-session { display: flex; align-items: center; gap: 10px; margin-top: 18px; cursor: pointer; }
.auth-card .remember-session input { width: 18px; height: 18px; padding: 0; accent-color: var(--teal); }
.auth-card .remember-session span { color: var(--ink-2); font-size: 13px; font-weight: 650; letter-spacing: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.form-grid .wide { grid-column: 1 / -1; }
.primary-button { width: 100%; height: 52px; display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 22px; color: white; border: 0; border-radius: 11px; background: var(--teal); font-weight: 750; cursor: pointer; transition: background .2s, transform .2s; }
.primary-button:hover { background: var(--teal-dark); transform: translateY(-1px); }.primary-button:disabled { opacity: .6; cursor: wait; }
.primary-button.compact { width: auto; min-width: 145px; height: 43px; margin: 0; padding: 0 18px; }
.secondary-button { height: 43px; padding: 0 18px; color: var(--ink-2); border: 1px solid var(--line); border-radius: 10px; background: white; font-weight: 750; cursor: pointer; }
.form-error { min-height: 18px; margin: 14px 0 -8px; color: var(--danger); font-size: 13px; }
.mobile-brand { display: none; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 16px 18px; color: #c8d8d7; background: var(--nav); }
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 27px; border-bottom: 1px solid rgba(255,255,255,.08); }
.logo-tile, .mini-mark { width: 36px; height: 36px; display: grid; place-items: center; color: #12353a; border-radius: 10px; background: #70c3b7; font-family: Georgia, serif; font-size: 21px; font-weight: 800; transform: rotate(-3deg); }
.sidebar-brand strong { display: block; color: white; font-size: 17px; }.sidebar-brand span { color: #77928f; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.main-nav { display: flex; flex-direction: column; gap: 5px; margin-top: 24px; }
.nav-label { margin: 22px 12px 5px; color: #587571; font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.nav-item { width: 100%; height: 44px; display: flex; align-items: center; gap: 12px; padding: 0 13px; color: #9db3b0; border: 0; border-radius: 10px; background: transparent; cursor: pointer; text-align: left; font-size: 13px; font-weight: 650; }
.nav-item:hover { color: white; background: rgba(255,255,255,.05); }.nav-item.active { color: #fff; background: #1d494d; box-shadow: inset 3px 0 #6fc3b7; }
.nav-icon { width: 22px; color: #73bdb3; font-size: 18px; text-align: center; }
.sidebar-foot { display: grid; grid-template-columns: 35px 1fr 30px; gap: 10px; align-items: center; margin-top: auto; padding: 18px 8px 0; border-top: 1px solid rgba(255,255,255,.08); }
.user-avatar { width: 35px; height: 35px; display: grid; place-items: center; color: #173b3f; border-radius: 50%; background: #eaa263; font-size: 11px; font-weight: 850; }
.user-copy { min-width: 0; }.user-copy strong,.user-copy span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.user-copy strong { color: white; font-size: 12px; }.user-copy span { color: #708d89; font-size: 10px; }
.icon-button { width: 30px; height: 30px; color: #88a29f; border: 0; background: transparent; cursor: pointer; font-size: 18px; }

.workspace { min-width: 0; }
.topbar { height: 94px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 0 clamp(24px, 4vw, 56px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.78); backdrop-filter: blur(12px); }
.breadcrumb { margin: 0 0 5px; color: #8b9a9c; font-size: 9px; font-weight: 850; letter-spacing: .16em; }.topbar h1 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.topbar-actions { display: flex; align-items: center; gap: 16px; }
.company-switcher { display: flex; align-items: center; gap: 9px; padding: 6px 8px 6px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; }.company-switcher span { color: var(--muted); font-size: 11px; font-weight: 700; }.company-switcher select { max-width: 230px; color: var(--ink); border: 0; outline: none; background: transparent; font-size: 12px; font-weight: 750; }
.today { padding-left: 16px; color: var(--muted); border-left: 1px solid var(--line); font-size: 11px; }
.content { padding: 40px clamp(24px, 4vw, 56px) 64px; }
.welcome-row { display: flex; align-items: end; justify-content: space-between; margin-bottom: 26px; }.welcome-row h2,.list-toolbar h2 { margin: 0; font-size: 29px; letter-spacing: -.04em; }.welcome-row .muted,.list-toolbar .muted { margin: 7px 0 0; font-size: 13px; }
.status-pill { display: flex; align-items: center; gap: 8px; padding: 9px 12px; color: #43635e; border: 1px solid #cfe2de; border-radius: 20px; background: #edf7f4; font-size: 10px; font-weight: 750; }.status-pill span { width: 7px; height: 7px; border-radius: 50%; background: #36a675; box-shadow: 0 0 0 4px rgba(54,166,117,.12); }
.metrics-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.metric-card { position: relative; overflow: hidden; min-height: 148px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.metric-card::after { content: ""; position: absolute; width: 110px; height: 110px; top: -58px; right: -48px; border-radius: 50%; background: currentColor; opacity: .065; }
.metric-card p { margin: 18px 0 6px; color: var(--muted); font-size: 11px; font-weight: 700; }.metric-card strong { display: block; font-family: Georgia, serif; font-size: 31px; font-weight: 600; letter-spacing: -.02em; }.metric-card > span { color: #8b999b; font-size: 10px; }
.metric-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: currentColor; color: white; font-size: 14px; }.metric-card.teal { color: var(--teal); }.metric-card.blue { color: var(--blue); }.metric-card.amber { color: var(--amber); }.metric-card.violet { color: var(--violet); }.metric-card p,.metric-card strong,.metric-card > span { color: var(--ink); }.metric-card > span { color: #8b999b; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, .8fr); gap: 16px; margin-top: 16px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.panel-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 22px 24px 14px; }.panel-head h3 { margin: 0; font-size: 16px; letter-spacing: -.015em; }.panel-note { color: var(--muted); font-size: 10px; }
.chart-panel { min-height: 260px; }.bar-chart { height: 170px; display: flex; align-items: end; gap: clamp(12px, 3vw, 32px); padding: 16px 28px 24px; border-top: 1px solid #eef2f1; }
.chart-column { flex: 1; min-width: 24px; height: 100%; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 8px; }.chart-bar-wrap { width: min(100%, 42px); height: 118px; display: flex; align-items: end; border-radius: 7px; background: #edf1ef; overflow: hidden; }.chart-bar { width: 100%; min-height: 3px; border-radius: 7px 7px 0 0; background: linear-gradient(180deg,#55ab9f,var(--teal)); }.chart-column small { color: #859597; font-size: 9px; }.chart-column .chart-value { color: var(--ink-2); font-size: 9px; font-weight: 700; }
.attention-panel { display: flex; flex-direction: column; min-height: 260px; padding-bottom: 22px; background: linear-gradient(145deg,#fff 30%,#fbf6ee); }.attention-value { display: flex; align-items: baseline; gap: 8px; margin: 10px 24px 0; }.attention-value span { color: var(--amber); font-family: Georgia, serif; font-size: 55px; }.attention-value small { color: var(--muted); }.attention-panel > .muted { margin: 2px 24px 18px; font-size: 12px; }.attention-panel .text-button { margin: auto 24px 0; align-self: start; }
.text-button { padding: 0; color: var(--teal); border: 0; background: transparent; cursor: pointer; font-size: 11px; font-weight: 800; }
.table-panel { margin-top: 16px; overflow: hidden; }.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; }th { padding: 12px 18px; color: #849496; border-top: 1px solid #edf1f0; border-bottom: 1px solid #e5ebea; background: #fafbf9; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }td { padding: 15px 18px; color: var(--ink-2); border-bottom: 1px solid #edf1f0; font-size: 11px; white-space: nowrap; }tbody tr:last-child td { border-bottom: 0; }tbody tr:hover { background: #fbfcfa; }.primary-cell { color: var(--ink); font-weight: 780; }.secondary-cell { color: var(--muted); }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 14px; background: #edf2f1; color: #637779; font-size: 9px; font-weight: 800; text-transform: uppercase; }.badge::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }.badge.green { color: #238263; background: #e8f5ef; }.badge.amber { color: #ae6c29; background: #fbf0e2; }.badge.red { color: #b55454; background: #faeaea; }.badge.blue { color: #477996; background: #eaf2f7; }
.list-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }.search-box { width: min(330px, 40vw); display: flex; align-items: center; gap: 8px; height: 42px; padding: 0 13px; border: 1px solid var(--line); border-radius: 11px; background: white; }.search-box span { color: #8a9a9b; font-size: 18px; }.search-box input { width: 100%; border: 0; outline: none; background: transparent; font-size: 11px; }.main-list-panel { margin-top: 0; min-height: 380px; }
.empty-state { padding: 80px 20px; text-align: center; }.empty-state div { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto 16px; color: var(--teal); border-radius: 14px; background: var(--teal-soft); font-size: 24px; }.empty-state h3 { margin: 0 0 7px; font-size: 16px; }.empty-state p { margin: 0; color: var(--muted); font-size: 12px; }
.admin-client-panel { margin-top: 18px; }.admin-welcome { align-items: center; }.admin-metrics .metric-card { min-height: 140px; }
.credit-metrics .metric-card strong { font-size: 27px; }
.credit-balance { color: var(--ink); font-weight: 800; font-variant-numeric: tabular-nums; }
.credit-amount { font-weight: 800; font-variant-numeric: tabular-nums; }.credit-amount.positive { color: #238263; }.credit-amount.negative { color: #b55454; }
.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.credit-sale-modal{width:min(760px,calc(100vw - 32px))}.credit-sale-modal select{min-height:45px;width:100%;padding:9px 12px;color:var(--ink);border:1px solid #d4dfde;border-radius:10px;background:#fbfcfa}.credit-choice{display:flex;gap:18px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px}.credit-choice label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.credit-choice input,.credit-invoice-toggle input,.credit-confirm input{width:18px;height:18px;box-shadow:none}.credit-sale-calculation{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px;padding:14px;border-radius:12px;background:var(--teal-soft)}.credit-sale-calculation span{display:grid;gap:4px;color:var(--muted);font-size:10px}.credit-sale-calculation strong{color:var(--ink);font-size:14px}.credit-confirm{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:9px;margin-top:18px}.credit-sale-files{display:flex;gap:8px}
.modal { width: min(680px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 20px; background: transparent; box-shadow: 0 28px 90px rgba(7,33,37,.28); }.modal::backdrop { background: rgba(11,35,39,.58); backdrop-filter: blur(4px); }.modal-card { padding: 28px; border-radius: 20px; background: white; }.modal-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }.modal-head h2 { margin: 0; font-size: 25px; letter-spacing: -.035em; }.modal-card > .muted { margin: 8px 0 24px; font-size: 12px; }.modal-card label { display: grid; gap: 7px; color: var(--ink-2); font-size: 11px; font-weight: 750; }.modal-card input { height: 45px; padding: 0 13px; border: 1px solid #d4dfde; border-radius: 10px; outline: none; background: #fbfcfa; }.modal-card input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(19,135,124,.1); }.modal-close { color: var(--muted); border: 0; background: transparent; cursor: pointer; font-size: 25px; }.modal-actions { display: flex; justify-content: end; gap: 10px; margin-top: 20px; }
.mobile-nav { display: none; }
.toast { position: fixed; z-index: 50; right: 24px; bottom: 24px; max-width: 360px; padding: 13px 17px; color: white; border-radius: 10px; background: var(--ink); box-shadow: 0 10px 28px rgba(0,0,0,.18); font-size: 12px; opacity: 0; transform: translateY(12px); pointer-events: none; transition: .25s ease; }.toast.show { opacity: 1; transform: none; }.toast.error { background: #923f3f; }
.loading-row td { height: 130px; color: var(--muted); text-align: center; }

@media (max-width: 1100px) {
  .metrics-grid { grid-template-columns: 1fr 1fr; }
  .auth-shell { grid-template-columns: .8fr 1.2fr; }.auth-brand { padding: 52px; }.brand-proof { flex-direction: column; gap: 14px; }
}
@media (max-width: 820px) {
  .auth-shell { display: block; background: var(--nav); padding: 18px; }.auth-brand { display: none; }.auth-panel { min-height: calc(100vh - 36px); padding: 28px 20px; border-radius: 24px; background: white; }.mobile-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 45px; color: var(--ink); font-weight: 800; }
  .app-shell { display: block; }.sidebar { display: none; }.workspace { padding-bottom: 72px; }.topbar { height: auto; min-height: 94px; padding: 20px; }.today { display: none; }.content { padding: 28px 18px 44px; }.mobile-nav { position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; height: 66px; display: flex; border-top: 1px solid var(--line); background: rgba(255,255,255,.95); backdrop-filter: blur(12px); }.mobile-nav button { flex: 1; display: grid; place-content: center; gap: 3px; color: #829293; border: 0; background: transparent; font-size: 9px; font-weight: 700; }.mobile-nav button span { font-size: 17px; }.mobile-nav button.active { color: var(--teal); }
  .dashboard-grid { grid-template-columns: 1fr; }.attention-panel { min-height: 220px; }
}
@media (max-width: 580px) {
  .auth-panel { padding: 26px 18px; }.auth-card h2 { font-size: 28px; }.form-grid { grid-template-columns: 1fr; }.form-grid .wide { grid-column: auto; }
  .topbar { align-items: start; }.topbar-copy h1 { font-size: 19px; }.topbar-actions { max-width: 50%; }.company-switcher { display: block; padding: 7px 9px; }.company-switcher span { display: block; margin-bottom: 2px; }.company-switcher select { width: 100%; max-width: 150px; }
  .welcome-row { align-items: start; }.status-pill { display: none; }.metrics-grid { grid-template-columns: 1fr 1fr; gap: 10px; }.metric-card { min-height: 133px; padding: 17px; }.metric-card strong { font-size: 25px; }.metric-card p { margin-top: 13px; }.dashboard-grid { margin-top: 10px; gap: 10px; }.table-panel { margin-top: 10px; }
  .list-toolbar { align-items: start; flex-direction: column; }.search-box { width: 100%; }.content { overflow: hidden; }
  .admin-welcome { align-items: start; gap: 18px; }.admin-welcome .primary-button { min-width: auto; }.modal-card { padding: 22px 18px; }.modal .form-grid { max-height: 50vh; overflow: auto; padding-right: 3px; }
}
@media (max-width:580px){.credit-choice{display:grid}.credit-sale-calculation{grid-template-columns:1fr 1fr}.admin-actions{width:100%}.admin-actions button{flex:1}}

.list-actions { display:flex; align-items:center; gap:12px; }
.list-actions .search-box { width:min(270px,30vw); }
.record-modal { width:min(850px,calc(100vw - 32px)); }
.record-modal .modal-card { max-height:calc(100vh - 50px); overflow:auto; }
.record-modal select { min-height:45px; width:100%; padding:9px 12px; color:var(--ink); border:1px solid #d4dfde; border-radius:10px; background:#fbfcfa; }
.record-modal fieldset { min-width:0; }
.company-checks { margin:0; padding:14px; border:1px solid var(--line); border-radius:12px; }
.company-checks legend,.location-card legend { font-size:12px; font-weight:750; }
.company-checks label { display:flex; flex-direction:row; align-items:center; margin:8px 0; }
.company-checks input { height:18px; width:18px; box-shadow:none; }
.location-card { margin:0 0 18px; padding:16px; border:1px solid var(--line); border-radius:12px; }
.location-card .remove-location { margin-top:16px; color:var(--danger); }
#record-history { margin-top:24px; padding:16px; border:1px solid var(--line); border-radius:12px; }
#record-history summary { cursor:pointer; font-size:13px; font-weight:750; }
.history-entry { padding:12px 0; border-bottom:1px solid var(--line); font-size:11px; }
.history-entry p { color:var(--muted); line-height:1.7; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:580px) { .list-actions { width:100%; flex-wrap:wrap; }.list-actions .search-box { width:100%; }.record-modal .form-grid { max-height:none; overflow:visible; }.record-modal .panel-head { padding:20px 0; flex-wrap:wrap; } }
@media(max-width:820px) { .mobile-nav { overflow-x:auto; justify-content:flex-start; }.mobile-nav button { flex:1 0 72px; min-width:72px; } }
.record-name { font-size:inherit; font-weight:780; text-decoration:underline; text-underline-offset:3px; }
.iesc-brand { color:#eef8f5; font-size:30px; font-weight:850; letter-spacing:.14em; margin:0 0 18px; }
.danger-button { height:43px; padding:0 18px; color:var(--danger); background:#fff6f6; border:1px solid #e4b9b9; border-radius:10px; cursor:pointer; font-weight:750; }
.danger-button:hover { background:#faeaea; }.danger-button:disabled { opacity:.6; cursor:wait; }
#deactivate-record-button { margin-right:auto; }
.archive-toggle { display:flex; gap:7px; align-items:center; color:var(--muted); font-size:11px; white-space:nowrap; }
.archive-toggle input { accent-color:var(--teal); }
.confirmation-modal { width:min(520px,calc(100vw - 32px)); }
.confirmation-modal .muted { white-space:pre-line; line-height:1.65; }
.record-inactive-note { color:var(--danger); margin-top:12px; font-size:12px; }
@media(max-width:580px){ .record-modal .modal-actions { flex-wrap:wrap; }.list-actions { flex-wrap:wrap; } }
.danger-text { color:var(--danger); }
.simipet-panel{max-width:850px}
.simipet-result{margin-top:20px}
.simipet-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}
.simipet-summary div{background:#f6f8f8;border-radius:10px;padding:14px}
.simipet-summary span{display:block;color:#65777b;font-size:.76rem;margin-bottom:5px;text-transform:uppercase}
.simipet-summary strong{color:#17383d;font-size:.94rem}
.validation-block{border-radius:10px;margin:14px 0;padding:14px 16px}
.validation-block ul{margin:8px 0 0;padding-left:20px}
.validation-block.error{background:#fff0ef;color:#8f2f2b}
.validation-block.warning{background:#fff8e8;color:#785612}
.simipet-stamp-actions{align-items:center;border-top:1px solid #e2e9e9;display:flex;gap:14px;margin-top:18px;padding-top:18px}
.invoice-modal{width:min(820px,calc(100vw - 32px))}.invoice-modal .modal-card{max-height:calc(100vh - 50px);overflow:auto}
.invoice-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.invoice-summary div{padding:13px;border-radius:10px;background:#f6f8f8;min-width:0}.invoice-summary span{display:block;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.invoice-summary strong{display:block;margin-top:5px;overflow-wrap:anywhere;font-size:12px}
.invoice-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.invoice-actions a{text-decoration:none}.invoice-history{margin-top:18px}.invoice-history h3,.payment-complement-section h3{font-size:15px}.invoice-history table td,.invoice-history table th{padding:10px 8px}.payment-complement-section{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fbfcfa}.payment-complement-section select{height:45px;padding:0 13px;border:1px solid #d4dfde;border-radius:10px;background:white}.invoice-row-actions{display:flex;gap:10px}.invoice-row-actions .text-button{text-decoration:underline;text-underline-offset:3px}
.table-sort{display:flex;align-items:center;gap:6px;width:100%;padding:0;color:inherit;border:0;background:transparent;font:inherit;font-weight:inherit;text-align:left;cursor:pointer}.table-sort span{color:var(--teal);font-size:12px}.table-sort:hover{color:var(--teal)}
.payment-application-picker{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden}.payment-picker-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}.payment-picker-head strong,.payment-picker-head span{display:block}.payment-picker-head strong{font-size:12px}.payment-picker-head span{margin-top:3px;color:var(--muted);font-size:10px}.payment-picker-search{display:block!important;padding:10px 16px;border-bottom:1px solid var(--line)}.payment-picker-search input{width:100%;height:38px!important;padding:0 11px;border:1px solid #d4dfde;border-radius:9px;background:#fbfcfa}#payment-application-list{max-height:360px;overflow:auto}.payment-application-row{display:grid!important;grid-template-columns:22px minmax(0,1fr) 125px;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid #edf1f0;cursor:pointer}.payment-application-row[hidden]{display:none!important}.payment-application-row:last-child{border-bottom:0}.payment-application-row>input{width:17px!important;height:17px!important;box-shadow:none!important}.payment-application-copy strong,.payment-application-copy span{display:block}.payment-application-copy strong{color:var(--ink);font-size:12px}.payment-application-copy span{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}.payment-application-amount{display:grid;gap:4px}.payment-application-amount span{color:var(--muted);font-size:9px}.payment-application-amount input{width:100%;height:38px!important;text-align:right}.payment-application-row:not(.selected){opacity:.65}.payment-total{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--teal-soft);color:var(--ink);font-size:12px}.payment-total strong{font-size:18px}
@media(max-width:580px){.invoice-summary{grid-template-columns:1fr 1fr}.invoice-modal .form-grid{max-height:none;overflow:visible}.invoice-actions>*{flex:1;text-align:center}.payment-complement-section{padding:14px}.payment-application-row{grid-template-columns:20px 1fr}.payment-application-amount{grid-column:2}.payment-picker-head{align-items:flex-start}}
.simipet-stamp-actions span{color:#65777b;font-size:.86rem}
@media(max-width:900px){.simipet-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.password-tools { display:flex; gap:16px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.password-tools .archive-toggle { display:flex; flex-direction:row; font-weight:500; }.password-tools input[type="checkbox"] { height:16px; width:16px; }
.password-result { color:var(--teal-dark); font-size:13px; line-height:1.6; }
#change-password-form label + label { margin-top:18px; }
#change-password-logout { margin-top:18px; }
@media(max-width:580px){#reset-password-form .modal-actions{flex-wrap:wrap;}.panel-head .search-box{width:100%;} }

/* Interfaz operativa 2026 */
:root{
  --ink:#142e33;--ink-2:#385156;--muted:#6f8285;--line:#dce6e4;
  --canvas:#f5f7f5;--paper:#fff;--teal:#087f73;--teal-dark:#08665e;
  --teal-soft:#e6f4f1;--nav:#102f34;--shadow:0 8px 28px rgba(21,48,52,.055);
  --radius:16px;
}
body{letter-spacing:-.005em}
.app-shell{grid-template-columns:264px minmax(0,1fr)}
.sidebar{padding:22px 16px 16px;background:linear-gradient(180deg,#102f34 0%,#0c292e 100%)}
.sidebar-brand{padding:0 10px 22px}.logo-tile{width:38px;height:38px;border-radius:12px;box-shadow:0 7px 18px rgba(0,0,0,.12)}
.main-nav{min-height:0;margin-top:12px;padding-right:2px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#315257 transparent}
.nav-label{margin:18px 13px 6px;color:#6e8986;font-size:9px;letter-spacing:.18em}
.nav-item{height:43px;border-radius:11px;color:#adc0be;font-size:13px;font-weight:650;transition:background .16s,color .16s,transform .16s}
.nav-item:hover{transform:translateX(2px)}.nav-item.active{background:#e8f4f1;color:#173b3d;box-shadow:none}
.nav-icon{width:24px;height:24px;display:grid;place-items:center;color:#6fc4b8;font-size:12px;font-weight:850}
.nav-item.active .nav-icon{color:var(--teal)}.nav-icon svg,.top-credit svg,.quick-action svg,.mobile-nav svg,.mobile-menu-close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-icon.system-letter{border-radius:7px;background:rgba(111,196,184,.12)}.nav-item.active .system-letter{background:#cfeae5}
.mobile-menu-close{display:none}
.topbar{position:sticky;z-index:15;top:0;height:82px;padding:0 clamp(24px,3.2vw,48px);background:rgba(255,255,255,.91);box-shadow:0 1px 0 rgba(16,47,52,.04)}
.topbar h1{font-size:20px}.breadcrumb{margin-bottom:4px}
.topbar-actions{gap:12px}.top-credit{display:flex;align-items:center;gap:9px;height:44px;padding:0 13px;color:var(--teal-dark);border:1px solid #cfe3df;border-radius:12px;background:#eff8f6;cursor:pointer}
.top-credit>span{display:grid;text-align:left}.top-credit small{color:#728b87;font-size:9px;font-weight:700}.top-credit strong{font-size:13px}
.company-switcher{height:44px;padding:5px 10px 5px 13px;border-radius:12px}.today{font-size:10px}
.content{width:min(100%,1500px);margin:0 auto;padding:34px clamp(24px,3.2vw,48px) 72px}
.welcome-row{margin-bottom:22px}.welcome-row h2,.list-toolbar h2{font-size:30px}.welcome-row .muted,.list-toolbar .muted{font-size:13px;line-height:1.5}
.quick-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.quick-action{min-width:0;min-height:78px;display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:13px 14px;color:var(--ink);text-align:left;border:1px solid var(--line);border-radius:15px;background:white;box-shadow:var(--shadow);cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.quick-action:hover{transform:translateY(-2px);border-color:#b9d8d2;box-shadow:0 12px 28px rgba(21,48,52,.09)}
.quick-action.system{border-color:#c9dfdb;box-shadow:inset 3px 0 var(--teal),var(--shadow)}
.quick-action>span:nth-child(2){min-width:0;display:grid;gap:3px}.quick-action strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.quick-action small{color:var(--muted);font-size:10px}.quick-action>svg{width:16px;color:#8ca09e}
.quick-icon{width:42px;height:42px;display:grid;place-items:center;color:var(--teal);border-radius:12px;background:var(--teal-soft);font-weight:850}.quick-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.quick-action.simipet .quick-icon{color:#7455a6;background:#f0ebf7}.quick-action.farmacias .quick-icon{color:#2c7290;background:#e8f2f6}
.quick-action.keken .quick-icon{color:#9a5d20;background:#fbefe2}
.metrics-grid{gap:12px}.metric-card{min-height:132px;padding:19px 20px;border-radius:15px;box-shadow:var(--shadow)}.metric-card::after{display:none}
.metric-icon{width:32px;height:32px;border-radius:10px}.metric-card p{margin:14px 0 5px}.metric-card strong{font-family:inherit;font-size:28px;font-weight:780}
.metric-card.teal .metric-icon{color:#087f73;background:#e5f4f1}.metric-card.blue .metric-icon{color:#397493;background:#eaf2f6}.metric-card.amber .metric-icon{color:#bd6d25;background:#fbefe2}.metric-card.violet .metric-icon{color:#6b5a9b;background:#efecf7}
.panel{border-radius:16px;box-shadow:var(--shadow)}.panel-head{padding:21px 22px 15px}.table-panel{margin-top:14px}
th{padding:12px 16px;background:#f8faf9}td{padding:14px 16px;font-size:11px}tbody tr{transition:background .15s}
.primary-button,.secondary-button,.danger-button{border-radius:11px}.primary-button{box-shadow:0 7px 16px rgba(8,127,115,.15)}
.search-box{height:44px;border-radius:12px}.list-toolbar{margin-bottom:20px}
.simipet-panel{max-width:980px;padding:4px}.simipet-panel form{padding:20px}.simipet-panel input,.simipet-panel select{min-height:46px;padding:0 12px;border:1px solid #d4dfde;border-radius:10px;background:#fbfcfa}.simipet-panel label{display:grid;gap:7px;color:var(--ink-2);font-size:11px;font-weight:750}
.file-picker{position:relative;min-height:58px;display:flex;align-items:center;gap:12px;padding:8px;border:1px dashed #bdd1ce;border-radius:12px;background:#f7faf9;overflow:hidden}.file-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-picker-button{flex:none;padding:11px 14px;color:var(--teal-dark);border-radius:9px;background:#dff1ed;font-size:11px;font-weight:800}.file-picker-name{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.simipet-summary div,.invoice-summary div{background:#f5f8f7;border:1px solid #e9efee}
.mobile-menu-backdrop{display:none}

@media(max-width:1180px){
  .quick-actions{grid-template-columns:1fr 1fr}.today{display:none}.topbar-actions{gap:8px}
}
@media(max-width:820px){
  body{padding-bottom:70px}.app-shell{display:block}.workspace{padding-bottom:0}
  .sidebar{position:fixed;z-index:50;top:0;bottom:0;left:0;width:min(86vw,310px);height:100dvh;display:flex;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 50px rgba(4,25,28,.25)}
  .mobile-menu-open .sidebar{transform:translateX(0)}.mobile-menu-open{overflow:hidden}
  .mobile-menu-close{width:36px;height:36px;display:grid;place-items:center;margin-left:auto;color:#9bb3b0;border:0;border-radius:10px;background:rgba(255,255,255,.06)}
  .mobile-menu-backdrop{position:fixed;z-index:45;inset:0;display:block;visibility:hidden;opacity:0;border:0;background:rgba(7,30,33,.48);transition:.2s}
  .mobile-menu-open .mobile-menu-backdrop{visibility:visible;opacity:1}
  .topbar{position:sticky;height:auto;min-height:94px;display:grid;grid-template-columns:1fr;padding:14px 18px;gap:10px}
  .topbar-copy{display:flex;align-items:center;justify-content:space-between}.breadcrumb{display:none}.topbar h1{font-size:18px}
  .topbar-actions{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}.company-switcher{min-width:0}.company-switcher select{width:100%;max-width:none}.top-credit{height:46px}.top-credit small{display:none}
  .content{padding:25px 16px 40px}.welcome-row{align-items:flex-start;gap:16px}.welcome-row h2,.list-toolbar h2{font-size:27px}
  .quick-actions{grid-template-columns:1fr 1fr;gap:10px}.quick-action{min-height:74px}.metrics-grid{grid-template-columns:1fr 1fr}
  .mobile-nav{z-index:60;height:66px;display:grid;grid-template-columns:repeat(5,1fr);overflow:visible;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.97);box-shadow:0 -5px 22px rgba(18,47,51,.08)}
  .mobile-nav button{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#7c8f91;border:0;background:transparent;font-size:9px;font-weight:720}
  .mobile-nav button svg{width:20px;height:20px}.mobile-nav button span{font-size:9px}.mobile-nav button.active{color:var(--teal)}
  .mobile-system-letter{width:21px;height:21px;display:grid;place-items:center;border-radius:7px;background:#edf3f2;font-size:11px!important;font-weight:850}.mobile-nav button.active .mobile-system-letter{background:#d9efea}
  .dashboard-grid{grid-template-columns:1fr}.simipet-panel{max-width:none}
}
@media(max-width:640px){
  .topbar-actions{grid-template-columns:92px minmax(0,1fr)}.company-switcher{display:grid;grid-template-columns:1fr;padding:5px 9px}.company-switcher span{display:none}.company-switcher select{font-size:11px}
  .welcome-row{flex-wrap:wrap}.welcome-row>div{min-width:0}.admin-welcome .primary-button{width:100%;min-width:0}.status-pill{display:none}
  .quick-actions{grid-template-columns:1fr}.quick-action{min-height:68px}.metrics-grid{gap:9px}.metric-card{min-height:122px;padding:16px}.metric-card strong{font-size:24px}.metric-card p{margin-top:11px}
  .dashboard-grid{gap:10px;margin-top:10px}.attention-panel{min-height:200px}.attention-value span{font-size:44px}
  .list-toolbar{gap:15px}.list-actions{display:grid;grid-template-columns:1fr auto;width:100%;gap:9px}.list-actions .search-box{grid-column:1/-1;width:100%}.archive-toggle{min-height:40px}.list-actions .primary-button{min-width:0}
  .panel-head{padding:18px 17px 13px;flex-wrap:wrap}.panel-head .search-box{width:100%}
  .table-wrap{overflow:visible}.table-wrap table,.table-wrap tbody{display:block}.table-wrap thead{display:none}.table-wrap tbody tr{display:block;margin:0 12px 12px;padding:6px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 3px 12px rgba(20,49,55,.035)}
  .table-wrap tbody tr.loading-row{padding:0}.table-wrap td{min-height:39px;display:grid;grid-template-columns:minmax(92px,34%) minmax(0,1fr);align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #edf1f0;white-space:normal;overflow-wrap:anywhere;text-align:right}
  .table-wrap td::before{content:attr(data-label);color:#879798;font-size:8px;font-weight:850;letter-spacing:.07em;text-align:left;text-transform:uppercase}.table-wrap td:last-child{border-bottom:0}.table-wrap td.primary-cell{font-size:12px}.table-wrap td[colspan]{display:block;padding:30px 12px;text-align:center}.table-wrap td[colspan]::before{display:none}
  .bar-chart{gap:8px;padding:12px 14px 20px}.chart-column .chart-value{display:none}
  .simipet-panel form{padding:14px}.simipet-summary{grid-template-columns:1fr 1fr;gap:9px}.simipet-summary div{padding:11px}.simipet-stamp-actions{align-items:stretch;flex-direction:column}.simipet-stamp-actions .primary-button{width:100%}
  .invoice-summary{grid-template-columns:1fr}.modal{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.modal-card{padding:21px 16px}
  .toast{right:12px;bottom:80px;left:12px;max-width:none}
}
@media(max-width:380px){.metrics-grid{grid-template-columns:1fr}.topbar-actions{grid-template-columns:84px minmax(0,1fr)}}

/* Kekén y consulta de facturas */
.keken-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:14px;margin-top:14px}
.credit-balance-only{grid-template-columns:minmax(260px,420px)}
.service-metrics{margin-top:14px}.service-upload-panel{max-width:none}.service-upload-panel>.panel-head{padding:20px 22px 0}.service-documents{margin-top:14px}.service-list-head{align-items:flex-end}
[data-service][hidden]{display:none!important}
.keken-upload-panel form{display:grid;gap:15px;padding:4px 22px 22px}.keken-upload-panel label{display:grid;gap:8px;color:var(--ink-2);font-size:11px;font-weight:750}.help-copy{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.keken-upload-panel .primary-button{justify-self:start}
.keken-guide{padding:22px}.keken-guide h3{margin:7px 0 16px}.keken-guide ol{display:grid;gap:12px;margin:0;padding-left:22px;color:var(--ink-2);font-size:12px;line-height:1.45}.keken-guide li::marker{color:var(--teal);font-weight:800}
.status-pill.unavailable{color:#8b5d21;background:#fff4df}.status-pill.unavailable span{background:#d18b31}
.keken-list-head{align-items:flex-end}.keken-list-head>div:first-child{min-width:150px}.keken-filters{display:flex;align-items:flex-end;justify-content:flex-end;gap:9px;flex-wrap:wrap}.keken-filters>label,.invoice-filters label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.keken-filters select,.keken-filters input[type="date"],.invoice-filters select,.invoice-filters input{height:40px;padding:0 11px;color:var(--ink);border:1px solid #d4dfde;border-radius:10px;background:#fff;font-size:11px;text-transform:none}.keken-filters .search-box{height:40px}.keken-filters .search-box input{height:auto;border:0}.keken-filters .text-button{height:40px}
.cell-note{display:block;max-width:260px;margin-top:4px;color:var(--muted);font-size:9px;font-weight:500;white-space:normal}.attention-copy{color:#9b572f}.keken-routes-panel td{vertical-align:top}
.invoice-filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:-6px 0 16px;padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.invoice-filters[hidden]{display:none}.invoice-filters .text-button{height:40px;padding:0 8px}.filter-result-count{margin-left:auto;padding:0 6px 10px;color:var(--teal-dark);font-size:11px}.invoice-row-actions a,.invoice-row-actions button{white-space:nowrap}
@media(max-width:1180px){.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.keken-grid{grid-template-columns:1fr}.keken-guide{display:none}.keken-list-head{align-items:flex-start}.keken-filters{justify-content:flex-start}}
@media(max-width:820px){.mobile-nav{grid-template-columns:repeat(6,minmax(62px,1fr));overflow-x:auto}.mobile-nav button{min-width:62px}.keken-filters{width:100%}.invoice-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.filter-result-count{margin-left:0;padding:6px 0}}
@media(max-width:640px){.quick-actions{grid-template-columns:1fr}.keken-grid{margin-top:10px}.keken-upload-panel form{padding:2px 15px 18px}.keken-list-head{display:block}.keken-filters{display:grid;grid-template-columns:1fr 1fr;margin-top:14px}.keken-filters .search-box{grid-column:1/-1;width:100%}.keken-filters .text-button{justify-self:start}.invoice-filters{grid-template-columns:1fr 1fr;margin-top:0}.invoice-filters label:first-child{grid-column:1/-1}.invoice-filters .text-button{justify-self:start}.filter-result-count{align-self:center}.cell-note{max-width:none;margin-left:auto;text-align:right}}
