:root {
  color-scheme: light;
  --ink: #17231c;
  --muted: #66726a;
  --surface: #ffffff;
  --canvas: #f1f4ef;
  --green: #6f9d3d;
  --green-dark: #2e5b36;
  --lime: #cfe88f;
  --line: #dce3da;
  --warning: #9a6716;
  --danger: #a8433e;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.settlement-quick-search { margin: 18px 0; }
.settlement-quick-search > label { display: block; margin-bottom: 7px; color: var(--green-dark); font-weight: 800; }
.settlement-quick-search > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.settlement-quick-search p { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.complaint-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.courier-complaints { margin-top: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.courier-complaint-heading, .courier-complaint-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.courier-complaint-heading { margin-bottom: 14px; }
.courier-complaint-heading h4, .courier-complaint-top h4 { margin: 0; font-size: 15px; }
.courier-complaint-heading p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.courier-complaint-list { display: grid; gap: 12px; }
.courier-complaint-card { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.courier-complaint-badge { padding: 6px 11px; border-radius: 30px; font-size: 12px; font-weight: 800; background: var(--canvas); }
.courier-complaint-badge.open { color: var(--warning); background: #fff3d3; }
.courier-complaint-badge.forwarded { color: var(--green-dark); background: #edf3e7; }
.courier-complaint-badge.closed { color: var(--green-dark); background: #dfeedd; }
.courier-complaint-description { margin: 10px 0; font-size: 13px; color: var(--ink); }
.courier-complaint-dates { display: flex; flex-wrap: wrap; gap: 10px 20px; font-size: 12px; color: var(--muted); }
.courier-complaint-dates strong { display: block; color: var(--ink); margin-top: 3px; }
.courier-complaint-response { margin-top: 14px; padding: 13px; border-left: 3px solid var(--green-dark); border-radius: 0 12px 12px 0; background: var(--canvas); }
.courier-complaint-response small { display: block; margin-top: 3px; color: var(--muted); }
.courier-complaint-response p { margin: 8px 0 0; }
.courier-complaint-card details { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; }
.courier-complaint-card summary { cursor: pointer; color: var(--green-dark); font-weight: 750; }
.courier-complaint-item { color: var(--muted); overflow-wrap: anywhere; }
.courier-complaint-photo { display: inline-block; margin: 8px 16px 0 0; color: var(--green-dark); }
.quality-reclamation-dialog { max-height: calc(100dvh - 24px); overflow-y: auto; }
.quality-reclamation-dialog .worker-shift-dialog-card { grid-auto-rows: max-content; }

* { box-sizing: border-box; }
body { margin: 0; background: var(--canvas); color: var(--ink); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.global-loading-panel {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(23, 35, 28, .28);
  backdrop-filter: blur(3px);
}
.global-loading-card {
  width: min(100%, 320px);
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 24px 22px;
  border: 1px solid #c6d8c2;
  border-radius: 18px;
  background: var(--surface);
  box-shadow: 0 24px 70px #08100a42;
  text-align: center;
}
.global-loading-card strong { font-size: 17px; }
.global-loading-card small { color: var(--muted); font-size: 12px; line-height: 1.45; }
.global-loading-spinner {
  width: 38px;
  height: 38px;
  border: 4px solid #e4ebe1;
  border-top-color: var(--green-dark);
  border-radius: 50%;
  animation: loading-spin .8s linear infinite;
}
@keyframes loading-spin {
  to { transform: rotate(360deg); }
}
.eyebrow { margin: 0 0 6px; color: var(--green-dark); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.muted { color: var(--muted); line-height: 1.55; }

.login-shell { min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: linear-gradient(160deg, #14231a, #36533d); }
.login-card { width: min(100%, 420px); padding: 32px 24px; border-radius: 28px; background: var(--surface); box-shadow: 0 24px 70px #08100a66; }
.brand-mark { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 26px; border-radius: 18px; background: var(--lime); font-size: 28px; font-weight: 900; }
.login-card h1 { margin: 0; font-size: 32px; letter-spacing: -.04em; }
form { display: grid; gap: 16px; margin-top: 26px; }
label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
input, textarea, select { width: 100%; padding: 15px 14px; border: 1px solid var(--line); border-radius: 14px; background: #f9faf8; color: var(--ink); outline: none; }
input:focus, textarea:focus, select:focus { border-color: var(--green); box-shadow: 0 0 0 4px #6f9d3d24; }
textarea { min-height: 96px; resize: vertical; }
.primary { min-height: 52px; border: 0; border-radius: 15px; background: var(--ink); color: white; font-weight: 800; }
.error { min-height: 18px; margin: 0; color: var(--danger); font-size: 13px; }
.success { min-height: 18px; margin: 0; color: var(--green-dark); font-size: 13px; }
.auth-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.auth-links button { min-height: 42px; border: 1px solid var(--line); border-radius: 13px; background: #f9faf8; color: var(--green-dark); font-size: 12px; font-weight: 850; }
.login-card form h2 { margin: 0; font-size: 22px; letter-spacing: 0; }

.app-shell { width: min(100%, 760px); min-height: 100dvh; margin: auto; padding: max(20px, env(safe-area-inset-top)) 16px calc(104px + env(safe-area-inset-bottom)); }
.topbar { display: flex; justify-content: space-between; align-items: center; padding: 4px 2px 20px; }
.topbar h1 { margin: 0; font-size: 28px; letter-spacing: -.04em; }
.topbar-actions { display: flex; align-items: center; gap: 8px; }
.fullscreen-toggle { min-height: 44px; padding: 0 12px; white-space: nowrap; }
.fullscreen-mode .app-shell { width: 100%; max-width: none; }
.fullscreen-mode .bottom-nav { max-width: none; }
.icon-button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink); font-size: 20px; }
.admin-preview-bar { display: grid; gap: 10px; margin: 0 0 16px; padding: 14px; border: 1px solid #b8d5b4; border-radius: 18px; background: #eff8ed; box-shadow: 0 7px 20px #3141340a; }
.admin-preview-bar label { color: var(--green-dark); }
.admin-preview-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.admin-preview-bar p { min-height: 18px; margin: 0; color: var(--green-dark); font-size: 12px; font-weight: 800; }
.hero-card { display: flex; justify-content: space-between; gap: 18px; min-height: 170px; padding: 24px; border-radius: 26px; background: linear-gradient(135deg, var(--lime), #aacd62); box-shadow: 0 16px 36px #63872f24; }
.hero-card h2 { max-width: 430px; margin: 22px 0 4px; font-size: clamp(25px, 7vw, 38px); line-height: 1.05; letter-spacing: -.045em; }
.hero-detail { margin: 8px 0 0; color: #34503a; font-weight: 650; }
.status-pill { align-self: flex-start; padding: 7px 10px; border-radius: 999px; background: #ffffffa8; font-size: 11px; font-weight: 800; white-space: nowrap; }
.work-offer-card { display: grid; gap: 14px; margin-top: 14px; padding: 18px; border: 1px solid #b8d5b4; border-radius: 22px; background: #f8fbf5; box-shadow: 0 7px 20px #3141340a; }
.work-offer-top { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; }
.work-offer-card h2 { margin: 0; font-size: 24px; letter-spacing: 0; }
.work-offer-card p:not(.eyebrow) { margin: 6px 0 0; color: var(--muted); line-height: 1.45; }
.open-shift-list { display: grid; gap: 8px; }
.open-shift-card { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.open-shift-card strong { display: block; font-size: 18px; }
.open-shift-card small { display: block; margin-top: 4px; color: var(--muted); line-height: 1.35; }
.open-shift-count { padding: 7px 9px; border-radius: 999px; background: #e2f2df; color: var(--green-dark); font-size: 12px; font-weight: 900; white-space: nowrap; }
.section-heading { display: flex; align-items: end; justify-content: space-between; padding: 30px 2px 14px; }
.section-heading h2 { margin: 0; font-size: 24px; }
.text-button { border: 0; background: transparent; color: var(--green-dark); font-weight: 800; }
.day-tabs { display: grid; grid-template-columns: repeat(5, minmax(58px, 1fr)); gap: 8px; overflow-x: auto; padding: 2px 0 14px; }
.day-tab { min-width: 58px; padding: 11px 5px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--muted); }
.day-tab strong, .day-tab span { display: block; }
.day-tab strong { margin-top: 3px; color: var(--ink); font-size: 17px; }
.day-tab.active { border-color: var(--ink); background: var(--ink); color: #cbd4cd; }
.day-tab.active strong { color: white; }
.shift-list { display: grid; gap: 12px; }
.shift-card { padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.shift-card.has-missing-source { border-color: var(--danger); box-shadow: 0 9px 24px #a8433e18; }
.shift-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.shift-time { margin: 0; font-size: 24px; font-weight: 850; letter-spacing: -.03em; }
.shift-warehouse { margin: 5px 0 0; color: var(--muted); font-size: 14px; }
.shift-state { padding: 7px 9px; border-radius: 10px; font-size: 11px; font-weight: 800; text-align: right; }
.shift-state.confirmed { background: #e2f2df; color: #2e6735; }
.shift-state.waiting { background: #fff1cc; color: var(--warning); }
.shift-state.review { background: #f9dfdd; color: var(--danger); }
.shift-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 12px; color: var(--muted); font-size: 12px; }
.shift-meta strong { color: var(--ink); }
.source-row { display: flex; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.source { padding: 5px 8px; border-radius: 8px; background: #eff2ee; color: var(--muted); font-size: 11px; font-weight: 750; }
.source.ok { background: #e2f2df; color: #2e6735; }
.source.missing { border: 1px solid var(--danger); background: #fff0ef; color: var(--danger); }
.shift-action-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.shift-delay-button, .shift-queue-button, .shift-return-button {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 14px;
  color: #fff;
  font-weight: 900;
  box-shadow: 0 10px 22px #17231c22, inset 0 1px 0 #ffffff30;
  transition: transform .14s ease, box-shadow .14s ease, filter .14s ease;
}
.shift-delay-button { background: linear-gradient(135deg, #c8443f, #8f2f2b); }
.shift-queue-button { background: linear-gradient(135deg, #287040, #174928); }
.shift-return-button { background: linear-gradient(135deg, #25322a, #101812); }
.shift-delay-button:hover, .shift-queue-button:hover, .shift-return-button:hover {
  filter: brightness(1.05);
  box-shadow: 0 12px 26px #17231c2f, inset 0 1px 0 #ffffff38;
}
.shift-delay-button:active, .shift-queue-button:active, .shift-return-button:active {
  transform: translateY(1px);
  box-shadow: 0 6px 14px #17231c24, inset 0 1px 0 #ffffff24;
}
.shift-delay-button.sent, .shift-queue-button.sent, .shift-return-button.sent {
  background: linear-gradient(135deg, #78ad42, #4f842f);
}
.shift-delay-button:disabled, .shift-queue-button:disabled, .shift-return-button:disabled {
  cursor: not-allowed;
  opacity: .42;
  filter: grayscale(.45);
  box-shadow: none;
}
.empty-card, .warning-card { padding: 22px 18px; border-radius: 18px; text-align: center; }
.empty-card { border: 1px dashed #c7d0c5; color: var(--muted); }
.warning-card { margin-bottom: 10px; background: #fff3d4; color: var(--warning); font-size: 13px; }
.queue-status-card { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin-bottom: 12px; padding: 16px; border: 1px solid #b8d5b4; border-radius: 18px; background: #eff8ed; box-shadow: 0 7px 20px #3141340a; }
.queue-status-card div { display: grid; gap: 3px; }
.queue-status-card span { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.queue-status-card strong { font-size: 24px; letter-spacing: 0; }
.queue-status-card small { color: var(--muted); font-size: 11px; font-weight: 750; }
.updated-at { margin: 18px 0 0; color: var(--muted); font-size: 11px; text-align: center; }
.workflow-header { display: grid; gap: 18px; padding: 22px; border-radius: 26px; background: linear-gradient(145deg, #fff, #edf3e9); border: 1px solid var(--line); }
.workflow-header h2 { margin: 0; font-size: 28px; letter-spacing: -.04em; }
.workflow-header .muted { margin-bottom: 0; }
.workflow-controls { display: grid; gap: 8px; align-self: end; }
.workflow-controls button { width: 100%; }
.month-picker { align-self: end; min-width: 180px; }
.workflow-steps { display: grid; gap: 8px; margin: 18px 0; padding: 0; list-style: none; }
.workflow-step { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 11px; min-height: 62px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.workflow-step-index, .step-code { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: #edf1eb; color: var(--muted); font-size: 13px; font-weight: 900; }
.workflow-step strong { font-size: 13px; }
.workflow-step small { display: block; margin-top: 2px; color: var(--muted); }
.workflow-step.done { border-color: #b8d5b4; background: #eff8ed; }
.workflow-step.done .workflow-step-index { background: var(--green-dark); color: #fff; }
.workflow-step.locked { opacity: .5; }
.workflow-step-state { font-size: 18px; }
.process-card { position: relative; margin-top: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.game-card { margin-top: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.game-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.game-summary div { min-height: 74px; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #f8fbf5; }
.game-summary span { display: block; color: var(--muted); font-size: 11px; font-weight: 850; }
.game-summary strong { display: block; margin-top: 8px; font-size: 20px; }
.game-form { margin-top: 0; }
.game-block { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #fbfcfa; }
.game-block h3, .leaderboard h3 { margin: 0; font-size: 18px; letter-spacing: 0; }
.game-block p, .game-block small { margin: 0; color: var(--muted); line-height: 1.45; }
.word-search-grid { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 4px; }
.word-search-grid span { display: grid; place-items: center; aspect-ratio: 1; min-width: 0; border-radius: 8px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 900; }
.word-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.word-list label { display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; min-height: 54px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--ink); }
.word-list input { grid-row: 1 / 3; width: auto; margin-top: 2px; }
.word-list strong { font-size: 13px; overflow-wrap: anywhere; }
.word-list small { grid-column: 2; font-size: 11px; }
.quiz-list { display: grid; gap: 10px; }
.quiz-card { display: grid; gap: 10px; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.quiz-card legend { padding: 0 6px; color: var(--green-dark); font-size: 11px; font-weight: 900; }
.quiz-card p { margin: 0; color: var(--ink); font-size: 14px; font-weight: 850; line-height: 1.4; }
.choice-grid { display: grid; gap: 8px; }
.choice-grid label { display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--ink); font-size: 13px; }
.choice-grid input { width: auto; }
.leaderboard { display: grid; gap: 8px; margin-top: 18px; }
.leader-row { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfa; }
.leader-row.me { border-color: #9ccc96; background: #eff8ed; }
.leader-row span { color: var(--green-dark); font-weight: 900; }
.leader-row strong { overflow-wrap: anywhere; }
.leader-row small { color: var(--muted); font-size: 12px; font-weight: 800; text-align: right; }
.process-card.locked { opacity: .5; }
.process-card.locked form, .process-card.locked button, .process-card.locked input, .process-card.locked textarea, .process-card.locked select, .process-card.locked a { pointer-events: none; }
.process-card.accepted { border-color: #9ccc96; box-shadow: 0 7px 20px #3141340a, 0 0 0 3px #6f9d3d1f; }
.process-card.accepted::after { content: "✓"; position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--green-dark); color: #fff; font-size: 19px; font-weight: 950; box-shadow: 0 8px 18px #2e5b362f; }
.ops-panel { display: grid; gap: 14px; margin-top: 14px; }
.ops-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 8px; }
.ops-summary div { min-height: 78px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.ops-summary span, .ops-card span, .ops-detail-grid span, .ops-route-row span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.ops-summary strong { display: block; margin-top: 8px; font-size: 22px; letter-spacing: 0; }
.ops-summary small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; }
.ops-card-list { display: grid; gap: 12px; }
.ops-card { display: grid; gap: 13px; padding: 16px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.ops-live-details { display: block; padding: 0; overflow: hidden; }
.ops-card.attention { border-color: #e0a39e; background: #fff8f7; }
.ops-late-box { border-color: #dc4b44 !important; background: #fff1ef !important; box-shadow: inset 3px 0 0 #dc4b44; }
.ops-present-box { border-color: #88c781 !important; background: #f2faef !important; box-shadow: inset 4px 0 0 var(--green); }
.ops-present-box small { color: var(--green-dark) !important; font-weight: 950 !important; }
.ops-card-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ops-live-details > .ops-card-head { padding: 16px; cursor: pointer; list-style: none; }
.ops-card-head::-webkit-details-marker { display: none; }
.ops-card-head strong { display: block; font-size: 18px; overflow-wrap: anywhere; }
.ops-card-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 750; line-height: 1.35; }
.ops-card-head > span { flex: 0 0 auto; max-width: 122px; padding: 6px 9px; border-radius: 999px; background: #e2f2df; text-align: right; overflow-wrap: anywhere; }
.ops-live-body { display: grid; gap: 13px; padding: 0 16px 16px; }
.ops-live-map { min-height: 320px; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: #eef3ec; box-shadow: 0 7px 20px #3141340a; }
.ops-live-map .empty-card, .ops-live-map .notice { height: 100%; min-height: 320px; display: grid; place-items: center; margin: 0; }
.ops-route-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ops-route-row div, .ops-detail-grid div, .ops-detail-tile { min-width: 0; padding: 11px; border: 1px solid #dfe7dc; border-radius: 14px; background: #f8fbf5; }
.ops-detail-tile { width: 100%; color: var(--ink); text-align: left; }
.ops-detail-tile:hover { border-color: #b8d5b4; background: #eff8ed; }
.ops-detail-tile:focus-visible { outline: 3px solid #6f9d3d38; outline-offset: 2px; }
.ops-detail-tile.attention { border-color: #e0a39e; background: #fff0ef; }
.ops-route-row strong, .ops-detail-grid strong { display: block; margin-top: 6px; font-size: 15px; overflow-wrap: anywhere; }
.ops-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ops-detail-grid small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
.ops-toolbar { display: grid; gap: 8px; }
.ops-search { display: grid; gap: 6px; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.ops-search input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--ink); font-size: 16px; font-weight: 800; text-transform: none; }
.ops-search input:focus { border-color: var(--green-dark); outline: 3px solid #6f9d3d2e; }
.worker-attendance-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px; border: 1px solid #dfe7dc; border-radius: 14px; background: #f8fbf5; }
.worker-attendance-controls.marked { border-color: #b8d5b4; background: #f2faef; }
.worker-attendance-controls span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.worker-attendance-controls strong { display: block; margin-top: 4px; font-size: 15px; }
.worker-attendance-controls small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; }
.worker-attendance-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.worker-attendance-actions button { min-height: 38px; padding: 0 13px; border: 1px solid #bdd7b8; border-radius: 12px; background: var(--surface); color: var(--green-dark); font-size: 12px; font-weight: 950; }
.worker-attendance-actions button.active { background: var(--green); border-color: var(--green); color: #fff; }
.worker-attendance-actions button.danger.active { background: #c43c35; border-color: #c43c35; color: #fff; }
.worker-shift-dialog { width: min(92vw, 560px); padding: 0; border: 0; border-radius: 24px; background: transparent; }
.worker-shift-dialog::backdrop { background: rgba(23, 35, 28, .42); backdrop-filter: blur(2px); }
.worker-shift-dialog-card { display: grid; gap: 14px; padding: 18px; border: 1px solid #cbd8c6; border-radius: 24px; background: var(--surface); box-shadow: 0 24px 70px #08100a42; }
.worker-shift-dialog-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.worker-shift-dialog-head span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.worker-shift-dialog-head strong { display: block; margin-top: 4px; font-size: 22px; overflow-wrap: anywhere; }
.worker-shift-dialog-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 750; }
.worker-shift-list { display: grid; gap: 10px; max-height: min(62vh, 520px); overflow: auto; padding-right: 2px; }
.worker-shift-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: #fbfcfa; }
.worker-shift-row.first { border-color: #9ccc96; background: #f2faef; }
.worker-shift-row.attention { border-color: #e0a39e; background: #fff8f7; }
.worker-shift-row span { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.worker-shift-row strong { display: block; margin-top: 4px; font-size: 16px; overflow-wrap: anywhere; }
.worker-shift-row small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
.worker-shift-status { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; max-width: 230px; }
.worker-timeline { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fbfcfa; }
.worker-timeline-row { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 10px; padding: 11px 12px; border-bottom: 1px solid #e7eee4; }
.worker-timeline-row:last-child { border-bottom: 0; }
.worker-timeline-row time { color: var(--muted); font-size: 12px; font-weight: 850; }
.worker-timeline-row strong { display: block; font-size: 14px; overflow-wrap: anywhere; }
.worker-timeline-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; }
.departure-group { display: grid; gap: 10px; }
.departure-group-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; }
.departure-group-head h3 { margin: 0; font-size: 19px; }
.departure-group-head span { color: var(--muted); font-size: 12px; font-weight: 850; }
.departure-card { display: grid; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.departure-card.attention { border-color: #e0a39e; background: #fff8f7; }
.departure-card.warning { border-color: #eed29b; background: #fffaf0; }
.departure-main { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.departure-main div { min-width: 0; padding: 11px; border: 1px solid #dfe7dc; border-radius: 14px; background: #f8fbf5; }
.departure-main span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.departure-main strong { display: block; margin-top: 6px; font-size: 15px; overflow-wrap: anywhere; }
.departure-main small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
.departure-trolleys { margin: 0; color: var(--muted); font-size: 12px; font-weight: 750; line-height: 1.45; overflow-wrap: anywhere; }
.ops-progress-bar { height: 11px; overflow: hidden; border-radius: 999px; background: #dfe7dc; }
.ops-progress-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-dark), var(--green)); }
.ops-map-link { color: var(--green-dark); font-weight: 950; text-decoration: none; }
.ops-muted { color: var(--muted); font-weight: 850; }
.ops-worker-foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.schedule-day-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.schedule-day-placeholder { min-height: 104px; }
.schedule-day { display: grid; gap: 5px; min-height: 104px; padding: 9px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); text-align: left; }
.schedule-day.active { border-color: var(--green-dark); background: #eff8ed; box-shadow: 0 0 0 3px #6f9d3d1f; }
.schedule-day.attention { border-color: #e0a39e; }
.schedule-day.coverage-good { background: #f3fbef; }
.schedule-day.coverage-warn { background: #fffaf0; border-color: #ead9aa; }
.schedule-day.coverage-risk { background: #fff4ec; border-color: #efc1a7; }
.schedule-day.coverage-bad { background: #fff0ef; border-color: #e0a39e; }
.schedule-day span { color: var(--green-dark); font-size: 11px; font-weight: 900; }
.schedule-day strong { font-size: 16px; line-height: 1.05; }
.schedule-day small { color: var(--muted); font-size: 10px; font-weight: 800; line-height: 1.2; }
.schedule-day .weekday-line { color: var(--muted); text-transform: none; }
.schedule-day .slot-line { color: var(--ink); font-size: 14px; font-weight: 950; }
.schedule-day .coverage-pill { width: fit-content; padding: 3px 8px; border-radius: 999px; background: #e2f2df; color: var(--green-dark); font-size: 11px; }
.schedule-day.coverage-warn .coverage-pill { background: #fff0c8; color: #8b5d00; }
.schedule-day.coverage-risk .coverage-pill { background: #ffe1ca; color: #9b450f; }
.schedule-day.coverage-bad .coverage-pill { background: #ffdada; color: #a52d28; }
.schedule-day.coverage-unknown .coverage-pill { background: #eef1eb; color: var(--muted); }
.schedule-day .day-delta { overflow-wrap: anywhere; }
.schedule-selected, .schedule-day-detail { display: grid; gap: 10px; }
.schedule-day-nav { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.schedule-back-btn { width: fit-content; min-height: 42px; padding: 0 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--green-dark); font-size: 13px; font-weight: 950; }
.schedule-slots { display: grid; gap: 10px; }
.schedule-slot-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.schedule-slot-card { display: block; min-height: 72px; padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; overflow: hidden; }
.schedule-slot-card > summary { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(92px, .55fr) auto; gap: 10px; align-items: center; min-height: 72px; padding: 12px; cursor: pointer; list-style: none; }
.schedule-slot-card > summary::-webkit-details-marker { display: none; }
.schedule-slot-card.full { border-color: #b9d5b4; background: #f2faef; }
.schedule-slot-card.open { border-color: #e0a39e; background: #fff0ef; }
.schedule-slot-card.closed { border-color: #d7ded4; background: #eef1eb; color: #6a756b; opacity: .78; }
.schedule-slot-card.missing { border-color: #29362d; background: #102018; color: #fff; }
.schedule-slot-card.booking-mismatch { border-color: #b63d38; box-shadow: 0 0 0 2px #f1b4af, 0 7px 20px #3141340a; }
.schedule-slot-card strong { display: block; font-size: 16px; line-height: 1.2; overflow-wrap: anywhere; }
.schedule-slot-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.schedule-slot-card.closed small { color: #7c887f; }
.schedule-slot-card.missing small { color: #cbd8cc; }
.schedule-slot-card span { display: block; color: var(--green-dark); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.schedule-slot-card.closed span { color: #7c887f; }
.schedule-slot-card.missing span { color: #cfe88f; }
.schedule-slot-card b { display: block; margin-top: 4px; font-size: 14px; overflow-wrap: anywhere; }
.schedule-slot-status-stack { justify-self: end; display: inline-flex; align-items: center; gap: 6px; }
.schedule-slot-card em { justify-self: end; padding: 6px 9px; border-radius: 999px; background: #eef1eb; color: var(--ink); font-size: 11px; font-style: normal; font-weight: 950; white-space: nowrap; }
.schedule-slot-card.full em { background: #d9f0d4; color: var(--green-dark); }
.schedule-slot-card.open em { background: #ffdada; color: #a52d28; }
.schedule-slot-card.closed em { background: #dfe5dc; color: #6a756b; }
.schedule-slot-card.missing em { background: #ffffff18; color: #fff; }
.schedule-route-alert { display: inline-grid !important; width: 24px; height: 24px; place-items: center; border-radius: 999px; background: #dc2626; color: #fff !important; font-size: 15px !important; font-weight: 1000 !important; line-height: 1; text-transform: none !important; box-shadow: 0 4px 12px #dc262633; }
.schedule-route-alert.medium { background: #ef4444; opacity: .74; }
.schedule-route-alert.low { background: #f87171; opacity: .46; }
.schedule-route-alert.faint { background: #fecaca; color: #991b1b !important; opacity: .25; box-shadow: none; }
.schedule-slot-worker-preview { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.schedule-slot-worker-preview span { display: inline-flex; max-width: 100%; padding: 4px 7px; border-radius: 999px; background: #ffffffc9; color: var(--green-dark); font-size: 10px; font-weight: 950; line-height: 1.25; text-transform: none; overflow-wrap: anywhere; }
.schedule-slot-card.closed .schedule-slot-worker-preview span { background: #f8faf7; color: #657568; }
.schedule-slot-card.missing .schedule-slot-worker-preview span { background: #ffffff18; color: #fff; }
.schedule-slot-rec-badges { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; min-height: 26px; align-items: center; }
.schedule-slot-rec-pill { display: inline-flex !important; width: fit-content; max-width: 100%; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 999px; background: #fff; color: #a52d28 !important; font-size: 11px !important; font-weight: 950; text-transform: none !important; box-shadow: inset 0 0 0 1px #f0b5b0; overflow-wrap: anywhere; }
.schedule-slot-card .schedule-slot-rec-pill { display: inline-flex !important; color: #a52d28 !important; font-weight: 950; text-transform: none !important; }
.schedule-slot-rec-pill i,
.schedule-rec-alert { display: inline-grid; width: 17px; height: 17px; place-items: center; border-radius: 999px; background: #d6382f; color: #fff; font-style: normal; font-size: 12px; font-weight: 1000; line-height: 1; }
.schedule-slot-card .schedule-rec-alert { display: inline-grid; color: #fff; font-size: 12px; font-weight: 1000; text-transform: none; }
.schedule-slot-details { display: grid; gap: 10px; padding: 0 12px 12px; }
.schedule-slot-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.schedule-slot-detail-grid div { padding: 9px; border-radius: 10px; background: #ffffffa8; }
.schedule-slot-details-mismatch { border-top: 3px solid #b63d38; }
.schedule-slot-mismatch-note { padding: 8px 10px; border: 1px solid #efb1ac; border-radius: 10px; background: #fff3f2; color: #a52d28; font-size: 12px; font-weight: 900; }
.schedule-slot-card.closed .schedule-slot-detail-grid div { background: #f8faf7; }
.schedule-slot-card.missing .schedule-slot-detail-grid div { background: #ffffff12; }
.schedule-slot-detail-grid strong { font-size: 13px; }
.schedule-slot-worker-list { display: grid; gap: 8px; }
.schedule-slot-worker { display: grid; gap: 7px; padding: 10px; border-radius: 12px; background: #ffffffc7; }
.schedule-slot-worker-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.schedule-slot-worker-head b { align-self: start; margin-top: 0; padding: 5px 8px; border-radius: 999px; background: #edf4ea; color: var(--green-dark); font-size: 10px; font-weight: 950; text-transform: uppercase; }
.schedule-slot-card.missing .schedule-slot-worker { background: #ffffff12; }
.schedule-slot-worker-meta { display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 11px; font-weight: 850; }
.schedule-slot-card.missing .schedule-slot-worker-meta { color: #cbd8cc; }
.schedule-slot-worker-meta a { color: var(--green-dark); font-weight: 950; text-decoration: none; }
.schedule-slot-card.missing .schedule-slot-worker-meta a { color: #dff6b5; }
.schedule-vehicle-dialog { width: min(94vw, 860px); }
.schedule-vehicle-toolbar { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.schedule-vehicle-toolbar label { display: grid; gap: 4px; min-width: min(100%, 280px); }
.schedule-vehicle-toolbar span { color: var(--green-dark); font-size: 10px; font-weight: 950; text-transform: uppercase; }
.schedule-vehicle-toolbar select { min-height: 38px; padding: 0 10px; border: 1px solid #d8dfd5; border-radius: 10px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 850; }
.schedule-vehicle-list { display: grid; gap: 9px; max-height: min(68dvh, 620px); overflow: auto; padding-right: 2px; }
.schedule-vehicle-row { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, .85fr) minmax(0, 1.25fr); gap: 10px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfa; }
.schedule-vehicle-row-main span,
.schedule-vehicle-row-current span { display: block; color: var(--green-dark); font-size: 10px; font-weight: 950; text-transform: uppercase; }
.schedule-vehicle-row-main strong,
.schedule-vehicle-row-current strong { display: block; margin-top: 4px; font-size: 15px; overflow-wrap: anywhere; }
.schedule-vehicle-row-main small,
.schedule-vehicle-row-current small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.schedule-slot-actions { display: grid; gap: 6px; justify-items: start; }
.schedule-slot-actions button,
.schedule-slot-action-row button { min-height: 34px; padding: 0 11px; border: 1px solid #d9a6a2; border-radius: 10px; background: #fff8f7; color: #a52d28; font-size: 11px; font-weight: 950; }
.schedule-slot-actions button:disabled { opacity: .55; cursor: not-allowed; }
.schedule-sent-home-label { display: inline-flex; min-height: 30px; align-items: center; padding: 0 10px; border-radius: 999px; background: #edf4ea; color: var(--green-dark); font-size: 11px; font-weight: 950; }
.schedule-slot-action-status { display: none; width: 100%; padding: 8px 10px; border: 1px solid #b8d8ac; border-radius: 10px; background: #f4fff1; color: var(--green-dark); font-size: 12px; font-weight: 900; line-height: 1.35; }
.schedule-slot-action-status.active { display: block; }
.schedule-slot-action-status.error { border-color: #f0b5b0; background: #fff8f7; color: #a52d28; }
.schedule-slot-action-panel { display: grid; gap: 8px; padding: 10px; border: 1px solid #ead9aa; border-radius: 12px; background: #fffaf0; }
.schedule-slot-action-panel strong { font-size: 14px; }
.schedule-slot-action-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.schedule-slot-action-row select { min-width: 0; min-height: 38px; padding: 0 10px; border: 1px solid #d8dfd5; border-radius: 10px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 850; }
.schedule-slot-action-row button { border-color: var(--green); background: var(--green); color: #fff; }
.schedule-slot-action-row button:disabled,
.schedule-slot-action-row select:disabled { opacity: .6; cursor: not-allowed; }
.schedule-slot-rec-section { display: grid; gap: 8px; }
.device-history-head.compact { margin-top: 0; }
.schedule-slot-rec-list { display: grid; gap: 8px; }
.schedule-slot-rec-card { display: grid; gap: 8px; padding: 10px; border-radius: 12px; border: 1px solid #f0b5b0; background: #fffafa; }
.schedule-slot-rec-card.direct { border-color: #cfe2c8; background: #f8fff5; }
.schedule-slot-rec-card strong { display: flex; align-items: center; gap: 6px; font-size: 14px; }
.schedule-slot-rec-lines { display: grid; gap: 4px; color: var(--ink); font-size: 12px; font-weight: 850; line-height: 1.35; }
.schedule-slot-rec-lines span,
.schedule-slot-rec-foot span { color: inherit; font-size: inherit; font-weight: inherit; text-transform: none; }
.schedule-slot-rec-foot { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; color: var(--muted); font-size: 11px; font-weight: 850; }
.schedule-slot-rec-foot a { color: var(--green-dark); font-weight: 950; text-decoration: none; }
.schedule-worker-list-panel { display: grid; gap: 10px; }
.schedule-worker-list-panel > summary { cursor: pointer; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); font-size: 14px; font-weight: 950; list-style: none; }
.schedule-worker-list-panel > summary::-webkit-details-marker { display: none; }
.schedule-worker-list-panel[open] > summary { border-color: #cfe2c8; background: #f7fcf4; }
.schedule-worker-list-panel .ops-card-list { margin-top: 10px; }
.schedule-worker { display: block; padding: 0; overflow: hidden; }
.schedule-worker > .ops-card-head { padding: 16px; cursor: pointer; list-style: none; }
.schedule-worker > .ops-card-head::-webkit-details-marker { display: none; }
.schedule-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.schedule-chip { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 10px; border-radius: 999px; background: #eef1eb; color: var(--muted); font-size: 12px; font-weight: 900; }
.schedule-chip.ok { background: #e2f2df; color: var(--green-dark); }
.schedule-chip.missing { background: #fff0ef; color: #b93c33; }
.schedule-chip.unknown { background: #eef1eb; color: var(--muted); }
.settlement-dashboard-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(180px, .75fr); gap: 10px; padding: 16px; border: 1px solid #b9d8b4; border-radius: 22px; background: linear-gradient(135deg, #f7fbf4 0%, #edf7e9 100%); box-shadow: 0 12px 28px #31413410; }
.settlement-dashboard-hero div { min-width: 0; }
.settlement-dashboard-hero span, .settlement-dashboard-toolbar span, .settlement-dashboard-status-grid span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 950; text-transform: uppercase; }
.settlement-dashboard-hero strong { display: block; margin-top: 8px; font-size: 28px; line-height: 1.05; overflow-wrap: anywhere; }
.settlement-dashboard-hero small { display: block; margin-top: 8px; color: var(--muted); font-size: 12px; font-weight: 800; }
.settlement-dashboard-hero-total { padding: 12px; border: 1px solid #d7e6d2; border-radius: 16px; background: #fff; }
.settlement-dashboard-status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); gap: 8px; }
.settlement-dashboard-status-grid div { min-height: 66px; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfa; box-shadow: 0 7px 20px #3141340a; }
.settlement-dashboard-status-grid strong { display: block; margin-top: 7px; font-size: 20px; }
.settlement-dashboard-filter-panel { display: grid; gap: 10px; }
.settlement-dashboard-filter-title { display: flex; justify-content: space-between; align-items: end; gap: 10px; }
.settlement-dashboard-filter-title strong { font-size: 16px; }
.settlement-dashboard-filter-title small { color: var(--muted); font-size: 11px; font-weight: 800; text-align: right; }
.settlement-dashboard-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(158px, 1fr)); gap: 8px; }
.settlement-dashboard-filter { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 7px; align-items: center; min-height: 46px; padding: 8px 10px; border: 1px solid #aee2b8; border-radius: 10px; background: #fbfffb; color: var(--ink); text-align: left; }
.settlement-dashboard-filter.active { background: #1fa64a; color: #fff; border-color: #15833a; box-shadow: 0 10px 22px #1fa64a2e; }
.settlement-dashboard-filter .filter-dot { width: 11px; height: 11px; border: 1px solid var(--ink); border-radius: 999px; background: #f6e90b; }
.settlement-dashboard-filter.active .filter-dot { border-color: #fff; background: #fff; }
.settlement-dashboard-filter strong { min-width: 0; font-size: 11px; font-weight: 850; white-space: normal; overflow-wrap: anywhere; }
.settlement-dashboard-filter small { grid-column: 2; color: var(--muted); font-size: 10px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.settlement-dashboard-filter.active small { color: #e7f7e7; }
.settlement-dashboard-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 2px 2px 0; }
.settlement-dashboard-toolbar strong { font-size: 18px; }
.settlement-dashboard-toolbar span { color: var(--muted); text-align: right; }
.settlement-dashboard-list { display: grid; gap: 8px; }
.settlement-dashboard-row { display: grid; grid-template-columns: minmax(0, 1fr) 116px; gap: 8px; align-items: center; width: 100%; min-width: 0; min-height: 72px; padding: 6px 8px 6px 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); text-align: left; box-shadow: 0 7px 20px #3141340a; }
.settlement-dashboard-row.active { border-color: #80c885; background: #f3fbf0; box-shadow: 0 10px 24px #2c7a3b18; }
.settlement-dashboard-row.highlighted, .settlement-dashboard-row.highlighted.active { border: 2px solid #111827; box-shadow: 0 0 0 3px rgba(17,24,39,.12), 0 7px 20px #3141340a; }
.settlement-dashboard-row-main { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(120px, .8fr) minmax(92px, auto); gap: 10px; align-items: center; width: 100%; min-width: 0; min-height: 58px; padding: 6px 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.settlement-dashboard-edit { display: inline-flex; width: auto; min-width: 108px; height: 36px; align-items: center; justify-content: center; gap: 5px; justify-self: center; padding: 0 10px; border: 1px solid #20763a; border-radius: 10px; background: #20763a; color: #fff; font-size: 12px; font-weight: 900; line-height: 1; cursor: pointer; }
.settlement-dashboard-edit span:first-child { font-size: 18px; line-height: 1; }
.settlement-dashboard-edit:hover, .settlement-dashboard-edit[aria-pressed="true"] { border-color: #17592c; background: #17592c; color: #fff; }
.settlement-dashboard-row strong { display: block; font-size: 14px; overflow-wrap: anywhere; }
.settlement-dashboard-row-main > strong { min-width: 0; text-align: right; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.settlement-dashboard-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.3; overflow-wrap: anywhere; }
.settlement-dashboard-status { display: inline-flex; width: fit-content; max-width: 100%; min-height: 28px; align-items: center; padding: 6px 10px; border-radius: 999px; background: #eef1eb; color: var(--muted); font-size: 11px; font-weight: 950; text-transform: uppercase; overflow-wrap: anywhere; }
.settlement-dashboard-status-button { border: 0; text-align: left; cursor: pointer; font-family: inherit; line-height: inherit; }
.settlement-dashboard-status-button:focus-visible { outline: 2px solid var(--green-dark); outline-offset: 3px; }
.monthly-status-editor { width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto; border: 1px solid var(--line); border-radius: 18px; padding: 22px; color: var(--ink); background: #fff; }
.monthly-status-editor::backdrop { background: #183b2b66; }
.monthly-status-editor form { display: grid; gap: 14px; }
.settlement-dashboard-status.done { background: #e2f2df; color: var(--green-dark); }
.settlement-dashboard-status.error { background: #ffe3e0; color: #9d2f28; }
.settlement-dashboard-status.attention { background: #fff0ef; color: #b93c33; }
.settlement-dashboard-status.warning { background: #fff0c8; color: #8b5d00; }
.settlement-dashboard-status.waiting { background: #edf3ff; color: #26548f; }
.settlement-dashboard-status.active { background: #eef6e9; color: var(--green-dark); }
.settlement-dashboard-flags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.settlement-dashboard-flag { display: inline-flex; width: fit-content; padding: 4px 8px; border: 1px solid #c9dff9; border-radius: 999px; background: #eff6ff; color: #26619c; font-size: 10px; font-weight: 950; line-height: 1; }
.settlement-dashboard-flag.warn { border-color: #ffd891; background: #fff7df; color: #8b5d00; }
.settlement-dashboard-expanded { display: grid; gap: 12px; margin: -2px 0 8px; padding: 14px; border: 1px solid #a8d7a7; border-radius: 16px; background: #fbfffb; box-shadow: 0 12px 26px #31413412; }
.settlement-dashboard-expanded-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.settlement-dashboard-expanded-actions { display: flex; align-items: center; gap: 8px; }
.settlement-dashboard-expanded-head strong { display: block; font-size: 16px; }
.settlement-dashboard-expanded-head small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 800; }
.settlement-dashboard-tabs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.settlement-dashboard-tabs button { min-height: 36px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 900; white-space: nowrap; }
.settlement-dashboard-tabs button.active { border-color: #20763a; background: #20763a; color: #fff; }
.settlement-dashboard-mini-breakdown { display: grid; gap: 8px; }
.settlement-dashboard-mini-total { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px; border-radius: 14px; background: #173323; color: #fff; }
.settlement-dashboard-mini-total span { color: #d9efb3; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.settlement-dashboard-mini-total strong { font-size: 20px; }
.settlement-dashboard-mini-card { border: 1px solid var(--line); border-radius: 12px; background: #fff; overflow: hidden; }
.settlement-dashboard-mini-card summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 46px; padding: 10px 12px; cursor: pointer; list-style: none; }
.settlement-dashboard-mini-card summary::-webkit-details-marker { display: none; }
.settlement-dashboard-mini-card summary span { color: var(--muted); font-size: 11px; font-weight: 950; text-transform: uppercase; }
.settlement-dashboard-mini-card summary strong { font-size: 13px; text-align: right; }
.settlement-dashboard-tab-panel { display: grid; gap: 10px; }
.settlement-dashboard-editor { display: grid; gap: 12px; padding: 14px; border: 1px solid #a8d7a7; border-radius: 14px; background: #fff; }
.settlement-dashboard-editor-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.settlement-dashboard-editor-head strong { display: block; font-size: 16px; }
.settlement-dashboard-editor-head small, .settlement-dashboard-editor-help { color: var(--muted); font-size: 11px; font-weight: 700; line-height: 1.4; }
.settlement-dashboard-editor-badge { padding: 5px 8px; border-radius: 999px; background: #eef6e9; color: var(--green-dark); font-size: 11px; font-weight: 900; white-space: nowrap; }
.settlement-dashboard-editor-rows { display: grid; gap: 7px; max-height: 560px; overflow: auto; }
.settlement-dashboard-editor-row { display: grid; grid-template-columns: minmax(130px, 1.4fr) minmax(100px, .8fr) 70px minmax(120px, 1fr) 34px; gap: 6px; align-items: center; }
.settlement-dashboard-editor-row input, .settlement-dashboard-editor-row select { width: 100%; min-height: 36px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfa; color: var(--ink); font: inherit; font-size: 12px; }
.settlement-dashboard-editor-delete { width: 32px; height: 32px; border: 1px solid #efb3b0; border-radius: 8px; background: #fff6f5; color: #b33b34; font-size: 18px; cursor: pointer; }
.settlement-dashboard-editor-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.settlement-dashboard-editor-actions button { min-height: 36px; padding: 7px 10px; }
.settlement-worksheet { min-width: 0; background: #f5f8f2; }
.settlement-worksheet-section { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.settlement-worksheet h4 { margin: 0 0 10px; font-size: 15px; }
.settlement-worksheet-table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.settlement-worksheet-table th, .settlement-worksheet-table td { padding: 12px 6px; border-bottom: 1px solid var(--line); text-align: left; font-size: 12px; overflow-wrap: anywhere; }
.settlement-worksheet-table th:first-child { width: 44%; }
.settlement-worksheet-table td:nth-child(2) { font-variant-numeric: tabular-nums; }
.settlement-worksheet-table small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.settlement-worksheet-value { display: flex; gap: 5px; align-items: center; margin: 0; }
.settlement-worksheet input, .settlement-worksheet select, .settlement-worksheet textarea { min-width: 0; width: 100%; margin: 0; padding: 8px; font-size: 13px; }
.settlement-worksheet-value input { flex: 1; width: 0; text-align: right; }
.settlement-worksheet-value span { flex: none; white-space: nowrap; }
.settlement-worksheet button:disabled { opacity: .45; cursor: not-allowed; }
.settlement-worksheet-manual-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 32px; gap: 9px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.settlement-worksheet-manual-row label { min-width: 0; margin: 0; font-size: 11px; }
.settlement-worksheet-note { grid-column: 1 / 3; }
.settlement-worksheet-manual-row .settlement-dashboard-editor-delete { grid-column: 3; grid-row: 1 / 4; align-self: center; }
.settlement-worksheet-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.settlement-worksheet-totals small { display: block; color: var(--muted); font-size: 11px; }
.settlement-worksheet-totals strong { display: block; margin: 5px 0 12px; font-size: 21px; overflow-wrap: anywhere; }
.settlement-worksheet-tig { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; padding: 12px 0; border-top: 1px solid var(--line); font-size: 12px; }
@media (max-width: 480px) {
  .settlement-worksheet-section { padding: 10px; }
  .settlement-worksheet-table thead { display: none; }
  .settlement-worksheet-table tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 10px 0; border-bottom: 1px solid var(--line); }
  .settlement-worksheet-table td { border: 0; padding: 5px 0; }
  .settlement-worksheet-table td:first-child { grid-column: 1 / -1; }
  .settlement-worksheet-totals { grid-template-columns: 1fr; }
}
.settlement-dashboard-complaints { display: grid; gap: 10px; }
.settlement-dashboard-complaint { display: grid; gap: 9px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.settlement-dashboard-complaint strong { display: block; font-size: 14px; }
.settlement-dashboard-complaint small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; font-weight: 800; }
.settlement-dashboard-complaint label { margin: 0; gap: 5px; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.settlement-dashboard-complaint textarea { min-height: 74px; }
.settlement-import-stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.settlement-import-step { min-width: 0; display: grid; grid-template-columns: 32px 1fr; gap: 3px 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #f8fbf5; }
.settlement-import-step span { grid-row: 1 / 3; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 11px; background: #edf1eb; color: var(--muted); font-weight: 950; }
.settlement-import-step strong { overflow-wrap: anywhere; font-size: 13px; }
.settlement-import-step small { color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.25; }
.settlement-import-step.active { border-color: #9ccc96; background: #eff8ed; box-shadow: inset 0 0 0 1px #9ccc962e; }
.settlement-import-step.active span, .settlement-import-step.done span { background: var(--green-dark); color: #fff; }
.settlement-import-step.done { border-color: #c7dcc3; }
.settlement-import-panel { display: grid; gap: 14px; }
.settlement-import-copy { display: grid; gap: 5px; }
.settlement-import-copy h3 { margin: 0; font-size: 22px; letter-spacing: 0; }
.settlement-import-copy p { margin: 0; }
.settlement-import-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.settlement-import-actions button { min-width: 150px; }
.settlement-import-result-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); gap: 8px; }
.settlement-import-result-grid div { min-height: 84px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: #f8fbf5; }
.settlement-import-result-grid span, .settlement-import-header-title span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.settlement-import-result-grid strong { display: block; margin-top: 8px; font-size: 18px; overflow-wrap: anywhere; }
.settlement-import-header-list { display: grid; gap: 10px; }
.settlement-import-header-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: #fbfcfa; }
.settlement-import-header-title { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.settlement-import-header-title strong { display: block; margin-top: 4px; font-size: 17px; overflow-wrap: anywhere; }
.settlement-import-header-title small { color: var(--muted); font-size: 11px; font-weight: 800; text-align: right; }
.settlement-import-header-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.settlement-import-header-tags span { max-width: 100%; padding: 7px 9px; border: 1px solid #cfe2ca; border-radius: 999px; background: #eff8ed; color: var(--green-dark); font-size: 12px; font-weight: 850; overflow-wrap: anywhere; }
.settlement-import-header-tags em { color: var(--muted); font-size: 13px; }
.settlement-import-configurator { display: grid; gap: 12px; }
.settlement-import-column-bank { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: #fbfcfa; }
.settlement-import-column-chip-list { min-height: 72px; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 7px; padding: 10px; border: 1px dashed #bfd7ba; border-radius: 14px; background: #f8fbf5; }
.settlement-import-column-chip-list em, .settlement-import-card-dropzone em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 800; }
.settlement-import-column-chip { max-width: 100%; display: inline-grid; gap: 2px; padding: 8px 10px; border: 1px solid #cfe2ca; border-radius: 14px; background: #fff; color: var(--ink); cursor: grab; user-select: none; box-shadow: 0 2px 6px #17351f0d; }
.settlement-import-column-chip:active { cursor: grabbing; }
.settlement-import-column-chip b { font-size: 12px; line-height: 1.2; overflow-wrap: anywhere; }
.settlement-import-column-chip small { color: var(--muted); font-size: 10px; font-weight: 850; line-height: 1.2; overflow-wrap: anywhere; }
.settlement-import-column-chip.assigned { position: relative; padding-right: 32px; background: #eff8ed; }
.settlement-import-column-chip button { position: absolute; top: 6px; right: 6px; width: 20px; height: 20px; min-width: 0; padding: 0; border-radius: 999px; border: 1px solid #bfd7ba; background: #fff; color: var(--muted); font-weight: 950; line-height: 1; }
.settlement-import-sheet-grouper { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: #fbfcfa; }
.settlement-import-sheet-bank { min-height: 58px; }
.settlement-import-sheet-group-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.settlement-import-sheet-group { min-height: 144px; background: #fffdf8; }
.settlement-import-sheet-chip { border-color: #e7d6ad; background: #fffaf0; }
.settlement-import-sheet-chip.assigned { background: #fff3d8; }
.settlement-import-card-config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.settlement-import-config-card { min-height: 156px; display: grid; grid-template-rows: auto 1fr; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: #fbfcfa; }
.settlement-import-config-card span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 950; text-transform: uppercase; }
.settlement-import-config-card strong { display: block; margin-top: 5px; font-size: 18px; overflow-wrap: anywhere; }
.settlement-import-config-card small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.3; }
.settlement-import-card-dropzone { min-height: 66px; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 6px; padding: 8px; border: 1px dashed #bfd7ba; border-radius: 14px; background: #f8fbf5; }
.settlement-import-card-dropzone.has-items { border-style: solid; background: #eff8ed; }
.settlement-import-processing { display: grid; gap: 10px; padding: 14px; border: 1px solid #cfe2ca; border-radius: 18px; background: #eff8ed; }
.settlement-import-processing.warn { border-color: #ead9aa; background: #fffaf0; }
.settlement-import-processing-list { display: flex; flex-wrap: wrap; gap: 6px; }
.settlement-import-processing-list span { max-width: 100%; padding: 7px 9px; border-radius: 999px; background: #fff; color: var(--green-dark); font-size: 12px; font-weight: 850; overflow-wrap: anywhere; }
.settlement-import-processing-errors { display: grid; gap: 5px; }
.settlement-import-processing-errors small { color: var(--danger); font-size: 12px; font-weight: 750; line-height: 1.35; }
.settlement-import-published { display: grid; gap: 5px; padding: 14px; border: 1px solid #8ccf83; border-radius: 18px; background: linear-gradient(135deg, #1f7a38, #155a2a); color: #fff; }
.settlement-import-published span { color: #dff4d4; font-size: 11px; font-weight: 950; text-transform: uppercase; }
.settlement-import-published strong { font-size: 18px; overflow-wrap: anywhere; }
.settlement-import-published small { color: #eaf8e4; font-size: 12px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.settlement-import-actions .danger { border-color: #e2aaa5; color: var(--danger); }
.settlement-import-validation { display: grid; gap: 10px; }
.settlement-import-reconciliation { display: grid; gap: 10px; padding: 14px; border: 1px solid #cfe2ca; border-radius: 18px; background: #eff8ed; }
.settlement-import-reconciliation.warn { border-color: #ead9aa; background: #fffaf0; }
.settlement-import-reconciliation-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.settlement-import-reconciliation-stats small { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 12px; background: #fff; color: var(--muted); font-size: 12px; font-weight: 850; }
.settlement-import-reconciliation-stats b { color: var(--ink); white-space: nowrap; }
.settlement-import-reconciliation-list { display: grid; gap: 6px; max-height: 260px; overflow: auto; }
.settlement-import-reconciliation-list div { display: grid; gap: 3px; padding: 10px; border: 1px solid #ead9aa; border-radius: 12px; background: #fff; }
.settlement-import-reconciliation-list div.ok { border-color: #cfe2ca; background: #fbfcfa; }
.settlement-import-reconciliation-list div.warn { border-color: #ead9aa; background: #fff; }
.settlement-import-reconciliation-list strong { font-size: 13px; overflow-wrap: anywhere; }
.settlement-import-reconciliation-list small { color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.settlement-import-reconciliation-note { color: var(--muted); font-size: 12px; font-weight: 850; }
.settlement-import-route-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.settlement-import-route-checks article, .settlement-import-sample-card, .settlement-import-tig-card { display: grid; gap: 8px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: #fbfcfa; }
.settlement-import-route-checks span, .settlement-import-sample-card span, .settlement-import-tig-card span { color: var(--green-dark); font-size: 11px; font-weight: 950; text-transform: uppercase; }
.settlement-import-route-checks strong, .settlement-import-sample-card strong, .settlement-import-tig-card strong { font-size: 18px; overflow-wrap: anywhere; }
.settlement-import-route-checks article div, .settlement-import-sample-lines, .settlement-import-tig-lines { display: grid; gap: 5px; }
.settlement-import-route-checks small, .settlement-import-sample-card small, .settlement-import-tig-card small { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.35; }
.settlement-import-route-checks b, .settlement-import-sample-card b, .settlement-import-tig-card b { color: var(--ink); white-space: nowrap; }
.settlement-import-route-samples { display: block; margin-top: 3px; color: #6c7a72; font-size: 11px; font-style: normal; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
.settlement-import-detail-list { display: grid; gap: 4px; margin: 2px 0 6px; padding: 8px; border-radius: 12px; background: #eff8ed; }
.settlement-import-detail-list small { font-size: 11px; }
.settlement-import-detail-list small.muted { justify-content: flex-start; padding-left: 8px; color: #6c7a72; }
.settlement-import-sample-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.settlement-import-tig-card { border-color: #b8d5b4; background: linear-gradient(145deg, #fff, #eef8ed); }
.schedule-recommendations { display: grid; gap: 10px; }
.schedule-recommendation-list { display: grid; gap: 8px; }
.schedule-recommendation { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr) minmax(0, .9fr); gap: 10px; align-items: center; padding: 12px; border: 1px solid #cfe2c8; border-radius: 14px; background: #f7fcf4; }
.schedule-recommendation.move { border-color: #ead9aa; background: #fffaf0; }
.schedule-recommendation strong { display: block; font-size: 14px; overflow-wrap: anywhere; }
.schedule-recommendation small { display: block; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.schedule-rec-slots { display: flex; flex-wrap: wrap; gap: 6px; }
.schedule-rec-slots span { display: inline-flex; align-items: center; min-height: 28px; padding: 5px 9px; border-radius: 999px; background: #e2f2df; color: var(--green-dark); font-size: 12px; font-weight: 950; }
.schedule-move-row { display: grid; gap: 2px; min-width: 150px; padding: 7px 9px; border-radius: 12px; background: #fff0c8; }
.schedule-rec-foot { display: grid; gap: 5px; justify-items: end; text-align: right; }
.schedule-rec-foot a, .schedule-rec-foot span { color: var(--green-dark); font-size: 13px; font-weight: 950; text-decoration: none; }
.process-title { display: flex; align-items: flex-start; gap: 12px; }
.process-title h3 { margin: 2px 0 4px; font-size: 20px; }
.process-title p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.route-panel { display: grid; gap: 14px; margin-top: 14px; }
.route-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 20px; border-radius: 22px; background: var(--ink); color: #fff; box-shadow: 0 14px 32px #17231c26; }
.route-hero .eyebrow { color: #cfe88f; }
.route-hero h3 { margin: 5px 0 5px; font-size: 30px; letter-spacing: 0; }
.route-hero p { margin: 0; color: #d8e0d9; font-size: 13px; }
.route-hero > span { flex: 0 0 auto; max-width: 130px; padding: 7px 10px; border-radius: 999px; background: #ffffff18; color: #fff; font-size: 11px; font-weight: 850; text-align: right; overflow-wrap: anywhere; }
.route-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.route-summary div { min-height: 78px; padding: 13px 10px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.route-summary span { display: block; color: var(--muted); font-size: 11px; font-weight: 800; }
.route-summary strong { display: block; margin-top: 9px; font-size: 20px; letter-spacing: 0; overflow-wrap: anywhere; }
.route-current { display: grid; gap: 7px; padding: 18px; border: 1px solid #b9d5b6; border-radius: 18px; background: #eff8ed; }
.route-current span, .route-stop span { color: var(--green-dark); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.route-current strong { font-size: 17px; line-height: 1.35; }
.route-current small, .route-stop small { color: var(--muted); font-weight: 700; }
.route-next-card,
.route-live-card,
.route-progress-card,
.route-detail-card { display: grid; gap: 10px; padding: 16px; border: 1px solid #b8d5b4; border-radius: 20px; background: #f8fbf5; box-shadow: 0 7px 20px #3141340a; }
.route-next-card { position: relative; padding-right: 64px; background: var(--surface); }
.route-next-card > span,
.route-live-card span,
.route-progress-card span,
.route-detail-card h4 { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-next-card strong,
.route-live-card strong,
.route-progress-card strong { display: block; font-size: 19px; line-height: 1.3; overflow-wrap: anywhere; }
.route-next-card small,
.route-live-card small { display: block; color: var(--muted); font-size: 12px; font-weight: 750; line-height: 1.4; }
.route-next-number { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; min-width: 38px; height: 38px; padding: 0 8px; border-radius: 13px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 950; }
.route-action-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 4px; }
.route-copy-button { min-height: 50px; border: 1px solid var(--ink); border-radius: 16px; background: transparent; color: var(--ink); font-weight: 900; }
.route-live-card { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.route-progress-head { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.route-progress-head em { padding: 6px 9px; border-radius: 999px; background: #e2f2df; color: var(--green-dark); font-style: normal; font-size: 12px; font-weight: 900; white-space: nowrap; }
.route-progress-bar { height: 12px; overflow: hidden; border-radius: 999px; background: #dfe7dc; }
.route-progress-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-dark), var(--green)); }
.route-progress-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; font-weight: 850; }
.route-detail-card h4 { margin: 0; }
.route-timeline { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.route-timeline-head { display: grid; gap: 4px; }
.route-timeline-head span { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-timeline-head strong { font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.route-timeline-grid { display: grid; gap: 8px; }
.route-timeline .stat-row { align-items: flex-start; }
.route-timeline .stat-row strong { max-width: 58%; text-align: right; overflow-wrap: anywhere; }
.route-stop-list { display: grid; gap: 8px; }
.route-stop { display: grid; grid-template-columns: 34px 1fr; gap: 11px; align-items: start; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.route-stop.delayed { border-color: #d46a62; background: #fff0ef; }
.route-stop.delayed .route-stop-index { background: #b4443d; color: #fff; }
.route-delay-note { color: #b4443d !important; }
.route-stop-index { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 12px; background: #edf1eb; color: var(--muted); font-size: 13px; font-weight: 900; }
.route-stop strong { display: block; margin-top: 4px; line-height: 1.35; }
.waze-button { display: grid; place-items: center; min-height: 50px; border-radius: 16px; background: #1f74ff; color: #fff; font-weight: 900; text-decoration: none; box-shadow: 0 10px 24px #1f74ff24; }
.route-problem-button { width: 100%; min-height: 52px; border: 0; border-radius: 16px; background: var(--danger); color: #fff; font-weight: 900; box-shadow: 0 10px 24px #a8433e24; }
.route-planner { display: grid; gap: 10px; padding: 14px; border: 1px solid #b8d5b4; border-radius: 20px; background: #f8fbf5; box-shadow: 0 7px 20px #3141340a; }
.route-planner-head { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8px; }
.route-planner-head > div,
.route-planner-insights > div,
.route-planner-selected { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.route-planner-head span,
.route-planner-insights span,
.route-planner-selected span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-planner-head strong,
.route-planner-insights strong,
.route-planner-selected strong { display: block; margin-top: 6px; font-size: 18px; line-height: 1.25; overflow-wrap: anywhere; }
.route-planner-head small,
.route-planner-insights small,
.route-planner-selected small,
.route-planner-stop small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; }
.route-planner-map { position: relative; height: 340px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #e6ede4; }
.route-planner-live-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.route-planner-map-toolbar { position: absolute; left: 10px; right: 10px; bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 14px; background: #fffffff2; box-shadow: 0 10px 24px #17231c24; font-size: 12px; font-weight: 900; }
.route-planner-map-toolbar a { color: var(--green-dark); text-decoration: none; }
.route-planner-map-missing { display: grid; place-items: center; align-content: center; gap: 8px; padding: 20px; text-align: center; }
.route-planner-map-missing strong { font-size: 18px; }
.route-planner-map-missing small { max-width: 320px; color: var(--muted); font-size: 12px; font-weight: 800; line-height: 1.4; }
.route-planner-insights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.route-planner-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.route-map-button { display: grid; place-items: center; min-height: 50px; border-radius: 16px; background: var(--ink); color: #fff; font-weight: 900; text-decoration: none; box-shadow: 0 10px 24px #17231c20; }
.route-map-button-wide { grid-column: 1 / -1; }
.route-planner-stop-list { display: grid; gap: 8px; max-height: 460px; overflow: auto; padding-right: 2px; }
.route-planner-stop { width: 100%; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); color: var(--ink); text-align: left; }
.route-planner-stop.active,
.route-planner-stop.selected { border-color: var(--green-dark); background: #eff8ed; box-shadow: 0 0 0 3px #6f9d3d1f; }
.route-planner-stop.risk { border-color: #d46a62; background: #fff0ef; }
.route-planner-stop-number { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 12px; background: #edf1eb; color: var(--muted); font-size: 13px; font-weight: 900; }
.route-planner-stop.done .route-planner-stop-number,
.route-planner-stop.active .route-planner-stop-number { background: var(--green-dark); color: #fff; }
.route-planner-stop strong { display: block; font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
.route-planner-stop em { color: var(--green-dark); font-style: normal; font-size: 12px; font-weight: 900; text-align: right; white-space: nowrap; }
.route-planner-stop.risk em { color: var(--danger); }
.route-empty { display: flex; gap: 13px; align-items: center; padding: 22px; border: 1px dashed #c7d0c5; border-radius: 20px; background: var(--surface); }
.route-empty.error-state { border-color: var(--danger); background: #fff0ef; }
.route-empty-icon { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 14px; background: #edf1eb; color: var(--green-dark); font-size: 24px; font-weight: 900; }
.route-empty.error-state .route-empty-icon { background: #f9dfdd; color: var(--danger); }
.route-empty h3 { margin: 0 0 4px; }
.route-empty p { margin: 0; color: var(--muted); line-height: 1.45; }
.route-empty.error-state h3, .route-empty.error-state p { color: var(--danger); }
.document-list, .complaint-list { display: grid; gap: 9px; margin-top: 16px; }
.document-row, .complaint-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border-radius: 14px; background: #f5f7f3; }
.complaint-row > div { min-width: 0; }
.complaint-message { white-space: pre-line; overflow-wrap: anywhere; line-height: 1.5; }
.complaint-withdraw { flex: 0 0 auto; min-height: 36px; padding: 0 12px; border-radius: 12px; font-size: 12px; }
.document-row.archive { align-items: flex-start; }
.document-row strong, .complaint-row strong { display: block; font-size: 13px; }
.document-row small, .complaint-row small { color: var(--muted); }
.document-month-list { display: grid; gap: 18px; }
.document-month-group { display: grid; gap: 8px; }
.document-month-group h3 { margin: 0; color: var(--ink); font-size: 18px; }
.document-badge { display: inline-flex; width: fit-content; margin-bottom: 6px; padding: 4px 8px; border-radius: 999px; background: #e7f4e4; color: var(--green-dark); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.download-link { flex: 0 0 auto; padding: 8px 10px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 800; text-decoration: none; }
.document-preview-list { display: grid; gap: 10px; }
.document-preview-card { display: grid; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.document-preview-card .document-row { padding: 0; border-radius: 0; background: transparent; }
.document-preview-card iframe { width: 100%; height: 340px; border: 1px solid var(--line); border-radius: 12px; background: #f4f6f2; }
.pdf-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 12px 0; }
.pdf-preview-toolbar .secondary { width: auto; padding: 8px 10px; }
.pdf-preview-toolbar span { white-space: nowrap; font-size: 13px; }
.pdf-preview-page { display: block; width: 100%; height: auto; border: 1px solid var(--line); background: white; }
.accept-row { display: grid; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.accept-row.done { padding: 13px; border: 0; border-radius: 13px; background: #e5f3e1; color: #275d31; font-weight: 800; }
.accept-row .primary { background: linear-gradient(135deg, var(--green-dark), var(--green)); box-shadow: 0 10px 24px #2e5b3624; }
.accept-row .primary:disabled { cursor: not-allowed; background: #dfe4dc; color: #718071; box-shadow: none; }
.secondary { min-height: 46px; border: 1px solid var(--ink); border-radius: 14px; background: transparent; color: var(--ink); font-weight: 800; }
.complaint-box { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.complaint-box form { margin-top: 10px; }
.financial-total-card { display: grid; gap: 8px; margin-top: 18px; padding: 22px; border: 2px solid #9bd774; border-radius: 20px; background: linear-gradient(145deg, #10291c, #1a7c3a); color: #fff; text-align: center; box-shadow: 0 18px 38px #0e2f1b40; }
.financial-total-card span { color: #cfe88f; font-size: 11px; font-weight: 850; text-transform: uppercase; }
.financial-total-card strong { font-size: 38px; line-height: 1; overflow-wrap: anywhere; }
.financial-total-card small { color: #d8e0d9; font-size: 11px; font-weight: 750; }
.financial-restore-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; margin-top: 12px; padding: 14px; border: 1px solid #f0c7c5; border-radius: 16px; background: #fff8f5; }
.financial-restore-panel strong { display: block; font-size: 13px; text-transform: uppercase; }
.financial-restore-panel small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 800; line-height: 1.35; }
.financial-restore-actions { display: grid; grid-template-columns: auto minmax(190px, 1fr) auto; gap: 8px; align-items: center; }
.financial-restore-actions select { min-height: 42px; border: 1px solid var(--line); border-radius: 12px; background: #fff; font-weight: 800; }
.financial-restore-actions .secondary { min-height: 42px; border-radius: 12px; padding: 0 12px; }
.financial-card-grid { display: grid; gap: 10px; margin-top: 12px; }
.financial-card { border: 1px solid var(--line); border-radius: 16px; background: #f9faf8; overflow: hidden; }
.financial-card summary { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; min-height: 68px; padding: 14px; cursor: pointer; list-style: none; }
.financial-card summary::-webkit-details-marker { display: none; }
.financial-card-title { display: grid; gap: 4px; min-width: 0; }
.financial-card-title span { color: var(--muted); font-size: 12px; font-weight: 850; text-transform: uppercase; }
.financial-card-title small { color: var(--ink); font-size: 11px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; text-transform: none; }
.financial-card summary strong { font-size: 19px; overflow-wrap: anywhere; text-align: right; }
.financial-card.editing { border-color: #82c784; background: #f5fcf3; box-shadow: 0 12px 28px #2c7a3b14; }
.financial-card-summary-side { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
.financial-card-actions { display: inline-flex; gap: 5px; }
.financial-card-actions .icon-button { width: 34px; height: 34px; min-height: 34px; border-radius: 12px; font-size: 16px; }
.financial-card-actions .financial-save { background: #189447; color: #fff; border-color: #189447; }
.financial-editor { display: grid; gap: 10px; padding: 0 12px 12px; }
.financial-editor-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.financial-editor-head strong { font-size: 13px; text-transform: uppercase; }
.financial-editor-head .secondary { min-height: 34px; border-radius: 10px; padding: 0 10px; font-size: 12px; }
.financial-editor-rows { display: grid; gap: 8px; }
.financial-editor-row { display: grid; grid-template-columns: minmax(120px, 1fr) 110px minmax(120px, 1fr) auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.financial-editor-row.deleted { opacity: .58; background: #fff7f6; }
.financial-editor-row label { gap: 4px; margin: 0; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.financial-editor-row input { min-height: 38px; padding: 8px 10px; border-radius: 10px; font-size: 13px; }
.financial-editor-row .danger { width: 38px; height: 38px; min-height: 38px; border-color: #d13b31; color: #d13b31; }
.financial-editor-note { color: var(--muted); font-size: 11px; font-weight: 800; }
.financial-card.total { display: none; }
.financial-card.income summary strong { color: var(--green-dark); }
.financial-card.deduction summary strong { color: var(--danger); }
.financial-detail-list { display: grid; gap: 1px; padding: 0 12px 12px; }
.financial-detail-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.financial-detail-text { min-width: 0; }
.financial-detail-row strong { display: block; font-size: 13px; }
.financial-detail-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; white-space: pre-wrap; }
.financial-detail-row span { font-weight: 900; overflow-wrap: anywhere; text-align: right; }
@media (max-width: 430px) {
  .financial-restore-panel,
  .financial-restore-actions { grid-template-columns: 1fr; }
  .financial-card summary { grid-template-columns: 1fr; }
  .financial-card summary strong { text-align: left; }
  .financial-card-summary-side { justify-content: space-between; }
  .financial-detail-row { grid-template-columns: 1fr; }
  .financial-detail-row span { text-align: left; }
  .financial-editor-row { grid-template-columns: 1fr; }
  .financial-editor-row .danger { width: 100%; }
}
.financial-highlight-panel { margin-top: 12px; padding: 13px 14px; border: 1px solid #f0c7c5; border-radius: 16px; background: #fff6f5; }
.financial-highlight-panel > strong { display: block; margin-bottom: 4px; color: var(--danger); font-size: 13px; text-transform: uppercase; }
.financial-highlight-panel .financial-detail-list { padding: 0; }
.financial-highlight-panel .financial-detail-row:first-child { border-top: 0; }
.financial-complaint-options { display: grid; gap: 8px; margin: 10px 0; }
.financial-complaint-options .checkbox-line { align-items: flex-start; }
.financial-complaint-options span { display: grid; gap: 2px; }
.financial-complaint-options strong { color: var(--ink); font-size: 12px; }
.tig-toolbar { display: flex; justify-content: flex-end; margin-top: 12px; }
.tig-download-link { background: #1aa34a; color: #fff; }
.tig-total-card { display: grid; gap: 6px; margin-top: 18px; padding: 18px; border-radius: 18px; background: #20352a; color: #fff; text-align: center; box-shadow: 0 14px 32px #17231c20; }
.tig-total-card span { color: #cfe88f; font-size: 11px; font-weight: 850; text-transform: uppercase; }
.tig-total-card strong { font-size: 31px; line-height: 1; overflow-wrap: anywhere; }
.tig-total-card small { color: #d8e0d9; font-size: 11px; font-weight: 750; }
.tig-party-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.tig-buyer-card { display: grid; gap: 4px; margin-top: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #f9faf8; }
.tig-party-grid .tig-buyer-card { margin-top: 0; }
.tig-buyer-card span { color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.tig-buyer-card strong { font-size: 15px; line-height: 1.25; }
.tig-buyer-card small { color: var(--ink); font-size: 12px; font-weight: 750; line-height: 1.3; }
.tig-table { display: grid; gap: 1px; margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--line); }
.tig-row { display: grid; grid-template-columns: minmax(0, 1.5fr) .8fr .7fr .9fr; gap: 8px; align-items: center; padding: 12px; background: #f9faf8; font-size: 12px; }
.tig-row.head { min-height: 42px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.tig-row span:not(:first-child) { text-align: right; font-weight: 850; overflow-wrap: anywhere; }
.tig-row strong { display: block; font-size: 13px; }
.tig-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.25; }
.tig-row.deduction { background: #fff0ef; color: var(--danger); }
.tig-row.deduction small { color: #9d5956; }
.tig-cash-invoice { display: grid; gap: 12px; margin-top: 18px; padding: 14px; border: 2px solid #2b6f3a; border-radius: 18px; background: #eef8ed; box-shadow: 0 10px 28px #17231c12; }
.tig-cash-invoice .tig-party-grid, .tig-cash-invoice .tig-table { margin-top: 0; }
.tig-cash-heading { display: grid; gap: 4px; padding: 12px; border-radius: 14px; background: #163326; color: #fff; }
.tig-cash-heading span { color: #d7f96c; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.tig-cash-heading strong { font-size: 30px; line-height: 1; }
.tig-cash-heading em { color: #fff; font-size: 15px; font-style: normal; font-weight: 950; line-height: 1.2; }
.tig-cash-heading small { color: #e6f1e7; font-size: 12px; font-weight: 800; line-height: 1.35; }
.process-form { margin-top: 18px; }
.process-form.two-column { grid-template-columns: 1fr; }
.full-width { grid-column: 1 / -1; }
.phonebook-list { display: grid; gap: 10px; margin-top: 14px; }
.phonebook-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.phonebook-card strong,
.phonebook-card span,
.phonebook-card a { display: block; overflow-wrap: anywhere; }
.phonebook-card strong { font-size: 17px; }
.phonebook-card span { margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 750; }
.phonebook-card a { margin-top: 7px; color: var(--green-dark); font-size: 15px; font-weight: 900; text-decoration: none; }
.phonebook-call { display: grid !important; place-items: center; min-width: 72px; min-height: 44px; margin: 0 !important; border-radius: 14px; background: var(--ink); color: #fff !important; font-size: 12px !important; font-weight: 900 !important; text-decoration: none; }
.atm-balance-card { display: grid; gap: 8px; background: #eff8ed; border-color: #b8d5b4; }
.atm-balance-card > strong { display: block; margin-top: 8px; color: var(--green-dark); font-size: 34px; line-height: 1; overflow-wrap: anywhere; }
.atm-balance-card > small { color: var(--muted); font-size: 12px; font-weight: 850; }
.atm-receipt-preview { display: grid; place-items: center; min-height: 118px; margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #f5f7f3; color: var(--green-dark); font-size: 13px; font-weight: 900; text-decoration: none; }
.atm-receipt-preview img { width: 100%; max-height: 220px; object-fit: contain; background: #fff; }
.atm-receipt-preview span { padding: 18px; }
.checkbox-line { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: #f9faf8; color: var(--ink); }
.checkbox-line input[type="checkbox"] { width: 20px; height: 20px; padding: 0; flex: 0 0 auto; accent-color: var(--green-dark); }
.result-box { display: grid; gap: 8px; margin-top: 16px; }
.result-summary { padding: 13px; border-radius: 13px; font-weight: 850; }
.result-summary.ok { background: #e5f3e1; color: #275d31; }
.result-summary.error { background: #f9dfdd; color: var(--danger); }
.check-row { padding: 10px 12px; border-left: 4px solid var(--line); border-radius: 8px; background: #f7f8f6; font-size: 12px; line-height: 1.45; }
.check-row.ok { border-left-color: var(--green); }
.check-row.warn { border-left-color: #d99a28; }
.check-row.error { border-left-color: var(--danger); }
.notice { margin: 12px 0; padding: 14px; border-radius: 14px; background: #e8f2e3; color: #315b37; font-size: 13px; font-weight: 750; }
.notice.error { background: #f9dfdd; color: var(--danger); }
.statistics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.courier-statistics-compare { display: grid; gap: 12px; margin-top: 14px; padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.courier-statistics-compare:empty { display: none; }
.courier-statistics-compare .admin-stat-donut-grid { margin-top: 0; }
.admin-statistics-panel { display: grid; gap: 14px; margin-top: 14px; }
.admin-stat-filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-stat-filter { min-height: 38px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); font-weight: 900; cursor: pointer; }
.admin-stat-filter.active { border-color: var(--green-dark); background: var(--green-dark); color: #fff; }
.admin-stat-subtitle { color: var(--muted); font-size: 12px; font-weight: 800; }
.admin-stat-donut-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.courier-stat-donut-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.admin-stat-donut-card { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.admin-stat-donut-card h3 { margin: 0; font-size: 13px; }
.admin-stat-donut-card p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.admin-stat-donut-wrap { display: grid; place-items: center; margin: 14px 0 10px; }
.admin-stat-donut { display: grid; place-items: center; width: 112px; height: 112px; border-radius: 50%; background: conic-gradient(var(--green) 0 var(--admin-donut-fill), var(--line) var(--admin-donut-fill) 100%); }
.admin-stat-donut.down { background: conic-gradient(var(--danger) 0 var(--admin-donut-fill), var(--line) var(--admin-donut-fill) 100%); }
.admin-stat-donut > div { display: grid; place-items: center; align-content: center; width: 76px; height: 76px; border-radius: 50%; background: var(--surface); text-align: center; }
.admin-stat-donut strong { font-size: 22px; line-height: 1; }
.admin-stat-donut span { margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 850; }
.admin-stat-delta { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: 11px; font-weight: 950; }
.admin-stat-delta.up { background: #e0f3df; color: var(--green-dark); }
.admin-stat-delta.down { background: #ffe5e2; color: var(--danger); }
.admin-stat-delta.neutral { background: #eef1eb; color: var(--muted); }
.admin-stat-compare { display: flex; justify-content: space-between; gap: 8px; margin-top: 9px; color: var(--muted); font-size: 11px; }
.admin-stat-compare b { color: var(--ink); }
.admin-stat-section { padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: var(--surface); }
.admin-stat-section h3 { margin: 0 0 12px; font-size: 15px; }
.admin-stat-note { margin: -4px 0 12px; color: var(--muted); font-size: 12px; }
.admin-shift-compare-table-wrap { overflow-x: auto; }
.admin-shift-compare-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 12px; }
.admin-shift-compare-table th, .admin-shift-compare-table td { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.admin-shift-compare-table th:first-child, .admin-shift-compare-table td:first-child { text-align: left; }
.admin-shift-compare-table th { color: var(--muted); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.admin-shift-compare-table td.positive { color: var(--green-dark); font-weight: 900; }
.admin-shift-compare-table td.negative { color: var(--danger); font-weight: 900; }
.admin-shift-compare-table td.neutral { color: var(--muted); }
.admin-stat-type-list { display: grid; gap: 11px; }
.admin-stat-type-row { display: grid; grid-template-columns: 100px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.admin-stat-type-row span, .financial-stat-week span { font-size: 12px; font-weight: 850; }
.admin-stat-type-row b, .financial-stat-week b { font-size: 12px; white-space: nowrap; }
.admin-stat-track, .financial-stat-track { height: 10px; overflow: hidden; border-radius: 999px; background: var(--line); }
.admin-stat-track i, .financial-stat-track i { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.admin-stat-track i.express { background: var(--orange); }
.admin-stat-track i.regional { background: #6d74c8; }
.financial-stat-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.financial-stat-kpi-grid > div { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.financial-stat-kpi-grid span { color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.financial-stat-kpi-grid strong { display: block; margin-top: 8px; font-size: 20px; overflow-wrap: anywhere; }
.financial-stat-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
.financial-stat-weeks, .financial-stat-breakdown { display: grid; gap: 10px; }
.financial-stat-week { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.financial-stat-track i { background: #c54b0b; }
.financial-stat-breakdown-row { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.financial-stat-breakdown-row:last-child { border-bottom: 0; }
.financial-stat-breakdown-row b { white-space: nowrap; }
.stat-card { min-height: 118px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.stat-card span { display: block; color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.stat-card strong { display: block; margin-top: 12px; font-size: 28px; line-height: 1; letter-spacing: 0; overflow-wrap: anywhere; }
.stat-card small { display: block; margin-top: 10px; color: var(--green-dark); font-size: 11px; font-weight: 800; }
.stat-breakdown-list { display: grid; gap: 8px; margin-top: 16px; }
.stat-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 13px; border-radius: 14px; background: #f5f7f3; }
.stat-row span { min-width: 0; color: var(--muted); font-size: 13px; font-weight: 750; overflow-wrap: anywhere; }
.stat-row strong { min-width: 0; font-size: 16px; text-align: right; overflow-wrap: anywhere; }
.stat-row.full-row { grid-template-columns: minmax(0, 1fr); }
.stat-row.full-row strong { font-size: 13px; text-align: left; }
.stat-row.missing { border: 1px solid var(--danger); background: #fff0ef; }
.stat-row.missing span, .stat-row.missing strong { color: var(--danger); }
.stat-detail-section { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.stat-detail-section summary { min-height: 42px; display: flex; align-items: center; justify-content: space-between; font-weight: 850; cursor: pointer; }
.stat-detail-section .stat-row { align-items: flex-start; }
.stat-detail-section .stat-row span { min-width: 0; overflow-wrap: anywhere; }
.stat-detail-section .stat-row strong { white-space: nowrap; }
.daily-history-card { display: grid; gap: 14px; margin-bottom: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: #f9faf8; touch-action: pan-y; }
.daily-history-head { display: grid; grid-template-columns: 44px 1fr 44px; gap: 10px; align-items: center; text-align: center; }
.daily-history-head h3 { margin: 0; font-size: 19px; }
.daily-history-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; font-weight: 800; }
.icon-button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 25px; font-weight: 900; }
.icon-button:disabled { opacity: .35; }
.settlement-dashboard-edit { box-sizing: border-box; width: 100%; min-width: 0; max-width: 116px; height: 36px; border-radius: 10px; font-size: 12px; font-weight: 900; }
.daily-history-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.daily-history-summary div { display: grid; gap: 5px; min-height: 70px; padding: 12px; border-radius: 14px; background: #eff8ed; }
.daily-history-summary span { color: var(--muted); font-size: 11px; font-weight: 850; text-transform: uppercase; }
.daily-history-summary strong { font-size: 24px; line-height: 1; }
.vehicle-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.vehicle-chip-row span { padding: 9px 11px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 850; }
.daily-route-list { display: grid; gap: 8px; }
.daily-route-details { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.daily-route-details summary { list-style: none; cursor: pointer; }
.daily-route-details summary::-webkit-details-marker { display: none; }
.daily-route-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 12px; border-radius: 14px; background: #fff; border: 1px solid var(--line); }
.daily-route-details .daily-route-row { border: 0; border-radius: 0; }
.daily-route-row strong,
.daily-route-row span { display: block; font-size: 14px; font-weight: 900; }
.daily-route-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; }
.daily-route-row > div:last-child { text-align: right; }
.daily-route-status { display: grid; place-items: center; }
.daily-route-story { display: grid; gap: 8px; padding: 0 12px 12px; }
.daily-route-story .stat-row { align-items: flex-start; }
.daily-route-story .stat-row strong { max-width: 100%; text-align: right; }

/* Stack daily route summaries on narrow screens so long shift and vehicle
   details stay inside the card instead of overflowing horizontally. */
@media (max-width: 640px) {
  .daily-history-card,
  .daily-route-details,
  .daily-route-row { min-width: 0; }

  .daily-route-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px;
    align-items: start;
  }

  .daily-route-row > div {
    min-width: 0;
  }

  .daily-route-row > div:last-child {
    display: grid;
    gap: 2px;
    grid-column: 1 / -1;
    justify-items: start;
    text-align: left;
  }

  .daily-route-status {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    justify-items: center;
  }

  .daily-route-row small,
  .daily-route-row strong,
  .daily-route-row span {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

@media (max-width: 520px) {
  .stat-row { grid-template-columns: minmax(0, 1fr); }
  .stat-row strong { text-align: left; }
}
.shift-quality-list { display: grid; gap: 8px; margin: 10px 0; }
.shift-quality-row,
.route-quality-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: #f5f7f3; }
.route-quality-head { grid-template-columns: minmax(0, 1fr); }
.shift-quality-row strong,
.route-quality-head strong { display: block; font-size: 13px; font-weight: 900; }
.shift-quality-row small,
.route-quality-head small { display: block; color: var(--muted); font-size: 11px; font-weight: 750; margin-top: 2px; }
.shift-quality-row > span:last-child { color: var(--muted); font-size: 12px; font-weight: 900; }
.route-status-badge { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 999px; color: #fff; font-weight: 950; line-height: 1; }
.daily-route-row .route-status-badge { display: grid; width: 34px; height: 34px; box-sizing: border-box; font-size: 16px; }
.route-status-badge.ok { background: var(--green); }
.route-status-badge.bad { background: var(--danger); font-size: 12px; }
.quality-summary-card { display: grid; gap: 13px; margin-bottom: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 20px #3141340a; }
.quality-summary-card.ok { border-color: #b8d5b4; background: #eff8ed; }
.quality-summary-card.warn { border-color: #f0c7c5; background: #fff8f7; }
.quality-summary-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 11px; align-items: center; }
.quality-summary-head h3 { margin: 0; font-size: 17px; letter-spacing: 0; }
.quality-summary-head p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.4; font-weight: 750; }
.quality-bars { display: grid; gap: 10px; }
.quality-item { display: grid; gap: 8px; }
.quality-reclamation-trigger { justify-self: start; padding: 7px 12px; font-size: 12px; }
.quality-reclamation-list { display: grid; gap: 6px; }
.daily-quality-exception { border: 1px solid #e8b8b4; background: #fff7f6; }
.daily-history-card.quality-problem-day { border-color: #e8b8b4; box-shadow: 0 0 0 2px #f3c9c5; }
.quality-bar-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(96px, 1fr) auto; gap: 10px; align-items: center; width: 100%; padding: 8px; border: 0; border-radius: 12px; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.quality-bar-row.active { background: #ffffffa8; box-shadow: inset 0 0 0 1px #e1b5b1; }
.quality-bar-row strong { display: block; font-size: 12px; font-weight: 900; overflow-wrap: anywhere; }
.quality-bar-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 750; line-height: 1.3; }
.quality-bar-row b { min-width: 28px; text-align: right; font-size: 16px; }
.quality-bar-track { height: 10px; overflow: hidden; border-radius: 999px; background: #e9ede7; }
.quality-bar-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #d99a28, var(--danger)); }
.quality-summary-card.ok .quality-bar-track span { background: var(--green); }
.quality-detail-list { display: grid; gap: 8px; padding: 12px; border-radius: 14px; background: #fff; border: 1px solid var(--line); }
.quality-detail-list h4 { margin: 0; font-size: 13px; letter-spacing: 0; }
.quality-detail-list p { margin: 0; color: var(--muted); font-size: 12px; font-weight: 750; }
.quality-detail-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; align-items: baseline; padding: 8px 0; border-top: 1px solid var(--line); }
.quality-detail-row:first-of-type { border-top: 0; }
.quality-detail-row strong { font-size: 12px; }
.quality-detail-row span { font-size: 12px; font-weight: 900; overflow-wrap: anywhere; }
.quality-detail-row small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; font-weight: 750; }
.quality-reclamation-list .stat-row small { display: block; margin-top: 4px; color: var(--muted); }
.quality-detail-row .quality-reclamation-trigger { grid-column: 1 / -1; justify-self: end; padding: 6px 10px; border-radius: 999px; font-size: 11px; }
.route-note-form { display: grid; gap: 8px; padding-top: 6px; }
.route-note-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 850; }
.route-note-form textarea { min-height: 76px; border-radius: 12px; }
.route-note-form button { min-height: 42px; }
.route-story-text { margin: 2px 0 0; padding: 12px; border-radius: 12px; background: #eff8ed; color: var(--ink); font-size: 12px; line-height: 1.45; font-weight: 750; }
.route-story-card { display: grid; gap: 14px; margin-top: 8px; padding: 14px; border: 1px solid #b8d5b4; border-radius: 16px; background: #fbfdf9; }
.route-story-card-head { display: grid; gap: 3px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.route-story-card-head span { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-story-card-head strong { font-size: 17px; }
.route-story-card section { display: grid; gap: 7px; }
.route-story-card h4 { margin: 0; color: var(--green-dark); font-size: 13px; }
.route-story-card p { margin: 0; color: var(--ink); font-size: 12px; line-height: 1.5; }
.route-story-card p strong { font-weight: 900; }
.route-leg-list { display: grid; gap: 7px; padding-top: 4px; }
.route-leg-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; padding: 10px 12px; border-radius: 12px; background: #f5f7f3; }
.route-leg-row span { min-width: 0; color: var(--green-dark); font-size: 12px; font-weight: 900; overflow-wrap: anywhere; }
.route-leg-row strong { font-size: 13px; white-space: nowrap; }
.route-leg-row small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; font-weight: 750; overflow-wrap: anywhere; }
.route-details-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-bottom: 14px; }
.route-details-head span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-details-head strong { display: block; margin-top: 3px; font-size: 19px; overflow-wrap: anywhere; }
.route-details-head small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 800; }
.route-details-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.route-report-dialog { width: min(94vw, 720px); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 24px; background: transparent; }
.route-report-dialog::backdrop { background: rgba(23, 35, 28, .48); backdrop-filter: blur(2px); }
.route-report-dialog-card { display: grid; gap: 14px; max-height: calc(100dvh - 24px); overflow: auto; padding: 18px; border: 1px solid #cbd8c6; border-radius: 24px; background: var(--surface); box-shadow: 0 24px 70px #08100a42; }
.route-report-dialog-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.route-report-dialog-head span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-report-dialog-head strong { display: block; margin-top: 4px; font-size: 22px; overflow-wrap: anywhere; }
.route-report-dialog-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 750; }
.route-report-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdf9; }
.route-report-step > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: var(--green-dark); color: #fff; font-weight: 950; }
.route-report-step strong { display: block; margin-bottom: 8px; font-size: 15px; }
.route-report-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.route-report-checkbox { margin-top: 9px; }
.route-report-field-builder { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.route-report-field-builder section { display: grid; gap: 7px; min-width: 0; }
.route-report-field-builder small { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-report-dropzone { display: flex; flex-wrap: wrap; align-content: flex-start; gap: 8px; min-height: 120px; padding: 10px; border: 1px dashed #b8d5b4; border-radius: 16px; background: #f8faf6; }
.route-report-dropzone.active { background: #eff8ed; }
.route-report-dropzone p { margin: 0; font-size: 12px; }
.route-report-field-chip { display: grid; gap: 2px; min-height: 48px; padding: 8px 10px; border: 1px solid #cbd8c6; border-radius: 14px; background: #fff; color: var(--ink); text-align: left; cursor: grab; }
.route-report-field-chip:active { cursor: grabbing; }
.route-report-field-chip strong { margin: 0; font-size: 12px; }
.route-report-field-chip small { color: var(--muted); font-size: 10px; text-transform: none; }
.route-report-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; position: sticky; bottom: 0; padding-top: 4px; background: linear-gradient(180deg, rgba(248, 250, 246, 0), var(--surface) 32%); }
.route-report-filters { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; align-items: end; }
.route-report-filters .month-picker { min-width: 0; }
.route-report-filters button { min-height: 44px; }
.route-details-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 14px; }
.route-report-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 14px; align-items: start; }
.route-report-list { min-width: 0; display: grid; gap: 10px; }
.route-report-list-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.route-report-list-head span { display: block; color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-report-list-head strong { display: block; margin-top: 2px; font-size: 16px; }
.route-report-list-head small { color: var(--muted); font-size: 12px; font-weight: 800; text-align: right; }
.route-report-side { margin-top: 0; align-self: start; }
.route-details-table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.route-details-table { width: 100%; min-width: 1500px; border-collapse: collapse; font-size: 12px; }
.route-details-table th,
.route-details-table td { padding: 11px 10px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.route-details-table th { background: #17231c; color: #fff; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.route-details-table tbody tr { cursor: pointer; }
.route-details-table tbody tr:hover,
.route-details-table tbody tr.active { background: #eff8ed; }
.route-details-table tbody tr.active td:first-child { box-shadow: inset 4px 0 0 var(--green-dark); }
.route-details-export-all { display: grid; place-items: center; min-height: 44px; margin-top: 14px; text-align: center; }
.route-stat-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.route-stat-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.route-stat-chart { display: grid; gap: 10px; align-content: start; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #fbfdf9; }
.route-stat-chart h4 { margin: 0; color: var(--green-dark); font-size: 13px; font-weight: 950; }
.route-stat-chart p { margin: 0; color: var(--muted); font-size: 12px; font-weight: 750; }
.route-stat-bar-row { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(110px, 1.4fr) auto; gap: 10px; align-items: center; }
.route-stat-bar-row strong { display: block; min-width: 0; font-size: 12px; font-weight: 900; overflow-wrap: anywhere; }
.route-stat-bar-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; font-weight: 750; }
.route-stat-bar-row b { min-width: 32px; text-align: right; font-size: 15px; }
.route-stat-bar-track { height: 11px; overflow: hidden; border-radius: 999px; background: #e9ede7; }
.route-stat-bar-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green-dark), var(--green)); }
.route-stat-table-wrap { margin-top: 14px; }
.route-stat-table { min-width: 900px; }
.route-shift-report-table { min-width: 1180px; }
.route-shift-report-table td small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 800; }
.route-shift-source-table { min-width: 1080px; }
.route-shift-source-table td small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 800; }
.route-shift-daily { margin-top: 14px; }
.bottom-nav { position: fixed; z-index: 10; right: 0; bottom: 0; left: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(82px, 1fr); overflow-x: auto; padding: 9px 8px calc(9px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: #fffffff2; backdrop-filter: blur(18px); }
.bottom-nav button { display: grid; gap: 3px; place-items: center; min-width: 0; border: 0; background: transparent; color: #8a938c; font-size: 10px; font-weight: 700; }
.bottom-nav button span { font-size: 20px; }
.bottom-nav button.active { color: var(--green-dark); }
.adjustment-entry { display: grid; gap: 8px; margin-top: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.adjustment-entry-head { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.adjustment-amount { font-weight: 900; white-space: nowrap; }
.adjustment-amount.bonus { color: #23823a; }
.adjustment-amount.malus { color: var(--danger); }
.device-history { display: grid; gap: 10px; margin-top: 16px; }
.device-history-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; }
.device-history-head strong { color: var(--ink); font-size: 14px; }
.device-report { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #f8faf6; }
.device-report strong { display: block; font-size: 15px; }
.device-report small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; }
.device-report p { margin: 0; color: var(--ink); font-size: 13px; line-height: 1.45; }
.device-report-meta { display: flex; gap: 8px; color: var(--muted); font-size: 11px; font-weight: 800; }
.device-photo-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.device-photo-list a { display: grid; gap: 6px; padding: 7px; border-radius: 12px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 850; text-decoration: none; }
.device-photo-list img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 9px; background: #0d1510; }
.device-photo-list span { overflow-wrap: anywhere; }
.vehicle-damage-help { align-self: end; padding: 12px 14px; border-radius: 14px; background: #eff8ed; color: var(--green-dark); font-size: 12px; font-weight: 850; line-height: 1.35; }
.vehicle-damage-fields { display: grid; gap: 10px; }
.vehicle-damage-row { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #f8faf6; }
.vehicle-damage-row strong { font-size: 13px; }
.vehicle-checklist { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: #f8faf6; }
.vehicle-checklist legend { padding: 0 6px; color: var(--green-dark); font-size: 12px; font-weight: 900; }
.vehicle-checklist label { margin: 0; }
.vehicle-assignment-list { display: grid; gap: 10px; margin-top: 14px; }
.vehicle-header-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.vehicle-dashboard-card { display: grid; gap: 14px; }
.vehicle-filter-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .38fr); gap: 12px; align-items: end; }
.vehicle-warehouse-tabs, .vehicle-view-tabs { display: flex; flex-wrap: wrap; gap: 7px; }
.vehicle-warehouse-tabs button, .vehicle-view-tabs button { min-height: 42px; padding: 0 15px; border: 1px solid #cbd8c6; border-radius: 13px; background: #fff; color: var(--ink); font-weight: 850; }
.vehicle-warehouse-tabs button.active, .vehicle-view-tabs button.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.vehicle-view-tabs { padding: 5px; border: 1px solid var(--line); border-radius: 16px; background: #f6faf3; }
.vehicle-view-tabs button { flex: 1 1 150px; border-color: transparent; background: transparent; }
.vehicle-view-tabs button.active { background: var(--green-dark); }
.vehicle-date-picker { min-width: 0; }
.vehicle-assignment-search { display: grid; gap: 6px; }
.vehicle-assignment-search span { color: var(--muted); font-size: 12px; font-weight: 900; }
.vehicle-assignment-search input { width: 100%; min-height: 44px; padding: 0 14px; border: 1px solid var(--line); border-radius: 14px; background: #f8faf6; color: var(--ink); font: inherit; font-weight: 850; }
.vehicle-assignment-results { display: grid; gap: 10px; }
.vehicle-assignment-row { display: grid; grid-template-columns: minmax(82px, .7fr) minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #f8faf6; }
.vehicle-assignment-row strong { display: block; font-size: 14px; font-weight: 950; overflow-wrap: anywhere; }
.vehicle-assignment-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; }
.vehicle-assignment-row > span { justify-self: end; max-width: 90px; color: var(--green-dark); font-size: 11px; font-weight: 900; text-align: right; overflow-wrap: anywhere; }
.vehicle-assignment-card { grid-template-columns: minmax(72px, .55fr) minmax(0, 1.2fr) minmax(70px, .55fr) auto; }
.vehicle-assignment-card > div { min-width: 0; }
.vehicle-row-label, .vehicle-free-row span, .vehicle-detail-summary span { display: block; color: var(--green-dark); font-size: 10px; font-weight: 950; text-transform: uppercase; }
.vehicle-assignment-card strong { font-size: 16px; }
.vehicle-assignment-actions { display: grid; justify-items: end; gap: 7px; }
.vehicle-status-pill { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 0 10px; border-radius: 999px; background: #e2f2df; color: var(--green-dark); font-size: 11px; font-weight: 950; white-space: nowrap; }
.vehicle-status-pill.history { background: #edf1eb; color: var(--muted); }
.vehicle-status-pill.free { background: #e1efff; color: #195da9; }
.vehicle-detail-button { min-height: 38px; padding: 0 12px; border-radius: 11px; }
.vehicle-free-panel { display: grid; gap: 12px; }
.vehicle-free-list { display: grid; gap: 9px; }
.vehicle-free-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(100px, .7fr) auto auto; gap: 10px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: #f8faf6; }
.vehicle-free-row > div { min-width: 0; }
.vehicle-free-row strong { display: block; margin-top: 4px; font-size: 15px; overflow-wrap: anywhere; }
.vehicle-free-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; overflow-wrap: anywhere; }
.vehicle-detail-dialog { width: min(94vw, 640px); max-height: calc(100dvh - 24px); overflow: visible; }
.vehicle-detail-dialog-card { max-height: calc(100dvh - 24px); overflow: auto; }
.vehicle-detail-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.vehicle-detail-summary > div, .vehicle-detail-section { display: grid; gap: 4px; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: #f8faf6; }
.vehicle-detail-summary strong { display: block; margin-top: 4px; font-size: 15px; overflow-wrap: anywhere; }
.vehicle-detail-actions { display: grid; gap: 8px; }
.vehicle-detail-section { margin-top: 10px; }
.vehicle-dialog-section-head { display: flex; justify-content: space-between; gap: 10px; align-items: start; }
.vehicle-dialog-section-head span { display: block; color: var(--green-dark); font-size: 10px; font-weight: 950; }
.vehicle-dialog-section-head strong { display: block; margin-top: 4px; font-size: 15px; }
.vehicle-dialog-section-head small { color: var(--muted); font-size: 11px; font-weight: 800; text-align: right; }
.vehicle-detail-log { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 5px 10px; padding-top: 5px; }
.vehicle-detail-log span { color: var(--muted); font-size: 12px; font-weight: 800; }
.vehicle-detail-log strong { font-size: 13px; overflow-wrap: anywhere; }
.vehicle-detail-note { color: var(--muted); font-size: 12px; font-weight: 750; line-height: 1.4; }
.vehicle-condition-dialog-section { padding-top: 12px; border-top: 1px solid var(--line); }
.vehicle-last-usage { display: grid; gap: 3px; padding: 14px; border: 1px solid #b8d5b4; border-radius: 15px; background: #eff8ed; }
.vehicle-last-usage span { color: var(--green-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.vehicle-last-usage strong { font-size: 17px; font-weight: 950; }
.vehicle-last-usage small { color: var(--muted); font-size: 12px; font-weight: 750; }
.vehicle-config-active { align-self: end; display: flex; min-height: 46px; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: #f8faf6; font-weight: 900; }
.vehicle-config-active input { width: auto; }
.vehicle-config-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.vehicle-config-summary-card { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #f8faf6; }
.vehicle-config-summary-card small { display: block; color: var(--muted); font-size: 10px; font-weight: 950; letter-spacing: .04em; }
.vehicle-config-summary-card strong { display: block; margin-top: 6px; color: var(--ink); font-size: 24px; font-weight: 950; }
.vehicle-config-toolbar { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(150px, .7fr) minmax(170px, .8fr); gap: 10px; margin: 14px 0; }
.vehicle-config-list { display: grid; gap: 10px; margin-top: 14px; }
.vehicle-config-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) minmax(88px, auto); gap: 10px; width: 100%; min-width: 0; box-sizing: border-box; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #f8faf6; }
.vehicle-config-row > * { min-width: 0; }
.vehicle-config-row strong { display: block; min-width: 0; font-size: 14px; font-weight: 950; overflow-wrap: anywhere; word-break: break-word; }
.vehicle-config-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
.vehicle-config-row button { width: 100%; min-width: 0; min-height: 38px; padding-inline: 10px; white-space: normal; }
.ai-comparison { display: grid; gap: 5px; padding: 10px; border: 1px solid #cddbc7; border-radius: 12px; background: #eff8ed; }
.ai-comparison.possible_new_damage, .ai-comparison.failed { border-color: #e2aaa5; background: #fff0ef; }
.ai-comparison strong { font-size: 12px; }
.ai-comparison p { margin: 0; color: var(--ink); font-size: 12px; line-height: 1.45; }

@media (min-width: 760px) {
  .workflow-header { grid-template-columns: 1fr auto; }
  .process-form.two-column { grid-template-columns: 1fr 1fr; }
  .vehicle-checklist { grid-template-columns: 1fr 1fr; }
  .bottom-nav { right: calc((100vw - 760px) / 2); left: calc((100vw - 760px) / 2); border-right: 1px solid var(--line); border-left: 1px solid var(--line); }
}

@media (max-width: 430px) {
  .admin-stat-donut-grid,
  .financial-stat-kpi-grid,
  .financial-stat-grid { grid-template-columns: 1fr; }
  .admin-stat-type-row { grid-template-columns: 88px minmax(0, 1fr) auto; }
  .vehicle-filter-row { grid-template-columns: 1fr; }
  .vehicle-header-actions { align-items: stretch; }
  .vehicle-header-actions button { flex: 1 1 150px; }
  .vehicle-warehouse-tabs button { flex: 1 1 80px; }
  .vehicle-view-tabs { display: grid; grid-template-columns: 1fr; }
  .vehicle-view-tabs button { width: 100%; }
  .vehicle-assignment-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .vehicle-assignment-actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; justify-items: stretch; }
  .vehicle-free-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .vehicle-free-row .vehicle-status-pill { justify-self: start; }
  .vehicle-free-row button { width: 100%; }
  .vehicle-detail-summary { grid-template-columns: 1fr; }
  .route-planner-head,
  .route-planner-insights,
  .route-planner-actions { grid-template-columns: 1fr; }
  .route-action-row { grid-template-columns: 1fr; }
  .route-live-card { grid-template-columns: 1fr; }
  .route-next-card { padding-right: 16px; padding-top: 58px; }
  .route-next-number { right: auto; left: 14px; }
  .route-planner-map { height: 220px; }
  .route-planner-stop { grid-template-columns: 34px minmax(0, 1fr); }
  .route-planner-stop em { grid-column: 2; text-align: left; }
  .game-summary { grid-template-columns: 1fr; }
  .word-list { grid-template-columns: 1fr; }
  .word-search-grid { gap: 3px; }
  .word-search-grid span { border-radius: 6px; font-size: 11px; }
  .leader-row { grid-template-columns: 30px minmax(0, 1fr); }
  .leader-row small { grid-column: 2; text-align: left; }
  .ops-summary, .ops-route-row, .ops-detail-grid, .ops-worker-foot, .worker-attendance-controls { grid-template-columns: 1fr; }
  .worker-attendance-actions { justify-content: stretch; }
  .worker-attendance-actions button { flex: 1 1 120px; }
  .ops-card-head { display: grid; }
  .ops-card-head > span { justify-self: start; max-width: none; text-align: left; }
  .worker-shift-dialog { width: calc(100vw - 24px); }
  .worker-shift-row { grid-template-columns: 1fr; }
  .worker-shift-status { justify-content: flex-start; max-width: none; }
  .departure-main { grid-template-columns: 1fr; }
  .departure-group-head { align-items: flex-start; }
  .schedule-day-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .schedule-slot-grid { grid-template-columns: 1fr; }
  .schedule-slot-card > summary { grid-template-columns: minmax(0, 1fr); }
  .schedule-slot-status-stack { justify-self: start; }
  .schedule-slot-card em { justify-self: start; white-space: normal; }
  .schedule-slot-detail-grid { grid-template-columns: 1fr; }
  .schedule-slot-action-row { grid-template-columns: 1fr; }
  .schedule-vehicle-dialog { width: calc(100vw - 16px); }
  .schedule-vehicle-toolbar { justify-content: stretch; }
  .schedule-vehicle-toolbar label { width: 100%; }
  .schedule-vehicle-row { grid-template-columns: 1fr; }
  .schedule-recommendation { grid-template-columns: 1fr; }
  .schedule-rec-foot { justify-items: start; text-align: left; }
  .settlement-dashboard-hero { grid-template-columns: 1fr; }
  .settlement-dashboard-hero strong { font-size: 24px; }
  .settlement-dashboard-row { grid-template-columns: minmax(0, 1fr); }
  .settlement-dashboard-row-main { grid-template-columns: 1fr; }
  .settlement-dashboard-row-main > strong { text-align: left; }
  .settlement-dashboard-edit { width: 100%; max-width: none; justify-self: stretch; }
  .settlement-dashboard-editor-row { grid-template-columns: minmax(0, 1fr) 34px; }
  .settlement-dashboard-editor-row input[data-editor-field="amountHuf"], .settlement-dashboard-editor-row select, .settlement-dashboard-editor-row input[data-editor-field="note"] { grid-column: 1; }
  .settlement-dashboard-editor-delete { grid-column: 2; grid-row: 1 / span 4; }
  .settlement-import-stepper { grid-template-columns: 1fr; }
  .settlement-import-actions { display: grid; }
  .settlement-import-header-title { display: grid; }
  .settlement-import-header-title small { text-align: left; }
  .settlement-import-route-checks, .settlement-import-sample-grid, .settlement-import-reconciliation-stats { grid-template-columns: 1fr; }
  .tig-row { grid-template-columns: minmax(0, 1fr) 1fr; }
  .tig-party-grid { grid-template-columns: 1fr; }
  .tig-row.head { display: none; }
  .tig-row span:first-child { grid-column: 1 / -1; }
  .tig-row span:nth-child(2)::before { content: "Netto: "; color: var(--muted); font-weight: 750; }
  .tig-row span:nth-child(3)::before { content: "AFA: "; color: var(--muted); font-weight: 750; }
  .tig-row span:nth-child(4)::before { content: "Brutto: "; color: var(--muted); font-weight: 750; }
  .vehicle-assignment-row { grid-template-columns: minmax(0, 1fr); }
  .vehicle-assignment-row > span { justify-self: start; max-width: none; text-align: left; }
  .vehicle-config-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vehicle-config-toolbar { grid-template-columns: 1fr; }
  .vehicle-config-row { grid-template-columns: minmax(0, 1fr); }
  .vehicle-config-row button { width: 100%; }
  .route-report-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 20px; }
  .route-report-dialog-card { max-height: calc(100dvh - 16px); padding: 14px; border-radius: 20px; }
  .route-report-form-grid,
  .route-report-field-builder,
  .route-report-dialog-actions { grid-template-columns: 1fr; }
  .route-report-step { grid-template-columns: 1fr; }
  .route-report-step > span { width: 32px; height: 32px; }
  .route-report-dropzone { min-height: 92px; }
  .route-details-head { grid-template-columns: 1fr; }
  .route-details-actions { justify-content: stretch; }
  .route-details-actions .download-link { width: 100%; }
  .route-report-filters { grid-template-columns: 1fr; }
  .route-report-filters button { width: 100%; }
  .route-details-kpis { grid-template-columns: 1fr; }
  .route-report-workspace { grid-template-columns: 1fr; }
  .route-report-list-head { display: grid; }
  .route-report-list-head small { text-align: left; }
  .route-report-side { order: -1; }
  .route-stat-kpis,
  .route-stat-chart-grid { grid-template-columns: 1fr; }
  .route-stat-bar-row { grid-template-columns: minmax(0, 1fr); }
  .route-stat-bar-row b { text-align: left; }
}

#worker-info-dialog { max-height: calc(100dvh - 24px); overflow: hidden; }
#worker-info-dialog .worker-shift-dialog-card { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); overflow: hidden; }
#worker-info-dialog .worker-shift-dialog-head { flex: 0 0 auto; }
#worker-info-dialog [data-worker-info-body] { min-height: 0; max-height: none; overflow-y: auto; overscroll-behavior: contain; grid-auto-rows: max-content; align-content: start; -webkit-overflow-scrolling: touch; }
#worker-info-dialog [data-worker-info-body] > * { min-height: min-content; }
.capacity-five-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.capacity-day { padding: 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; min-width: 0; }
.capacity-day header { display: grid; gap: 5px; margin-bottom: 16px; }
.capacity-day header strong { font-size: 20px; }
.capacity-day header small, .capacity-source-date { color: var(--muted); font-size: 11px; }
.capacity-warehouse { display: grid; width: 100%; gap: 10px; padding: 12px; margin: 10px 0; text-align: left; border: 1px solid var(--line); border-radius: 16px; background: #f6f9f3; font-size: 12px; font-weight: 500; }
.capacity-warehouse-heading { display: flex; justify-content: space-between; align-items: center; gap: 6px; }
.capacity-warehouse-heading strong { color: var(--green-dark); font-size: 22px; }
.capacity-meter { display: block; height: 8px; overflow: hidden; border-radius: 99px; background: #e1e8dc; }
.capacity-meter i { display: block; height: 100%; background: var(--green-dark); border-radius: inherit; }
.capacity-free b { font-size: 20px; color: var(--green-dark); }
.capacity-details { font-size: 11px; color: var(--green-dark); }
.capacity-source-date { display: block; overflow-wrap: anywhere; margin-top: 10px; }
@media (max-width: 1100px) { .capacity-five-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .capacity-five-grid { grid-template-columns: 1fr; } }
.schedule-bulk-panel { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); margin: 16px 0; }
.schedule-bulk-panel > label { display: grid; gap: 8px; color: var(--green-dark); font-weight: 800; }
.schedule-bulk-panel small { display: block; overflow-wrap: anywhere; }
.schedule-bulk-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.schedule-bulk-buttons button { min-height: 44px; }
.schedule-bulk-list { display: grid; gap: 8px; max-height: 300px; overflow-y: auto; }
.schedule-bulk-list > div { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.schedule-selection-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; font-weight: 800; color: var(--danger); }
.schedule-selection-check input { width: 22px; height: 22px; accent-color: var(--danger); }
.schedule-hub-refresh { margin-top: 20px; }
.schedule-hub-refresh p { margin-top: 10px; font-size: 13px; overflow-wrap: anywhere; }
.invoice-raw-saved { display: grid; gap: 12px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.invoice-raw-saved > button { justify-self: start; }
.invoice-raw-table-wrap { width: 100%; overflow-x: auto; }
.invoice-raw-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.invoice-raw-table th, .invoice-raw-table td { padding: 12px 9px; border-bottom: 1px solid var(--line); text-align: left; overflow-wrap: anywhere; }
.invoice-raw-table th { color: var(--green-dark); }
.invoice-raw-status { display: inline-block; border-radius: 20px; padding: 6px 10px; background: #e5f0df; color: var(--green-dark); font-weight: 800; white-space: nowrap; }
.invoice-raw-queue { display: grid; gap: 9px; }
.invoice-raw-queue > div { padding: 12px; background: #f5f8f2; border: 1px solid var(--line); border-radius: 14px; overflow-wrap: anywhere; }
.invoice-raw-queue span { display: block; margin-top: 4px; color: var(--muted); }
@media (max-width: 640px) {
  .invoice-raw-table, .invoice-raw-table tbody, .invoice-raw-table tr { display: block; width: 100%; }
  .invoice-raw-table thead { display: none; }
  .invoice-raw-table tr { border: 1px solid var(--line); border-radius: 16px; margin: 10px 0; padding: 8px; }
  .invoice-raw-table td { display: grid; grid-template-columns: minmax(100px, 0.8fr) minmax(0, 1.2fr); gap: 8px; }
  .invoice-raw-table td::before { content: attr(data-label); color: var(--green-dark); font-weight: 700; }
  .invoice-raw-table td:last-child { border-bottom: 0; }
}
[data-schedule-bulk-job-message]:empty { display: none; }
[id="coordinator-hub-refresh-status"] { min-height: 4.5em; }
.quality-reclamation-dialog .dialog-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 12px; margin-top: 16px; }
.quality-reclamation-dialog .dialog-actions button { min-height: 52px; padding: 12px 18px; border-radius: 16px; font: inherit; font-weight: 800; }
.quality-submission-dialog { padding: 0; border: 0; border-radius: 24px; max-width: calc(100vw - 32px); color: var(--ink); background: var(--surface); }
.quality-submission-dialog::backdrop { background: #17231c88; backdrop-filter: blur(4px); }
.quality-submission-dialog .global-loading-card { width: min(420px, calc(100vw - 32px)); max-width: 100%; box-sizing: border-box; }
.quality-submission-dialog p { margin: 4px 0; line-height: 1.5; overflow-wrap: anywhere; }
.quality-submission-dialog button { width: 100%; padding: 12px 18px; }
.quality-submission-dialog[data-phase="success"] strong, .quality-submit-success { color: var(--green-dark); }
.quality-submission-dialog[data-phase="error"] strong { color: var(--danger); }
@media (max-width: 560px) { .quality-reclamation-dialog .dialog-actions { grid-template-columns: 1fr; } }

.gate-panel { padding: clamp(20px, 4vw, 36px); border: 1px solid var(--line); border-radius: 28px; background: var(--surface); }
.gate-panel h2 { margin: 10px 0; }
.gate-panel [data-gate-open] { margin-top: 18px; min-height: 64px; width: min(100%, 420px); }
.gate-feedback { line-height: 1.6; overflow-wrap: anywhere; }
.gate-feedback.success { color: var(--green-dark); }
.gate-feedback.error { color: var(--danger); }
.gate-dialog { padding: 0; border: 0; border-radius: 24px; max-width: calc(100vw - 32px); color: var(--ink); }
.gate-dialog::backdrop { background: rgba(23,35,28,.3); backdrop-filter: blur(3px); }
.gate-dialog .global-loading-card { box-sizing: border-box; width: min(400px, calc(100vw - 32px)); }
.gate-dialog h3, .gate-dialog p { margin: 0; text-align: center; }
.gate-dialog [hidden] { display: none; }

.invoice-raw-table tr.invoice-selected td { background: #eef7e9; }
.invoice-raw-table tr.invoice-primary { outline: 2px solid var(--green-dark); outline-offset: -2px; }
.invoice-raw-table input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--green-dark); cursor: pointer; }
.invoice-raw-table [data-invoice-row] { cursor: pointer; }
.invoice-primary-button { display: block; margin-top: 8px; padding: 7px 10px; font-size: 12px; }
.invoice-source-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr)); gap: 12px; margin: 20px 0; }
.invoice-source { display: grid; gap: 8px; padding: 18px; text-align: left; overflow-wrap: anywhere; min-width: 0; }
.invoice-source small, .invoice-source span { font-size: 12px; }
.invoice-source.invoice-primary { background: #eef7e9; border: 2px solid var(--green-dark); }
.invoice-diff-file, .invoice-diff-details { margin-top: 26px; }
.invoice-raw-panel { min-width: 0; grid-template-columns: minmax(0,1fr); }
.invoice-raw-panel > *, .invoice-diff-details > *, .invoice-diff-file > * { min-width: 0; }
.invoice-diff-table, .invoice-cell-diff { width: 100%; border-collapse: collapse; font-size: 13px; }
.invoice-diff-table th, .invoice-diff-table td, .invoice-cell-diff th, .invoice-cell-diff td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.invoice-diff-table { min-width: 650px; }
.invoice-cell-diff { table-layout: fixed; min-width: 480px; }
.invoice-diff-row { margin-top: 16px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; }
.invoice-diff-row.added { border-left: 4px solid var(--green-dark); }
.invoice-diff-row.removed { border-left: 4px solid var(--danger); }
.invoice-before { background: #fff1ef; white-space: pre-wrap; }
.invoice-after { background: #eef7e9; white-space: pre-wrap; }
.invoice-confirm-dialog { box-sizing: border-box; width: min(560px,calc(100vw - 32px)); max-height: 85dvh; overflow-y: auto; padding: 24px; border: 2px solid var(--danger); border-radius: 24px; color: var(--ink); }
.invoice-confirm-dialog h3 { color: var(--danger); }
.invoice-confirm-dialog p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; }
.invoice-confirm-dialog::backdrop { background: #17231c88; backdrop-filter: blur(3px); }
.invoice-work-info, .invoice-preview-row { margin: 16px 0; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; overflow-wrap: anywhere; }
.invoice-preview-row dl { margin: 12px 0 0; font-size: 13px; }
.invoice-preview-row dl > div { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.invoice-preview-row dt { color: var(--green-dark); font-weight: 800; }
.invoice-preview-row dd { margin: 0; white-space: pre-wrap; }
@media(max-width:560px) { .invoice-confirm-dialog .settlement-import-actions { display: grid; grid-template-columns: 1fr; } }

.invoice-raw-panel .settlement-import-actions button { white-space: normal; overflow-wrap: anywhere; }
