:root {
  --bg: #080c11;
  --panel: #101720;
  --panel-2: #141d27;
  --line: #253240;
  --text: #e7edf3;
  --muted: #8493a2;
  --primary: #159bd3;
  --primary-2: #087cac;
  --green: #65d67c;
  --amber: #e7b84b;
  --red: #e3655b;
  --vacation: #f2f5f7;
  --waste-business: #b28bff;
  --waste-home: #49c9ed;
  --vehicle: #ff9852;
  --radius: 9px;
  --shadow: 0 16px 42px rgba(0, 0, 0, .22);
}

* { box-sizing: border-box; }
html { min-height: 100%; max-width: 100%; overflow-x: hidden; background: var(--bg); }
body {
  margin: 0;
  min-height: 100vh;
  max-width: 100%;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 80% -10%, rgba(21, 155, 211, .09), transparent 34%),
    var(--bg);
  color: var(--text);
  font: 15px/1.45 "Segoe UI", Arial, sans-serif;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, .button { -webkit-tap-highlight-color: transparent; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; }
.muted { color: var(--muted); }
.text-nowrap { white-space: nowrap; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0, 1fr); }
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 22px 16px;
  background: #0a0f15;
  border-right: 1px solid var(--line);
  z-index: 30;
}
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 22px; }
.brand-mark {
  width: 42px; height: 42px; display: grid; place-items: center;
  background: var(--primary); color: #061017; font-weight: 800; font-size: 22px;
}
.brand strong, .brand small { display: block; }
.brand strong { letter-spacing: .13em; font-size: 17px; }
.brand small { margin-top: 2px; color: var(--muted); font-size: 10px; letter-spacing: .12em; }
.main-nav { min-height:0; flex:1; display:grid; align-content:start; gap:5px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.main-nav a {
  display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 12px;
  color: #9aa8b5; border-left: 3px solid transparent; border-radius: 0 7px 7px 0;
}
.main-nav a:hover { color: var(--text); background: rgba(255,255,255,.035); }
.main-nav a.active { color: #eaf7fc; background: rgba(21,155,211,.12); border-left-color: var(--primary); }
.nav-count { min-width:22px; height:22px; margin-left:auto; padding:0 6px; display:inline-grid; place-items:center; border-radius:99px; background:var(--red); color:#fff; font-size:10px; font-style:normal; font-weight:800; box-shadow:0 0 0 3px rgba(227,101,91,.12); }
.sidebar-user {
  margin-top: auto; padding: 14px 6px 0; border-top: 1px solid var(--line);
  display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: center;
}
.avatar { width: 34px; height: 34px; border: 1px solid var(--primary); display: grid; place-items: center; color: var(--primary); }
.user-copy { min-width: 0; }
.user-copy strong, .user-copy small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-copy strong { font-size: 13px; }
.user-copy small { color: var(--muted); font-size: 11px; }
.icon-btn { border: 0; background: transparent; color: var(--muted); padding: 8px; display: inline-grid; place-items: center; cursor: pointer; }
.icon-btn:hover { color: var(--text); }
.icon-btn.danger { color:#e98a83; }
.icon-btn.danger:hover { color:#ffb0aa; background:rgba(227,101,91,.08); }

.main-area { min-width: 0; }
.topbar {
  min-height: 82px; display: flex; align-items: center; gap: 14px;
  padding: 16px clamp(18px, 3vw, 38px); border-bottom: 1px solid var(--line);
  background: rgba(8,12,17,.88); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px);
}
.page-heading { min-width: 0; margin-right: auto; }
.page-heading span { color: var(--muted); font-size: 10px; letter-spacing: .15em; }
.page-heading h1 { margin: 2px 0 0; font-size: clamp(20px, 2.4vw, 29px); line-height: 1.1; letter-spacing: .02em; }
.mobile-menu { display: none; }
.hazard-line {
  height: 5px; margin: 0 clamp(18px,3vw,38px);
  background: repeating-linear-gradient(135deg, var(--primary) 0 12px, #17222c 12px 24px);
  opacity: .55;
}
.content { width: min(1380px, 100%); min-width: 0; margin: 0 auto; padding: 24px clamp(18px,3vw,38px) 60px; }
.pwa-install-hint { position:fixed; z-index:80; left:50%; bottom:max(16px,env(safe-area-inset-bottom)); transform:translateX(-50%); width:min(520px,calc(100% - 24px)); display:grid; grid-template-columns:48px minmax(0,1fr) 38px; align-items:center; gap:11px; padding:11px; border:1px solid #315064; border-radius:10px; background:rgba(13,21,29,.97); box-shadow:0 20px 55px rgba(0,0,0,.5); }
.pwa-install-hint img { width:48px; height:48px; border-radius:11px; }
.pwa-install-hint strong,.pwa-install-hint small { display:block; }
.pwa-install-hint small { margin-top:3px; color:var(--muted); font-size:11px; }
.pwa-install-hint button { width:38px; height:38px; border:0; background:transparent; color:var(--muted); font-size:25px; cursor:pointer; }

@media (display-mode: standalone) {
  .topbar { padding-top:max(16px,env(safe-area-inset-top)); }
  .content { padding-bottom:max(60px,env(safe-area-inset-bottom)); }
  .sidebar { padding-bottom:max(22px,env(safe-area-inset-bottom)); }
}

.button {
  min-height: 40px; display: inline-flex; justify-content: center; align-items: center; gap: 8px;
  padding: 8px 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--text);
  background: var(--panel-2); cursor: pointer; font-weight: 600;
}
.button:hover { border-color: #3a4b5b; background: #18232e; }
.button.primary { border-color: var(--primary); background: var(--primary); color: #041018; }
.button.primary:hover { background: #26abe2; }
.button.danger { border-color: rgba(227,101,91,.45); color: #ffaca5; background: rgba(227,101,91,.08); }
.button.small { min-height: 34px; padding: 5px 10px; font-size: 13px; }

.alert { padding: 12px 14px; margin-bottom: 16px; border: 1px solid var(--line); border-left-width: 4px; background: var(--panel); border-radius: 5px; }
.alert-success { border-left-color: var(--green); }
.alert-error { border-left-color: var(--red); }
.alert-info { border-left-color: var(--primary); }

.stats-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.stat-card, .panel {
  background: linear-gradient(155deg, rgba(255,255,255,.015), transparent 45%), var(--panel);
  border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
}
.stat-card { min-height: 112px; padding: 16px; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 13px; align-items: center; }
.stat-icon { width: 40px; height: 40px; display: grid; place-items: center; background: rgba(21,155,211,.11); color: var(--primary); }
.stat-icon.green { color: var(--green); background: rgba(101,214,124,.1); }
.stat-icon.amber { color: var(--amber); background: rgba(231,184,75,.1); }
.stat-icon.red { color: var(--red); background: rgba(227,101,91,.1); }
.stat-copy span, .stat-copy strong, .stat-copy small { display: block; }
.stat-copy span { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.stat-copy strong { margin-top: 3px; font-size: 28px; line-height: 1; font-variant-numeric: tabular-nums; }
.stat-copy small { margin-top: 6px; color: var(--muted); font-size: 11px; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(310px,.7fr); gap: 16px; align-items: start; }
.dashboard-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dashboard-stack { gap: 24px; }
.dashboard-waste-countdown { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:15px; margin-bottom:24px; padding:16px 18px; border-left:4px solid var(--waste-business); transition:border-color .15s ease,background .15s ease; }
.dashboard-waste-countdown:hover { background:linear-gradient(115deg,rgba(178,139,255,.07),transparent 48%),var(--panel); }
.dashboard-waste-countdown.is-home { border-left-color:var(--waste-home); }
.dashboard-waste-countdown.is-home:hover { background:linear-gradient(115deg,rgba(73,201,237,.07),transparent 48%),var(--panel); }
.dashboard-waste-countdown.is-mixed { border-left-color:var(--waste-business); box-shadow:inset 2px 0 0 var(--waste-home),var(--shadow); }
.dashboard-waste-countdown.is-empty { border-left-color:var(--muted); }
.dashboard-waste-icon { width:48px; height:48px; display:grid; place-items:center; color:var(--waste-business); background:rgba(178,139,255,.1); }
.dashboard-waste-countdown.is-home .dashboard-waste-icon { color:var(--waste-home); background:rgba(73,201,237,.1); }
.dashboard-waste-countdown.is-mixed .dashboard-waste-icon { color:var(--waste-home); background:linear-gradient(135deg,rgba(178,139,255,.13),rgba(73,201,237,.13)); }
.dashboard-waste-countdown.is-empty .dashboard-waste-icon { color:var(--muted); background:rgba(132,147,162,.08); }
.dashboard-waste-icon .icon { width:25px; height:25px; }
.dashboard-waste-copy { min-width:0; }
.dashboard-waste-copy small,.dashboard-waste-copy strong,.dashboard-waste-copy span { display:block; }
.dashboard-waste-copy > small { color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.11em; }
.dashboard-waste-copy > strong { margin-top:3px; font-size:22px; line-height:1.2; }
.dashboard-waste-copy > span { margin-top:4px; color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.dashboard-waste-days { min-width:74px; text-align:center; }
.dashboard-waste-days b,.dashboard-waste-days small { display:block; }
.dashboard-waste-days b { color:var(--waste-business); font-size:34px; line-height:1; font-variant-numeric:tabular-nums; }
.dashboard-waste-countdown.is-home .dashboard-waste-days b { color:var(--waste-home); }
.dashboard-waste-countdown.is-mixed .dashboard-waste-days b { color:var(--waste-home); }
.dashboard-waste-countdown.is-empty .dashboard-waste-days b { color:var(--muted); }
.dashboard-waste-days small { margin-top:4px; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.dashboard-vehicle-alerts { margin-bottom:16px; border-left:4px solid var(--vehicle); }
.dashboard-vehicle-alerts .panel-title .icon { color:var(--vehicle); }
.dashboard-vehicle-alert-list { display:grid; gap:8px; padding-top:13px; }
.dashboard-vehicle-alert { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:11px; padding:11px; border:1px solid rgba(255,152,82,.28); border-radius:6px; background:rgba(255,152,82,.055); }
.dashboard-vehicle-alert:hover { border-color:rgba(255,152,82,.5); background:rgba(255,152,82,.085); }
.dashboard-vehicle-alert.is-critical { border-color:rgba(227,101,91,.38); background:rgba(227,101,91,.065); }
.dashboard-vehicle-alert-icon { width:42px; height:42px; display:grid; place-items:center; color:var(--vehicle); background:rgba(255,152,82,.11); }
.dashboard-vehicle-alert.is-critical .dashboard-vehicle-alert-icon { color:var(--red); background:rgba(227,101,91,.11); }
.dashboard-vehicle-alert > span:nth-child(2) { min-width:0; }
.dashboard-vehicle-alert small,.dashboard-vehicle-alert strong,.dashboard-vehicle-alert em { display:block; }
.dashboard-vehicle-alert small { color:var(--vehicle); font-size:10px; font-weight:800; letter-spacing:.1em; }
.dashboard-vehicle-alert.is-critical small { color:var(--red); }
.dashboard-vehicle-alert strong { margin-top:2px; font-size:15px; overflow-wrap:anywhere; }
.dashboard-vehicle-alert em { margin-top:2px; color:var(--muted); font-size:11px; font-style:normal; }
.dashboard-event-list { display: grid; gap: 8px; padding-top: 12px; }
.dashboard-event-list .calendar-job { border-bottom: 1px solid rgba(84,210,126,.25); }
.dashboard-event-list .calendar-service { border-bottom-color: rgba(241,92,92,.32); }
.dashboard-event-list .calendar-inspection { border-bottom-color: rgba(239,190,68,.35); }
.dashboard-event-list > .muted { margin: 3px 0; padding: 13px 0; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.section-heading > div > span { display: block; color: var(--primary); font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.section-heading h2 { margin: 4px 0 0; font-size: 20px; }
.dashboard-days-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; align-items: stretch; }
.dashboard-day { display: flex; min-height: 235px; flex-direction: column; }
.dashboard-day .panel-body { flex: 1; }
.dashboard-day .panel-title { flex-wrap: wrap; }
.dashboard-day-date { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.dashboard-day .job-row { grid-template-columns: 44px 3px minmax(0,1fr); gap: 8px; }
.dashboard-day .job-side { grid-column: 3; justify-items: start; }
.stack { display: grid; gap: 16px; }
.panel { padding: 18px; min-width: 0; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.panel-title { display: flex; align-items: center; gap: 9px; min-width: 0; }
.panel-title h2 { margin: 0; font-size: 16px; letter-spacing: .05em; text-transform: uppercase; }
.panel-title .icon { color: var(--primary); }
.panel-head-actions { display: flex; gap: 8px; align-items: center; }
.panel-body { padding-top: 4px; }

.badge { display: inline-flex; align-items: center; gap: 5px; min-height: 25px; padding: 3px 8px; border-radius: 99px; border: 1px solid var(--line); color: #b7c2cb; background: rgba(255,255,255,.025); font-size: 11px; white-space: nowrap; }
.badge.status-progress { color: #79cdeb; border-color: rgba(21,155,211,.42); background: rgba(21,155,211,.09); }
.badge.status-success { color: #8be09c; border-color: rgba(101,214,124,.38); background: rgba(101,214,124,.08); }
.badge.status-warning { color: #f0c96b; border-color: rgba(231,184,75,.38); background: rgba(231,184,75,.08); }
.badge.status-danger { color: #f18a82; border-color: rgba(227,101,91,.38); background: rgba(227,101,91,.08); }

.job-row { display: grid; grid-template-columns: 62px 4px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.job-row:last-child { border-bottom: 0; }
.job-time { font-weight: 700; font-variant-numeric: tabular-nums; }
.job-track { align-self: stretch; min-height: 52px; background: #2a3642; }
.job-track.status-progress { background: var(--primary); }
.job-track.status-success { background: var(--green); }
.job-track.status-warning { background: var(--amber); }
.job-track.status-danger { background: var(--red); }
.calendar-job { border:1px solid rgba(84,210,126,.25); background:rgba(84,210,126,.055); border-radius:6px; padding:9px; }
.calendar-job .job-track { background:var(--green); }
.calendar-job .badge { color:var(--green); border-color:rgba(84,210,126,.35); }
.calendar-job.calendar-service { border-color:rgba(241,92,92,.32); background:rgba(241,92,92,.065); }
.calendar-job.calendar-service .job-track { background:var(--red); }
.calendar-job.calendar-service .badge { color:var(--red); border-color:rgba(241,92,92,.38); }
.calendar-job.calendar-inspection { border-color:rgba(239,190,68,.35); background:rgba(239,190,68,.07); }
.calendar-job.calendar-inspection .job-track { background:var(--amber); }
.calendar-job.calendar-inspection .badge { color:var(--amber); border-color:rgba(239,190,68,.42); }
.calendar-job.calendar-vacation { border-color:rgba(242,245,247,.38); background:rgba(242,245,247,.08); }
.calendar-job.calendar-vacation .job-track { background:var(--vacation); }
.calendar-job.calendar-vacation .badge { color:var(--vacation); border-color:rgba(242,245,247,.5); }
.calendar-job.calendar-vacation .job-time { font-size:12px; line-height:1.3; }
.calendar-job.calendar-waste-business { border-color:rgba(178,139,255,.38); background:rgba(178,139,255,.075); }
.calendar-job.calendar-waste-business .job-track { background:var(--waste-business); }
.calendar-job.calendar-waste-business .badge { color:var(--waste-business); border-color:rgba(178,139,255,.48); }
.calendar-job.calendar-waste-home { border-color:rgba(73,201,237,.38); background:rgba(73,201,237,.075); }
.calendar-job.calendar-waste-home .job-track { background:var(--waste-home); }
.calendar-job.calendar-waste-home .badge { color:var(--waste-home); border-color:rgba(73,201,237,.48); }
.calendar-job.calendar-waste-business .job-time,.calendar-job.calendar-waste-home .job-time { font-size:12px; line-height:1.3; }
.calendar-job.calendar-vehicle { border-color:rgba(255,152,82,.4); background:rgba(255,152,82,.08); }
.calendar-job.calendar-vehicle .job-track { background:var(--vehicle); }
.calendar-job.calendar-vehicle .badge { color:var(--vehicle); border-color:rgba(255,152,82,.48); }
.calendar-job.calendar-vehicle .job-time { font-size:12px; line-height:1.3; }
.calendar-controls { display:grid; grid-template-columns:auto minmax(280px,1fr) auto; align-items:center; gap:12px; margin-bottom:12px; }
.calendar-view-switch { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.calendar-view-switch a { min-width:112px; min-height:40px; display:flex; align-items:center; justify-content:center; gap:7px; padding:7px 12px; border:1px solid transparent; border-radius:5px; color:var(--muted); font-size:12px; font-weight:700; }
.calendar-view-switch a .icon { width:17px; height:17px; }
.calendar-view-switch a[aria-selected="true"] { color:var(--text); border-color:rgba(21,155,211,.48); background:rgba(21,155,211,.12); }
.calendar-navigation { width:min(500px,100%); justify-self:center; display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:center; gap:8px; }
.calendar-navigation strong { min-width:0; text-align:center; font-size:16px; font-variant-numeric:tabular-nums; }
.calendar-arrow { width:42px; padding:0; font-size:20px; }
.calendar-today { justify-self:end; }
.calendar-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:13px; margin:0 1px 15px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.calendar-legend span { display:flex; align-items:center; gap:5px; }
.calendar-legend i { width:9px; height:9px; border-radius:2px; background:var(--green); }
.calendar-legend i.service { background:var(--red); }
.calendar-legend i.inspection { background:var(--amber); }
.calendar-legend i.vacation { background:var(--vacation); }
.calendar-legend i.waste-business { background:var(--waste-business); }
.calendar-legend i.waste-home { background:var(--waste-home); }
.calendar-legend i.vehicle { background:var(--vehicle); }
.calendar-week-items { display:grid; gap:8px; padding-top:12px; }
.calendar-week-items > .muted { margin:3px 0; padding:10px 0; }
.calendar-today-panel { border-color:rgba(21,155,211,.55); box-shadow:0 0 0 1px rgba(21,155,211,.12),var(--shadow); }
.calendar-month-panel { padding:12px; overflow:hidden; }
.calendar-month-weekdays { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border:1px solid var(--line); border-bottom:0; background:#0a1016; }
.calendar-month-weekdays span { padding:9px 5px; border-right:1px solid var(--line); color:var(--muted); text-align:center; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.calendar-month-weekdays span:last-child { border-right:0; }
.calendar-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.calendar-month-day { min-width:0; min-height:132px; padding:7px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#0d141c; }
.calendar-month-day.is-weekend { background:#0b1219; }
.calendar-month-day.is-outside { background:#090e14; }
.calendar-month-day.is-outside > * { opacity:.48; }
.calendar-month-day.is-today { position:relative; background:rgba(21,155,211,.07); box-shadow:inset 0 0 0 2px var(--primary); }
.calendar-month-day.is-today > * { opacity:1; }
.calendar-month-day > header { min-height:25px; display:flex; align-items:flex-start; justify-content:space-between; gap:4px; }
.calendar-month-day > header a { width:26px; height:24px; display:grid; place-items:center; border-radius:4px; color:var(--text); }
.calendar-month-day > header a:hover { background:rgba(21,155,211,.16); color:#8bdcff; }
.calendar-month-day > header time { font-size:12px; font-weight:800; font-variant-numeric:tabular-nums; }
.calendar-day-count { min-width:19px; height:19px; display:grid; place-items:center; padding:0 4px; border:1px solid var(--line); border-radius:99px; color:var(--muted); font-size:9px; }
.calendar-month-events { display:grid; gap:4px; min-width:0; }
.calendar-month-event { min-width:0; min-height:22px; display:flex; align-items:center; gap:5px; padding:3px 5px; overflow:hidden; border:1px solid rgba(84,210,126,.3); border-left:3px solid var(--green); border-radius:4px; background:rgba(84,210,126,.09); color:#ccefd4; }
.calendar-month-event time { flex:0 0 auto; font-size:8px; font-weight:800; font-variant-numeric:tabular-nums; }
.calendar-month-event span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; font-weight:650; }
.calendar-month-event.calendar-service { border-color:rgba(241,92,92,.34); border-left-color:var(--red); background:rgba(241,92,92,.1); color:#ffc2bd; }
.calendar-month-event.calendar-inspection { border-color:rgba(239,190,68,.38); border-left-color:var(--amber); background:rgba(239,190,68,.1); color:#ffe09a; }
.calendar-month-event.calendar-vacation { border-color:var(--vacation); border-left-color:#fff; background:#e9eef3; color:#18232e; }
.calendar-month-event.calendar-waste-business { border-color:rgba(178,139,255,.45); border-left-color:var(--waste-business); background:rgba(178,139,255,.13); color:#e0d2ff; }
.calendar-month-event.calendar-waste-home { border-color:rgba(73,201,237,.45); border-left-color:var(--waste-home); background:rgba(73,201,237,.13); color:#c9f4ff; }
.calendar-month-event.calendar-vehicle { border-color:rgba(255,152,82,.48); border-left-color:var(--vehicle); background:rgba(255,152,82,.14); color:#ffd7bc; }
.calendar-drag-hint { display:flex; align-items:center; gap:10px; margin-bottom:10px; padding:10px 12px; border:1px solid rgba(21,155,211,.28); border-radius:6px; background:rgba(21,155,211,.055); }
.calendar-drag-hint > .icon { color:var(--primary); }
.calendar-drag-hint strong,.calendar-drag-hint small { display:block; }
.calendar-drag-hint strong { font-size:12px; }
.calendar-drag-hint small { margin-top:2px; color:var(--muted); font-size:10px; }
@media (min-width:901px) and (hover:hover) and (pointer:fine) {
  [data-calendar-drag] .calendar-month-event[data-calendar-schedule-id] { cursor:grab; user-select:none; }
  [data-calendar-drag] .calendar-month-event[data-calendar-schedule-id]:active { cursor:grabbing; }
  [data-calendar-drag] .calendar-month-event.is-dragging { opacity:.28; }
  [data-calendar-drag] .calendar-month-day.is-drop-target { position:relative; z-index:2; background:rgba(21,155,211,.16); box-shadow:inset 0 0 0 2px var(--primary),0 0 24px rgba(21,155,211,.14); }
  [data-calendar-drag].is-saving-date { opacity:.58; pointer-events:none; }
}
@media (hover:none), (pointer:coarse) {
  .calendar-drag-hint { display:none; }
}
.inspection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.vacation-toolbar { justify-content:space-between; }
.vacation-year-switcher { display:grid; grid-template-columns:44px minmax(140px,1fr) 44px; align-items:center; gap:8px; }
.vacation-year-switcher > span { text-align:center; }
.vacation-year-switcher small,.vacation-year-switcher strong { display:block; }
.vacation-year-switcher small { color:var(--muted); font-size:12px; letter-spacing:.04em; }
.vacation-year-switcher strong { font-size:24px; font-variant-numeric:tabular-nums; }
.vacation-year-switcher .button { padding:0; width:44px; min-height:44px; }
.vacation-form { margin-bottom:24px; }
.vacation-form .form-grid > label,.vacation-form .form-control,.vacation-form .form-select { min-width:0; max-width:100%; }
.vacation-form .field-label { font-size:14px; }
.vacation-form .panel-head { flex-wrap:wrap; }
.vacation-form-help,.vacation-counting-note { color:var(--muted); font-size:13px; line-height:1.5; }
.vacation-form-help { margin:14px 0 0; }
.vacation-counting-note { margin:0 0 14px; }
.vacation-summary-section { margin-bottom:24px; }
.vacation-summary-section .section-heading { flex-wrap:wrap; align-items:center; }
.vacation-summary-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:12px; }
.vacation-person-card { min-width:0; padding:16px; border:1px solid var(--line); border-top:2px solid var(--vacation); border-radius:var(--radius); background:var(--panel); }
.vacation-person-card > header { display:flex; align-items:center; gap:10px; }
.vacation-avatar { flex:0 0 36px; height:36px; display:grid; place-items:center; border:1px solid rgba(242,245,247,.25); border-radius:50%; background:rgba(242,245,247,.08); color:var(--vacation); font-size:16px; font-weight:700; }
.vacation-person-card header > span:nth-child(2) { min-width:0; flex:1; }
.vacation-person-card header strong,.vacation-person-card header small { display:block; overflow-wrap:anywhere; }
.vacation-person-card header strong { font-size:16px; }
.vacation-person-card header small { color:var(--muted); font-size:12px; }
.vacation-person-card header > b { flex:0 0 auto; font-size:28px; font-variant-numeric:tabular-nums; }
.vacation-person-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:16px 0 0; padding-top:12px; border-top:1px solid var(--line); }
.vacation-person-card dt { margin:0; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.vacation-person-card dd { margin:4px 0 0; color:var(--vacation); font-size:18px; font-weight:700; font-variant-numeric:tabular-nums; }
.vacation-person-card footer { margin-top:12px; color:var(--muted); font-size:12px; }
.vacation-register .panel-head { flex-wrap:wrap; }
.vacation-list { display:grid; gap:10px; padding-top:14px; }
.vacation-entry { min-width:0; display:grid; grid-template-columns:4px minmax(0,1fr) minmax(90px,120px) auto; gap:14px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:7px; background:#0b1118; scroll-margin-top:95px; }
.vacation-entry:target { border-color:var(--vacation); }
.vacation-entry-track { align-self:stretch; min-height:52px; border-radius:3px; background:var(--vacation); }
.vacation-entry-main { min-width:0; }
.vacation-entry-title { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.vacation-entry-title > strong { font-size:16px; overflow-wrap:anywhere; }
.vacation-entry-title .badge { font-size:12px; }
.vacation-entry-main p { margin:7px 0 4px; font-size:14px; font-variant-numeric:tabular-nums; }
.vacation-entry-main p i { margin:0 4px; color:var(--muted); font-style:normal; }
.vacation-entry-main small { color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.vacation-entry-days { text-align:center; }
.vacation-entry-days strong { display:block; font-size:26px; line-height:1.1; font-variant-numeric:tabular-nums; }
.vacation-entry-days span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.vacation-entry .row-actions { flex-wrap:wrap; }
.vacation-entry .row-actions form { margin:0; }
.vacation-entry .icon-btn { min-width:42px; min-height:42px; border:1px solid var(--line); border-radius:5px; }
.waste-toolbar { justify-content:space-between; }
.waste-form { margin-bottom:24px; border-color:rgba(178,139,255,.38); }
.waste-form .form-grid > label,.waste-form .form-control,.waste-form .form-select { min-width:0; max-width:100%; }
.waste-form .field-label { font-size:14px; }
.waste-form .panel-head { flex-wrap:wrap; }
.waste-scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.waste-scope { min-width:0; padding:16px; border:1px solid var(--line); border-top:3px solid var(--waste-business); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
.waste-scope-home { border-top-color:var(--waste-home); }
.waste-scope-head { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:11px; align-items:center; padding-bottom:14px; border-bottom:1px solid var(--line); }
.waste-scope-icon { width:42px; height:42px; display:grid; place-items:center; background:rgba(178,139,255,.1); color:var(--waste-business); }
.waste-scope-home .waste-scope-icon { background:rgba(73,201,237,.1); color:var(--waste-home); }
.waste-scope-head > span:nth-child(2) { min-width:0; }
.waste-scope-head small,.waste-scope-head strong,.waste-scope-head em { display:block; }
.waste-scope-head > span:nth-child(2) > small { color:var(--waste-business); font-size:12px; font-weight:700; letter-spacing:.12em; }
.waste-scope-home .waste-scope-head > span:nth-child(2) > small { color:var(--waste-home); }
.waste-scope-head strong { margin-top:2px; font-size:20px; }
.waste-scope-head em { margin-top:3px; color:var(--muted); font-size:12px; font-style:normal; overflow-wrap:anywhere; }
.waste-scope-head > b { min-width:50px; color:var(--waste-business); font-size:27px; line-height:1; text-align:center; font-variant-numeric:tabular-nums; }
.waste-scope-home .waste-scope-head > b { color:var(--waste-home); }
.waste-scope-head > b small { margin-top:4px; color:var(--muted); font-size:12px; font-weight:400; }
.waste-type-grid { display:grid; gap:12px; padding-top:14px; }
.waste-type-card { min-width:0; padding:13px; border:1px solid var(--line); border-radius:7px; background:#0b1118; scroll-margin-top:95px; }
.waste-type-card > header { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.waste-type-card > header span { min-width:0; }
.waste-type-card > header small,.waste-type-card > header strong,.waste-type-card > header b { display:block; }
.waste-type-card > header span small { color:var(--muted); font-size:12px; letter-spacing:.1em; }
.waste-type-card > header span strong { margin-top:2px; font-size:16px; overflow-wrap:anywhere; }
.waste-type-card > header > b { flex:0 0 auto; color:var(--waste-business); font-size:23px; line-height:1; text-align:right; font-variant-numeric:tabular-nums; }
.waste-scope-home .waste-type-card > header > b { color:var(--waste-home); }
.waste-type-card > header > b small { margin-top:4px; color:var(--muted); font-size:12px; font-weight:400; }
.waste-empty { margin:12px 0 0; padding-top:11px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.waste-date-list { max-height:300px; display:grid; margin-top:12px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.waste-date-row { min-width:0; display:grid; grid-template-columns:minmax(92px,auto) minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 3px; border-top:1px solid var(--line); }
.waste-date-row:target { margin-inline:-4px; padding-inline:7px; border-radius:5px; background:rgba(178,139,255,.09); }
.waste-scope-home .waste-date-row:target { background:rgba(73,201,237,.09); }
.waste-date-row time strong,.waste-date-row time small,.waste-date-row > span:nth-child(2),.waste-date-row > span:nth-child(2) small { display:block; }
.waste-date-row time strong { font-size:13px; font-variant-numeric:tabular-nums; }
.waste-date-row time small { margin-top:2px; color:var(--waste-business); font-size:11px; }
.waste-scope-home .waste-date-row time small { color:var(--waste-home); }
.waste-date-row > span:nth-child(2) { min-width:0; font-size:13px; overflow-wrap:anywhere; }
.waste-date-row > span:nth-child(2) small { margin-top:2px; color:var(--muted); font-size:11px; }
.waste-date-row.is-past { opacity:.52; }
.waste-date-row.is-today { opacity:1; }
.waste-date-row.is-today time strong { color:var(--waste-business); }
.waste-scope-home .waste-date-row.is-today time strong { color:var(--waste-home); }
.waste-date-row .row-actions { flex-wrap:nowrap; }
.waste-date-row .row-actions form { margin:0; }
.waste-date-row .icon-btn { min-width:38px; min-height:38px; border:1px solid var(--line); border-radius:5px; }
.vehicle-toolbar { justify-content:space-between; }
.vehicle-toolbar > div { min-width:0; }
.vehicle-toolbar > div span,.vehicle-toolbar > div strong { display:block; }
.vehicle-kicker { color:var(--vehicle); font-size:10px; font-weight:800; letter-spacing:.14em; }
.vehicle-toolbar > div strong { margin-top:3px; font-size:21px; }
.vehicle-form,.vehicle-service-form { margin-bottom:22px; border-color:rgba(255,152,82,.34); }
.vehicle-form .panel-title .icon,.vehicle-service-form .panel-title .icon { color:var(--vehicle); }
.vehicle-form .form-grid > label,.vehicle-service-form .form-grid > label,.vehicle-form .form-control,.vehicle-service-form .form-control { min-width:0; max-width:100%; }
.vehicle-vin-input { text-transform:uppercase; letter-spacing:.08em; }
.vehicle-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
.vehicle-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:15px; }
.vehicle-card { min-width:0; padding:16px; border:1px solid var(--line); border-top:3px solid var(--vehicle); border-radius:var(--radius); background:linear-gradient(155deg,rgba(255,152,82,.035),transparent 45%),var(--panel); box-shadow:var(--shadow); scroll-margin-top:95px; }
.vehicle-card:target { border-color:var(--vehicle); }
.vehicle-card > header { display:grid; grid-template-columns:46px minmax(0,1fr); align-items:center; gap:11px; }
.vehicle-card-icon { width:46px; height:46px; display:grid; place-items:center; color:var(--vehicle); background:rgba(255,152,82,.11); }
.vehicle-card > header > span:last-child { min-width:0; }
.vehicle-card header small,.vehicle-card header strong,.vehicle-card header em { display:block; overflow-wrap:anywhere; }
.vehicle-card header small { color:var(--vehicle); font-size:12px; font-weight:800; letter-spacing:.1em; }
.vehicle-card header strong { margin-top:2px; font-size:19px; }
.vehicle-card header em { margin-top:2px; color:var(--muted); font-size:10px; font-style:normal; }
.vehicle-deadlines { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:15px; }
.vehicle-deadlines > div { min-width:0; padding:10px; border:1px solid var(--line); border-radius:6px; background:#0b1118; }
.vehicle-deadlines span,.vehicle-deadlines strong { display:block; }
.vehicle-deadlines span { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.vehicle-deadlines strong { margin:5px 0 7px; font-size:15px; font-variant-numeric:tabular-nums; }
.vehicle-deadlines i { max-width:100%; font-style:normal; overflow:hidden; text-overflow:ellipsis; }
.vehicle-card-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:8px; }
.vehicle-card-meta > span { min-width:0; padding:8px 10px; border-left:2px solid rgba(255,152,82,.42); background:rgba(255,255,255,.018); }
.vehicle-card-meta small,.vehicle-card-meta strong { display:block; overflow-wrap:anywhere; }
.vehicle-card-meta small { color:var(--muted); font-size:10px; }
.vehicle-card-meta strong { margin-top:2px; font-size:12px; }
.vehicle-card > p { margin:12px 0 0; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.vehicle-card > footer { display:flex; align-items:center; justify-content:space-between; gap:9px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.vehicle-card > footer .row-actions form,.vehicle-service-entry .row-actions form { margin:0; }
.vehicle-card > footer .icon-btn,.vehicle-service-entry .icon-btn { min-width:40px; min-height:40px; border:1px solid var(--line); border-radius:5px; }
.vehicle-detail-toolbar { justify-content:space-between; }
.vehicle-detail-toolbar > span { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.vehicle-hero { display:grid; grid-template-columns:64px minmax(0,1fr) minmax(260px,.7fr); align-items:center; gap:17px; margin-bottom:14px; border-top:3px solid var(--vehicle); }
.vehicle-hero-icon { width:64px; height:64px; display:grid; place-items:center; color:var(--vehicle); background:rgba(255,152,82,.11); }
.vehicle-hero-icon .icon { width:34px; height:34px; }
.vehicle-hero > div { min-width:0; }
.vehicle-hero > div small { color:var(--vehicle); font-size:10px; font-weight:800; letter-spacing:.12em; }
.vehicle-hero h2 { margin:3px 0 2px; font-size:27px; line-height:1.15; overflow-wrap:anywhere; }
.vehicle-hero p { margin:0; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.vehicle-hero dl { min-width:0; display:grid; gap:8px; margin:0; }
.vehicle-hero dl div { min-width:0; padding:8px 10px; border-left:2px solid var(--vehicle); background:#0b1118; }
.vehicle-hero dt { color:var(--muted); font-size:10px; text-transform:uppercase; }
.vehicle-hero dd { margin:3px 0 0; font-size:13px; font-weight:700; overflow-wrap:anywhere; }
.vehicle-deadline-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:14px; }
.vehicle-deadline-panel { display:grid; grid-template-columns:45px minmax(0,1fr); align-items:center; gap:11px; padding:14px; border-left:3px solid var(--vehicle); }
.vehicle-deadline-panel:hover { background:linear-gradient(120deg,rgba(255,152,82,.07),transparent 50%),var(--panel); }
.vehicle-deadline-panel > span { width:45px; height:45px; display:grid; place-items:center; color:var(--vehicle); background:rgba(255,152,82,.1); }
.vehicle-deadline-panel small,.vehicle-deadline-panel strong { display:block; }
.vehicle-deadline-panel small { color:var(--muted); font-size:10px; letter-spacing:.1em; }
.vehicle-deadline-panel strong { margin:3px 0 6px; font-size:18px; font-variant-numeric:tabular-nums; }
.vehicle-deadline-panel i { font-style:normal; }
.vehicle-note { margin-bottom:14px; }
.vehicle-form-help { margin:13px 0 0; color:var(--muted); font-size:12px; }
.vehicle-service-list { display:grid; gap:9px; padding-top:13px; }
.vehicle-service-entry { min-width:0; display:grid; grid-template-columns:43px minmax(0,1fr) minmax(95px,auto) auto; align-items:center; gap:12px; padding:12px; border:1px solid var(--line); border-left:3px solid var(--vehicle); border-radius:6px; background:#0b1118; scroll-margin-top:95px; }
.vehicle-service-entry.is-repair { border-left-color:var(--primary); }
.vehicle-service-entry:target { background:rgba(255,152,82,.065); }
.vehicle-service-icon { width:43px; height:43px; display:grid; place-items:center; color:var(--vehicle); background:rgba(255,152,82,.1); }
.vehicle-service-entry.is-repair .vehicle-service-icon { color:var(--primary); background:rgba(21,155,211,.1); }
.vehicle-service-entry > div { min-width:0; }
.vehicle-service-entry header { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.vehicle-service-entry header strong { font-size:15px; }
.vehicle-service-entry p { margin:5px 0 2px; font-size:12px; overflow-wrap:anywhere; }
.vehicle-service-entry > div > small { color:var(--muted); font-size:10px; }
.vehicle-service-entry > b { font-size:19px; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.vehicle-service-entry > b small { display:block; color:var(--muted); font-size:10px; font-weight:400; text-transform:uppercase; }
.inspection-card { min-width:0; padding:16px; border:1px solid var(--line); border-radius:7px; background:#0b1118; }
.inspection-card-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.inspection-card h3 { margin:14px 0 7px; font-size:17px; }
.inspection-card p { margin:5px 0; overflow-wrap:anywhere; }
.inspection-card .row-actions { margin-top:12px; flex-wrap:wrap; justify-content:flex-start; }
.job-main { min-width: 0; }
.job-main strong, .job-main span { display: block; overflow: hidden; text-overflow: ellipsis; }
.job-main strong { color: var(--text); white-space: nowrap; }
.job-main span { color: var(--muted); font-size: 12px; margin-top: 3px; }
.job-side { display: grid; justify-items: end; gap: 5px; }
.crew { display: flex; justify-content: flex-end; }
.crew-avatar { width: 28px; height: 28px; display: grid; place-items: center; margin-left: -6px; border: 2px solid var(--panel); background: #1d2a35; color: #bdc8d2; font-size: 10px; border-radius: 50%; }

.money-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.money-row:last-child { border-bottom: 0; }
.money-row strong, .money-row span { display: block; }
.money-row span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.money-value { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }

.toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 16px; }
.toolbar .search { min-width: min(340px,100%); flex: 1; position: relative; }
.toolbar .search .icon { position: absolute; left: 12px; top: 11px; color: var(--muted); }
.toolbar .search input { padding-left: 41px; }
.toolbar > .form-select { width: auto; min-width: 190px; }
.form-control, .form-select, textarea {
  width: 100%; min-height: 42px; padding: 9px 11px; color: var(--text); background: #0b1118;
  border: 1px solid var(--line); border-radius: 5px; outline: none;
}
.form-control:focus, .form-select:focus, textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(21,155,211,.12); }
textarea { min-height: 105px; resize: vertical; }
label { display: block; }
.field-label { display: block; margin-bottom: 6px; color: #b5c0ca; font-size: 12px; font-weight: 600; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.form-grid .full { grid-column: 1 / -1; }
.form-section { margin-top: 22px; }
.form-section:first-child { margin-top: 0; }
.form-section h3 { margin: 0 0 12px; padding-bottom: 9px; border-bottom: 1px solid var(--line); font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.checkbox-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.check-card { display: flex; align-items: center; gap: 8px; padding: 10px; background: #0b1118; border: 1px solid var(--line); border-radius: 5px; }
.check-card input { accent-color: var(--primary); }
.company-role-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }
.company-role-picker .check-card { min-height:68px; }
.company-role-picker .check-card > span,.company-role-picker strong,.company-role-picker small { display:block; }
.company-role-picker small { margin-top:3px; color:var(--muted); font-size:10px; font-weight:400; }
.company-role-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-bottom:12px; padding:5px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
.company-role-tabs a { min-width:0; min-height:43px; display:flex; align-items:center; justify-content:center; gap:8px; padding:8px 10px; border:1px solid transparent; border-radius:6px; color:var(--muted); font-weight:700; }
.company-role-tabs a:hover { color:var(--text); background:rgba(255,255,255,.025); }
.company-role-tabs a[aria-selected="true"] { color:var(--text); border-color:rgba(21,155,211,.48); background:rgba(21,155,211,.12); }
.company-role-tabs b { min-width:23px; height:21px; display:grid; place-items:center; padding:0 5px; border:1px solid var(--line); border-radius:99px; font-size:10px; }
.company-role-badges { display:flex; flex-wrap:wrap; gap:5px; }
.company-role-customer { color:var(--green); border-color:rgba(101,214,124,.3); background:rgba(101,214,124,.08); }
.company-role-supplier { color:var(--amber); border-color:rgba(231,184,75,.32); background:rgba(231,184,75,.08); }
.company-finance-cell strong,.company-finance-cell span { display:block; white-space:nowrap; }
.company-finance-cell span { margin-top:3px; font-size:11px; }
.job-schedule-builder { padding:14px; border:1px solid var(--line); border-radius:7px; background:#0b1118; }
.job-schedule-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.job-schedule-heading .field-label { margin:0; font-size:13px; }
.job-schedule-help { margin:7px 0 13px; color:var(--muted); font-size:11px; }
.job-schedule-rows { display:grid; gap:9px; }
.job-schedule-row { display:grid; grid-template-columns:minmax(210px,1fr) minmax(210px,1fr) 42px; gap:9px; align-items:end; padding:10px; border:1px solid rgba(37,50,64,.85); border-radius:6px; background:#0e1720; }
.job-schedule-row .field-label { font-size:10px; }
.job-schedule-row .icon-btn { width:42px; height:42px; border:1px solid rgba(227,101,91,.25); border-radius:5px; }
.job-schedule-row .icon-btn:hover { background:rgba(227,101,91,.08); }
.info-item strong.job-schedule-list { display:flex; flex-wrap:wrap; gap:7px; margin-top:7px; }
.job-schedule-list i { display:inline-flex; align-items:center; min-height:30px; padding:5px 9px; border:1px solid rgba(21,155,211,.3); border-radius:5px; background:rgba(21,155,211,.065); color:#cdebf7; font-style:normal; font-size:12px; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }

.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th, .data-table td { padding: 12px 10px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.data-table th { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: rgba(255,255,255,.018); }
.cell-main strong, .cell-main span { display: block; }
.cell-main span { margin-top: 2px; color: var(--muted); font-size: 12px; }
.row-actions { display: flex; justify-content: flex-end; gap: 6px; }

.details-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(290px,.65fr); gap: 16px; align-items: start; }
.info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.info-item { padding: 11px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.info-item.full { grid-column: 1 / -1; }
.info-item span, .info-item strong { display: block; }
.info-item span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .07em; }
.info-item strong { margin-top: 4px; overflow-wrap: anywhere; }
.notes-list { display: grid; gap: 9px; padding-top: 10px; }
.note { padding: 11px; background: #0b1118; border-left: 3px solid var(--primary); }
.note p { margin: 0; white-space: pre-wrap; }
.note small { display: block; margin-top: 7px; color: var(--muted); }
.quick-note-form { margin-bottom:16px; }
.quick-note-form textarea { min-height:120px; }
.quick-note-file-picker small,
.quick-note-upload small { display:block; margin-top:6px; color:var(--muted); font-size:11px; }
.quick-notes-list { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; padding-top:16px; }
.quick-note-card { min-width:0; scroll-margin-top:100px; padding:17px; border:1px solid var(--line); border-left:3px solid var(--primary); border-radius:7px; background:#0b1118; }
.quick-note-card:target { border-color:rgba(21,155,211,.62); box-shadow:0 0 0 3px rgba(21,155,211,.09); }
.quick-note-card h3 { margin:17px 0 7px; font-size:18px; overflow-wrap:anywhere; }
.quick-note-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.quick-note-actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.quick-note-actions form { margin:0; }
.quick-note-meta { display:flex; align-items:center; gap:9px; }
.quick-note-meta > span:last-child { min-width:0; }
.quick-note-meta .avatar { flex:0 0 auto; }
.quick-note-meta strong,.quick-note-meta small { display:block; }
.quick-note-meta strong { overflow:hidden; text-overflow:ellipsis; }
.quick-note-meta small { margin-top:2px; color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
.quick-note-content { margin-top:12px; color:#dce4eb; line-height:1.58; white-space:normal; overflow-wrap:anywhere; }
.quick-note-edit { display:grid; gap:12px; margin-top:17px; padding:14px; border:1px solid rgba(21,155,211,.32); background:rgba(21,155,211,.035); }
.quick-note-edit textarea { min-height:150px; }
.quick-note-edit .form-actions { margin-top:2px; }
.quick-note-attachments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:16px; }
.quick-note-image { position:relative; min-width:0; aspect-ratio:4/3; overflow:hidden; border:1px solid var(--line); border-radius:6px; background:#070b10; }
.quick-note-image img { display:block; width:100%; height:100%; object-fit:cover; }
.quick-note-image > span { position:absolute; left:0; right:0; bottom:0; padding:18px 7px 6px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.86)); font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.quick-note-file { grid-column:span 1; min-width:0; display:flex; align-items:center; gap:10px; min-height:68px; padding:11px; border:1px solid var(--line); border-radius:6px; background:#0e1720; }
.quick-note-file:hover { border-color:#405367; }
.quick-note-file > .icon { color:var(--primary); }
.quick-note-file > span { min-width:0; }
.quick-note-file strong,.quick-note-file small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.quick-note-file small { margin-top:3px; color:var(--muted); font-size:10px; }
.quick-note-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.58fr); gap:10px; margin-top:17px; padding-top:14px; border-top:1px solid var(--line); align-items:start; }
.quick-note-footer details { min-width:0; border:1px solid var(--line); border-radius:6px; background:#0d151e; }
.quick-note-footer summary { min-height:43px; display:flex; align-items:center; gap:8px; padding:9px 11px; color:#c5d0d9; cursor:pointer; list-style:none; font-weight:600; }
.quick-note-footer summary::-webkit-details-marker { display:none; }
.quick-note-footer summary .icon { width:18px; height:18px; color:var(--primary); }
.quick-note-footer summary b { min-width:22px; height:22px; margin-left:auto; display:grid; place-items:center; padding:0 5px; color:var(--primary); border:1px solid rgba(21,155,211,.33); border-radius:99px; font-size:10px; }
.quick-note-comments { display:grid; gap:10px; padding:11px; border-top:1px solid var(--line); }
.quick-note-comments > .muted { margin:0; font-size:12px; }
.quick-note-comment { min-width:0; display:grid; grid-template-columns:30px minmax(0,1fr); gap:9px; padding-bottom:10px; border-bottom:1px solid rgba(37,50,64,.75); }
.quick-note-comment > .avatar { width:30px; height:30px; font-size:11px; }
.quick-note-comment strong,.quick-note-comment small { display:block; }
.quick-note-comment small { margin-top:1px; color:var(--muted); font-size:10px; }
.quick-note-comment p { margin:6px 0 0; color:#dce4eb; line-height:1.48; overflow-wrap:anywhere; }
.quick-note-comment-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; }
.quick-note-comment-form textarea { min-height:70px; }
.quick-note-upload form { display:grid; gap:8px; padding:11px; border-top:1px solid var(--line); }
.quick-note-upload input[type=file] { min-width:0; height:auto; }
.photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; padding-top: 12px; }
.photo-card { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #070b10; border: 1px solid var(--line); border-radius: 5px; }
.photo-card img { width: 100%; height: 100%; display: block; object-fit: cover; }
.photo-card span { position: absolute; left: 6px; bottom: 6px; max-width: calc(100% - 12px); padding: 3px 6px; color: #fff; background: rgba(0,0,0,.7); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.upload-box { padding: 16px; margin-top: 12px; border: 1px dashed #385067; background: rgba(21,155,211,.035); text-align: center; }
.upload-box input[type=file] { width: 100%; margin: 9px 0; }
.attachment-list { display:grid; gap:8px; padding-top:13px; }
.attachment-card { min-width:0; display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); border-radius:6px; background:#0e1720; }
.attachment-card:hover { border-color:#405367; }
.attachment-card > .icon { flex:0 0 auto; color:var(--primary); }
.attachment-card > span { min-width:0; }
.attachment-card strong,.attachment-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.attachment-card small { margin-top:4px; color:var(--muted); font-size:10px; }
.attachment-empty { margin:16px 0 4px; }
.attachment-upload { display:grid; gap:8px; }
.attachment-upload small { display:block; color:var(--muted); font-size:11px; }
[data-live-region] { transition:opacity .14s ease; }
[data-live-region].is-live-loading { opacity:.48; pointer-events:none; }
.empty-state { min-height: 260px; display: grid; place-items: center; align-content: center; text-align: center; color: var(--muted); }
.empty-state .icon { width: 42px; height: 42px; color: #455666; }
.empty-state h2 { margin: 12px 0 4px; color: var(--text); }
.empty-state p { margin: 0 0 14px; max-width: 430px; }

.login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(300px,.8fr) minmax(420px,1.2fr); }
.login-brand { padding: clamp(35px,7vw,90px); display: flex; flex-direction: column; justify-content: space-between; background: #080d13; border-right: 1px solid var(--line); }
.login-brand .brand { padding: 0; }
.login-copy h1 { margin: 0; max-width: 620px; font-size: clamp(35px,5vw,72px); line-height: .98; letter-spacing: -.035em; }
.login-copy h1 em { color: var(--primary); font-style: normal; }
.login-copy p { max-width: 520px; color: var(--muted); }
.login-form-wrap { display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 60% 30%,rgba(21,155,211,.09),transparent 34%); }
.login-card { width: min(430px,100%); padding: 28px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.login-card h2 { margin: 0 0 6px; }
.login-card > p { margin: 0 0 20px; color: var(--muted); }
.login-card .form-field { margin-bottom: 13px; }
.login-card .button { width: 100%; margin-top: 6px; }
.login-foot { color: #586979; font-size: 11px; }
.sidebar-backdrop { display: none; }

.finance-toolbar {
  display: flex; justify-content: space-between; align-items: end; gap: 12px; margin-bottom: 16px;
}
.finance-toolbar-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.month-switcher { display: flex; align-items: end; gap: 7px; }
.month-switcher form { width: 190px; }
.month-switcher .icon-btn { min-width: 42px; min-height: 42px; border: 1px solid var(--line); background: var(--panel-2); border-radius: 6px; }
.month-switcher .month-next .icon { transform: rotate(180deg); }
.finance-entry { margin-bottom: 18px; border-color: rgba(21,155,211,.48); }
.finance-entry .form-grid { align-items:start; }
.finance-entry .form-grid > * { min-width:0; }
.finance-document-field { min-width:0; }
.finance-document-status { margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.finance-document-status[data-state="checking"] { color:var(--primary); }
.finance-document-status[data-state="clear"] { color:var(--green); }
.finance-document-status[data-state="warning"] { color:var(--amber); }
.finance-document-status[data-state="error"] { color:var(--red); }
.finance-document-field input[data-duplicate="true"] { border-color:var(--amber); }
.finance-document-details { margin-top:9px; padding:10px; border:1px solid var(--line); border-radius:5px; background:var(--panel-2); overflow-wrap:anywhere; }
.finance-document-details[hidden] { display:none; }
.finance-document-details ul { margin:0; padding:0; list-style:none; }
.finance-document-details li { display:grid; gap:3px; min-width:0; padding:8px 0; font-size:12px; }
.finance-document-details li:first-child { padding-top:0; }
.finance-document-details li + li { border-top:1px solid var(--line); }
.finance-document-details a { color:var(--amber); text-decoration:underline; text-underline-offset:3px; }
.finance-document-details a:focus-visible { outline:2px solid var(--primary); outline-offset:3px; }
.finance-document-details li > span,.finance-document-details p { color:var(--muted); font-size:11px; line-height:1.5; }
.finance-document-details p { margin:8px 0 0; }
.finance-analysis-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); gap: 16px; margin-bottom: 16px; }
.finance-clients { margin-bottom: 16px; }
.chart-legend { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; white-space: nowrap; }
.chart-legend i { width: 9px; height: 9px; display: inline-block; margin-left: 5px; }
.income-dot { background: var(--green); }
.expense-dot { background: var(--red); }
.trend-chart {
  height: 250px; min-width: 620px; display: grid; grid-template-columns: repeat(12,minmax(38px,1fr));
  align-items: end; gap: 6px; padding: 22px 4px 0; border-bottom: 1px solid var(--line);
  background: repeating-linear-gradient(to top, transparent 0 49px, rgba(132,147,162,.09) 49px 50px);
}
.trend-panel { overflow: hidden; }
.trend-panel .panel-head { margin-bottom: 4px; }
.trend-column { height: 100%; display: grid; grid-template-rows: minmax(0,1fr) 26px; min-width: 0; }
.trend-bars { display: flex; align-items: end; justify-content: center; gap: 3px; min-height: 0; }
.trend-bar { width: min(12px,42%); min-height: 3px; display: block; border-radius: 2px 2px 0 0; }
.income-bar { background: linear-gradient(to top,#2d8f45,var(--green)); }
.expense-bar { background: linear-gradient(to top,#9f3d38,var(--red)); }
.trend-column > span { padding-top: 7px; color: var(--muted); font-size: 10px; text-align: center; }
.category-finance-list { display: grid; }
.category-finance-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); }
.category-finance-row:last-child { border-bottom: 0; }
.category-finance-row strong, .category-finance-row small { display: block; }
.category-finance-row small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.category-result { text-align: right; color: var(--green); font-variant-numeric: tabular-nums; }
.category-result.negative { color: var(--red); }
.finance-filters { padding-top: 15px; }
.finance-filters .search { flex: 1 0 100%; }
.finance-filters .form-select { width: auto; min-width: 155px; flex: 1; }
.income-text { color: var(--green); }
.expense-text { color: var(--red); }
.danger-icon { color: var(--red); }
.finance-row-income { box-shadow: inset 3px 0 var(--green); }
.finance-row-expense { box-shadow: inset 3px 0 var(--red); }
.finance-transactions-table { min-width: 1080px; }
.finance-client-table { min-width: 790px; }
.finance-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.finance-mobile-tabs { display:none; }
.finance-register-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.finance-register-panel {
  min-width:0;
  height:clamp(440px,68vh,720px);
  height:clamp(440px,68dvh,720px);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  overflow:hidden;
}
.finance-register-title-copy { min-width:0; }
.finance-register-head .panel-title h2,
.finance-register-head .panel-title small { display:block; }
.finance-register-head .panel-title small { margin-top:3px; color:var(--muted); font-size:10px; }
.finance-register-head .panel-head-actions { flex:0 0 auto; }
.finance-register-search { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:7px; padding:13px 0; border-bottom:1px solid var(--line); }
.finance-register-search label { position:relative; min-width:0; }
.finance-register-search label > .icon { position:absolute; left:11px; top:11px; width:18px; height:18px; color:var(--muted); }
.finance-register-search .form-control { min-width:0; padding-left:38px; }
.finance-register-search .button { padding-inline:11px; }
.finance-register-list {
  min-height:0;
  display:grid;
  align-content:start;
  gap:9px;
  padding:12px 7px 4px 0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  scrollbar-color:#405263 #0a1016;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
}
.finance-register-list::-webkit-scrollbar { width:8px; }
.finance-register-list::-webkit-scrollbar-track { background:#0a1016; border-radius:99px; }
.finance-register-list::-webkit-scrollbar-thumb { background:#405263; border:2px solid #0a1016; border-radius:99px; }
.finance-register-list::-webkit-scrollbar-thumb:hover { background:#587087; }
.finance-register-panel > .empty-state { min-height:0; height:100%; overflow:auto; }
.finance-register-item { min-width:0; padding:13px; border:1px solid var(--line); border-left:3px solid var(--muted); border-radius:7px; background:#0b1118; }
.finance-register-expense .finance-register-item { border-left-color:var(--red); }
.finance-register-income .finance-register-item { border-left-color:var(--green); }
.finance-register-item.is-unpaid { border-top-color:rgba(231,184,75,.54); background:linear-gradient(115deg,rgba(231,184,75,.045),transparent 52%),#0b1118; }
.finance-register-document { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:start; }
.finance-register-document > span { min-width:0; }
.finance-register-document strong,
.finance-register-document small { display:block; }
.finance-register-document > span:first-child > strong { overflow-wrap:anywhere; }
.finance-register-document > span:first-child > small { margin-top:3px; color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
.finance-register-amount { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.finance-register-amount strong { font-size:17px; }
.finance-register-amount small { margin-top:2px; color:var(--muted); font-size:10px; }
.finance-register-item > p { margin:11px 0; color:#dce4eb; font-weight:600; overflow-wrap:anywhere; }
.finance-register-tags { display:flex; flex-wrap:wrap; gap:5px; }
.finance-register-tags .badge { max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.finance-register-status { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }
.finance-register-status > span { min-width:0; }
.finance-register-status > span > small { display:block; margin-top:5px; color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.finance-register-status .row-actions { align-items:center; }
.finance-register-status .row-actions form { margin:0; }
.finance-register-status .icon-btn { min-width:36px; min-height:36px; border:1px solid var(--line); border-radius:5px; }

.finance-stats-topline { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; padding:2px 1px; }
.finance-stats-topline > div { min-width:0; }
.finance-stats-topline span,
.finance-stats-topline strong,
.finance-stats-topline small { display:block; }
.finance-stats-topline span { color:var(--primary); font-size:10px; font-weight:800; letter-spacing:.16em; }
.finance-stats-topline strong { margin-top:3px; font-size:22px; line-height:1.15; }
.finance-stats-topline small { margin-top:4px; color:var(--muted); font-size:11px; }
.finance-period-filter { margin-bottom:18px; }
.finance-period-row { display:flex; align-items:end; justify-content:space-between; gap:18px; padding-top:15px; }
.finance-year-field { width:170px; flex:0 0 auto; }
.finance-period-presets { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.finance-period-presets .button.is-active { border-color:var(--primary); color:#061017; background:var(--primary); }
.finance-month-picker { min-width:0; margin:16px 0 0; padding:0; border:0; }
.finance-month-picker legend { margin-bottom:7px; }
.finance-month-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:6px; }
.finance-month-choice { min-width:0; cursor:pointer; }
.finance-month-choice input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.finance-month-choice span { min-height:58px; display:grid; place-content:center; gap:2px; padding:6px 2px; border:1px solid var(--line); border-radius:6px; color:var(--muted); background:#0b1118; text-align:center; transition:border-color .15s ease,background .15s ease,color .15s ease; }
.finance-month-choice b { font-size:12px; text-transform:uppercase; }
.finance-month-choice small { max-width:100%; overflow:hidden; text-overflow:ellipsis; font-size:8px; }
.finance-month-choice:hover span { border-color:#3b4e60; color:var(--text); }
.finance-month-choice input:focus-visible + span { outline:2px solid var(--primary); outline-offset:2px; }
.finance-month-choice input:checked + span { border-color:rgba(21,155,211,.72); color:#dff6ff; background:linear-gradient(150deg,rgba(21,155,211,.22),rgba(21,155,211,.07)); box-shadow:inset 0 -2px var(--primary); }
.finance-period-actions { padding-top:15px; }
.finance-stats-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.finance-stats-summary .stat-copy { min-width:0; }
.finance-stats-summary .stat-copy strong { font-size:clamp(20px,2vw,27px); overflow-wrap:anywhere; }
.finance-charts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.finance-chart-panel { min-width:0; overflow:hidden; }
.finance-chart-panel .panel-head { align-items:flex-start; }
.finance-chart-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px 10px; color:var(--muted); font-size:10px; }
.finance-chart-legend span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.finance-chart-legend i { width:9px; height:9px; display:inline-block; border-radius:2px; }
.profit-dot,.vat-balance-dot { background:var(--primary); }
.vat-sale-dot { background:var(--green); }
.vat-purchase-dot { background:var(--amber); }
.finance-chart-scroll { width:100%; padding-top:12px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scrollbar-color:#405263 #0a1016; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
.finance-chart-scroll::-webkit-scrollbar { height:7px; }
.finance-chart-scroll::-webkit-scrollbar-track { background:#0a1016; border-radius:99px; }
.finance-chart-scroll::-webkit-scrollbar-thumb { background:#405263; border-radius:99px; }
.finance-chart-scroll canvas { width:100%; height:310px; display:block; }
.finance-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px; }
.finance-category-panel { min-width:0; }
.finance-category-bars { display:grid; gap:14px; padding-top:16px; }
.finance-category-bar > div { display:flex; align-items:end; justify-content:space-between; gap:14px; }
.finance-category-bar span { min-width:0; }
.finance-category-bar strong,
.finance-category-bar small { display:block; }
.finance-category-bar strong { overflow-wrap:anywhere; }
.finance-category-bar small { margin-top:2px; color:var(--muted); font-size:10px; }
.finance-category-bar b { flex:0 0 auto; font-size:13px; font-variant-numeric:tabular-nums; }
.finance-category-bar > i { height:7px; display:block; margin-top:7px; overflow:hidden; border-radius:99px; background:#0a1016; }
.finance-category-bar > i > span { height:100%; min-width:2px; display:block; border-radius:inherit; }
.finance-category-bar.is-income > i > span { background:linear-gradient(90deg,#2d8f45,var(--green)); }
.finance-category-bar.is-expense > i > span { background:linear-gradient(90deg,#9f3d38,var(--red)); }
.finance-stats-empty { padding:34px 0 18px; color:var(--muted); text-align:center; }
.finance-quarter-panel { margin-bottom:16px; }
.finance-quarter-panel .panel-title > div { min-width:0; }
.finance-quarter-panel .panel-title h2,
.finance-quarter-panel .panel-title small { display:block; }
.finance-quarter-panel .panel-title small { margin-top:2px; color:var(--muted); font-size:10px; }
.finance-quarter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding-top:15px; }
.finance-quarter-card { min-width:0; padding:13px; border:1px solid var(--line); border-radius:7px; background:#0b1118; transition:border-color .15s ease,transform .15s ease; }
.finance-quarter-card:hover { transform:translateY(-1px); border-color:#405466; }
.finance-quarter-card.is-selected { border-color:rgba(21,155,211,.72); box-shadow:inset 0 0 0 1px rgba(21,155,211,.18); }
.finance-quarter-card > header { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.finance-quarter-card > header span { color:var(--primary); font-size:20px; font-weight:800; }
.finance-quarter-card > header small { color:var(--muted); font-size:9px; text-transform:uppercase; }
.finance-quarter-card dl { display:grid; gap:7px; margin:11px 0 0; }
.finance-quarter-card dl div { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.finance-quarter-card dt { color:var(--muted); font-size:10px; }
.finance-quarter-card dd { margin:0; font-size:11px; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; }
.finance-month-detail-panel { min-width:0; }
.finance-stats-table-wrap { min-width:0; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.finance-stats-table { width:100%; min-width:1050px; border-collapse:collapse; }
.finance-stats-table th,
.finance-stats-table td { padding:12px 10px; border-bottom:1px solid var(--line); text-align:right; vertical-align:middle; font-variant-numeric:tabular-nums; white-space:nowrap; }
.finance-stats-table th { color:var(--muted); font-size:9px; letter-spacing:.07em; text-transform:uppercase; }
.finance-stats-table th:first-child,
.finance-stats-table td:first-child { padding-left:0; text-align:left; }
.finance-stats-table th:last-child,
.finance-stats-table td:last-child { padding-right:0; }
.finance-stats-table tr:last-child td { border-bottom:0; }
.finance-stats-table td small { display:block; margin-top:2px; color:var(--muted); font-size:9px; }
.finance-stats-table td small.expense-text { color:var(--red); }
.upgrade-panel { max-width: 760px; margin: 30px auto; }
.upgrade-copy { padding: 22px 0 5px; }
.upgrade-copy h3 { margin: 0 0 8px; }
.upgrade-copy p { color: var(--muted); max-width: 620px; }
.history-note { margin-bottom: 16px; }
.history-filters .search { min-width: min(420px,100%); flex: 1; }
.history-filters > .form-select { width: auto; min-width: 190px; }
.history-diff { display: grid !important; gap: 3px; margin-top: 7px !important; }
.history-diff i { display: block; color: var(--muted); font-size: 11px; font-style: normal; overflow-wrap: anywhere; }
.history-diff b { color: #b8c4cf; }
.history-diff s { color: #e18a83; text-decoration-thickness: 1px; }
.history-diff em { color: #87d99a; font-style: normal; }
.history-legacy { margin-top: 16px; }
.history-timeline { display: grid; padding-top: 8px; }
.history-event { display: grid; grid-template-columns: 12px minmax(0,1fr); gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.history-event:last-child { border-bottom: 0; }
.history-event strong, .history-event small { display: block; }
.history-event small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.history-dot { width: 9px; height: 9px; margin-top: 6px; border: 2px solid var(--primary); border-radius: 50%; }
.live-update-notice { position: fixed; right: max(18px,env(safe-area-inset-right)); bottom: max(18px,env(safe-area-inset-bottom)); z-index: 80; width: min(410px,calc(100vw - 28px)); display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px; border: 1px solid rgba(21,155,211,.55); border-radius: 8px; background: #101923; box-shadow: 0 18px 45px rgba(0,0,0,.48); }
.live-update-notice span, .live-update-notice strong, .live-update-notice small { display: block; min-width: 0; }
.live-update-notice strong { font-size: 13px; }
.live-update-notice small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.live-update-notice .button { flex: 0 0 auto; }

@media (max-width: 1050px) {
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .finance-stats-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finance-charts-grid { grid-template-columns:minmax(0,1fr); }
  .finance-quarter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dashboard-days-grid { grid-template-columns: 1fr; }
  .dashboard-grid, .details-grid { grid-template-columns: 1fr; }
  .waste-scope-grid { grid-template-columns:minmax(0,1fr); }
  .finance-analysis-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .calendar-drag-hint { display:none; }
  .finance-mobile-tabs { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:11px; padding:5px; border:1px solid var(--line); border-radius:8px; background:var(--panel); }
  .finance-mobile-tabs a { min-width:0; min-height:45px; display:flex; align-items:center; justify-content:center; gap:7px; padding:8px 10px; border:1px solid transparent; border-radius:6px; color:var(--muted); background:transparent; cursor:pointer; font-weight:700; }
  .finance-mobile-tabs a .icon { width:18px; height:18px; }
  .finance-mobile-tabs a b { min-width:21px; height:21px; display:grid; place-items:center; padding:0 5px; border:1px solid var(--line); border-radius:99px; font-size:10px; }
  .finance-mobile-tabs a[aria-selected="true"] { color:var(--text); border-color:rgba(21,155,211,.48); background:rgba(21,155,211,.12); }
  .finance-register-grid { grid-template-columns:minmax(0,1fr); gap:0; }
  .finance-register-grid .finance-register-panel { display:none; }
  .finance-register-grid[data-mobile-view="expense"] .finance-register-expense,
  .finance-register-grid[data-mobile-view="income"] .finance-register-income { display:grid; }
  .finance-register-head { flex-direction:column; align-items:stretch; gap:8px; }
  .finance-register-head .panel-head-actions { width:100%; justify-content:space-between; }
  .finance-register-search { grid-template-columns:minmax(0,1fr) auto auto; }
}

@media (max-width: 800px) {
  .finance-category-grid { grid-template-columns:minmax(0,1fr); }
  .calendar-controls { grid-template-columns:minmax(0,1fr) auto; }
  .calendar-view-switch { grid-column:1 / -1; }
  .calendar-navigation { grid-column:1; grid-row:2; }
  .calendar-today { grid-column:2; grid-row:2; }
  .inspection-grid { grid-template-columns:1fr 1fr; }
  .vehicle-hero { grid-template-columns:55px minmax(0,1fr); }
  .vehicle-hero-icon { width:55px; height:55px; }
  .vehicle-hero dl { grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; transform: translateX(-103%); width: min(290px,86vw); transition: transform .2s ease; box-shadow: 22px 0 60px rgba(0,0,0,.45); }
  .menu-open .sidebar { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 25; background: rgba(0,0,0,.58); }
  .menu-open .sidebar-backdrop { display: block; }
  .mobile-menu { display: inline-grid; }
  .topbar { min-height: 72px; }
  .login-page { grid-template-columns: 1fr; }
  .login-brand { min-height: 260px; padding: 28px; }
  .login-copy h1 { font-size: 39px; }
  .login-form-wrap { padding: 18px; }
}

@media (max-width: 600px) {
  .vehicle-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .vehicle-toolbar > .button { width:100%; }
  .vehicle-stats { grid-template-columns:minmax(0,1fr); }
  .vehicle-stats .stat-card { min-height:86px; }
  .vehicle-detail-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .vehicle-detail-toolbar > .button { width:100%; }
  .vehicle-detail-toolbar > span { display:grid; grid-template-columns:minmax(0,1fr); }
  .vehicle-detail-toolbar > span .button { width:100%; }
  .vehicle-hero { padding:14px; gap:11px; }
  .vehicle-hero h2 { font-size:22px; }
  .vehicle-hero dl { grid-template-columns:minmax(0,1fr); }
  .vehicle-deadline-grid { grid-template-columns:minmax(0,1fr); gap:9px; }
  .vehicle-service-entry { grid-template-columns:38px minmax(0,1fr) auto; gap:9px; }
  .vehicle-service-icon { width:38px; height:38px; }
  .vehicle-service-entry > div { grid-column:2 / -1; }
  .vehicle-service-entry > b { grid-column:2; text-align:left; }
  .vehicle-service-entry .row-actions { grid-column:3; }
  .dashboard-vehicle-alert { grid-template-columns:38px minmax(0,1fr); gap:9px; }
  .dashboard-vehicle-alert-icon { width:38px; height:38px; }
  .dashboard-vehicle-alert > .badge { grid-column:2; justify-self:start; }
  .waste-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .waste-toolbar > .button { width:100%; }
  .waste-scope { padding:13px; }
  .waste-scope-head { grid-template-columns:38px minmax(0,1fr) auto; gap:8px; }
  .waste-scope-icon { width:38px; height:38px; }
  .waste-scope-head strong { font-size:18px; }
  .waste-type-card { padding:11px; }
  .waste-date-row { grid-template-columns:minmax(0,1fr) auto; gap:7px; }
  .waste-date-row time { grid-column:1; }
  .waste-date-row > span:nth-child(2) { grid-column:1; }
  .waste-date-row .row-actions { grid-column:2; grid-row:1 / span 2; display:grid; grid-template-columns:1fr; }
  .dashboard-waste-countdown { grid-template-columns:40px minmax(0,1fr) auto; gap:10px; padding:13px; }
  .dashboard-waste-icon { width:40px; height:40px; }
  .dashboard-waste-copy > small { font-size:12px; letter-spacing:.06em; }
  .dashboard-waste-copy > strong { font-size:18px; }
  .dashboard-waste-copy > span { font-size:11px; }
  .dashboard-waste-days { min-width:45px; }
  .dashboard-waste-days b { font-size:28px; }
  .vacation-toolbar { display:grid; grid-template-columns:minmax(0,1fr); }
  .vacation-toolbar > .button { width:100%; }
  .vacation-summary-grid { grid-template-columns:minmax(0,1fr); }
  .vacation-person-card { padding:14px; }
  .vacation-entry { grid-template-columns:3px minmax(0,1fr) auto; gap:10px; padding:12px; }
  .vacation-entry-track { grid-column:1; grid-row:1 / span 2; }
  .vacation-entry-main { grid-column:2 / -1; }
  .vacation-entry-days { grid-column:2; display:flex; flex-wrap:wrap; align-items:baseline; gap:6px; text-align:left; }
  .vacation-entry-days strong { font-size:22px; }
  .vacation-entry .row-actions { grid-column:3; }
  .finance-stats-topline { align-items:stretch; flex-direction:column; }
  .finance-stats-topline .button { width:100%; }
  .finance-period-filter .panel-head { align-items:flex-start; flex-direction:column; }
  .finance-period-row { align-items:stretch; flex-direction:column; gap:11px; }
  .finance-year-field { width:100%; }
  .finance-period-presets { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); justify-content:stretch; }
  .finance-period-presets .button { min-width:0; padding-inline:4px; }
  .finance-month-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .finance-month-choice span { min-height:54px; }
  .finance-period-actions .button { width:100%; }
  .finance-stats-summary .stat-card { min-height:105px; grid-template-columns:1fr; align-content:center; justify-items:center; gap:6px; padding:11px 8px; text-align:center; }
  .finance-stats-summary .stat-icon { width:32px; height:32px; }
  .finance-stats-summary .stat-copy span { min-height:24px; display:grid; place-items:center; font-size:9px; line-height:1.25; }
  .finance-stats-summary .stat-copy strong { font-size:19px; }
  .finance-stats-summary .stat-copy small { font-size:9px; }
  .finance-chart-panel .panel-head { align-items:flex-start; flex-direction:column; }
  .finance-chart-legend { justify-content:flex-start; }
  .finance-quarter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finance-quarter-card { padding:10px; }
  .finance-quarter-card dl div { align-items:flex-start; flex-direction:column; gap:1px; }
  .finance-quarter-card dd { text-align:left; }
  .calendar-controls { gap:8px; }
  .calendar-view-switch a { min-width:0; min-height:42px; padding:6px; }
  .calendar-navigation { grid-template-columns:40px minmax(0,1fr) 40px; gap:5px; }
  .calendar-navigation strong { font-size:13px; }
  .calendar-arrow { width:40px; min-height:40px; }
  .calendar-today { min-height:40px; padding:5px 9px; }
  .calendar-legend { justify-content:center; gap:9px; margin-bottom:10px; font-size:8px; }
  .calendar-week-items .calendar-job > .badge { grid-column:3; justify-self:start; }
  .panel.calendar-month-panel { padding:4px; border-radius:6px; }
  .calendar-month-weekdays span { padding:6px 1px; font-size:8px; letter-spacing:0; }
  .calendar-month-day { min-height:79px; padding:2px; }
  .calendar-month-day > header { min-height:19px; }
  .calendar-month-day > header a { width:19px; height:18px; }
  .calendar-month-day > header time { font-size:9px; }
  .calendar-day-count { min-width:14px; height:14px; padding:0 2px; border:0; background:rgba(255,255,255,.055); font-size:7px; }
  .calendar-month-events { gap:2px; }
  .calendar-month-event { min-height:14px; display:block; padding:2px; border-left-width:2px; border-radius:2px; line-height:1; }
  .calendar-month-event time { display:none; }
  .calendar-month-event span { display:block; font-size:6.8px; line-height:1.15; }
  .quick-note-search { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .quick-note-search .search { grid-column:1 / -1; width:100%; min-width:0; }
  .quick-note-form .panel-head .badge { display:none; }
  .quick-note-card { padding:13px; }
  .quick-note-head { align-items:flex-start; flex-direction:column; }
  .quick-note-meta { width:100%; }
  .quick-note-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .quick-note-actions .button { width:100%; }
  .quick-note-actions form { min-width:0; }
  .quick-note-attachments { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .quick-note-file { grid-column:1 / -1; }
  .quick-note-footer { grid-template-columns:minmax(0,1fr); }
  .quick-note-comment-form { grid-template-columns:minmax(0,1fr); }
  .quick-note-comment-form .button { width:100%; }
  .inspection-grid { grid-template-columns:1fr; }
  body { font-size: 14px; }
  .content { padding-top: 17px; }
  .top-add span { display: none; }
  .top-add { width: 42px; padding: 0; }
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .dashboard-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dashboard-stats .stat-card { min-height: 98px; grid-template-columns: 1fr; align-content: center; justify-items: center; gap: 6px; padding: 10px 7px; text-align: center; }
  .dashboard-stats .stat-copy small { display: none; }
  .dashboard-stats .stat-copy span { font-size: 9px; }
  .dashboard-stats .stat-copy strong { font-size: 24px; }
  .stat-card { min-height: 94px; padding: 12px; gap: 9px; }
  .stat-icon { width: 32px; height: 32px; }
  .stat-copy strong { font-size: 23px; }
  .panel { padding: 14px; }
  .panel-head { align-items: flex-start; }
  .section-heading { align-items: center; }
  .section-heading h2 { font-size: 18px; }
  .panel-head-actions { flex-wrap: wrap; justify-content: flex-end; }
  .job-row { grid-template-columns: 49px 3px minmax(0,1fr); gap: 8px; }
  .job-side { grid-column: 3; justify-items: start; }
  .form-grid, .info-grid { grid-template-columns: 1fr; }
  .form-grid .full, .info-item.full { grid-column: auto; }
  .checkbox-grid { grid-template-columns: 1fr 1fr; }
  .job-schedule-heading { align-items:stretch; flex-direction:column; }
  .job-schedule-heading .button { width:100%; }
  .job-schedule-row { grid-template-columns:minmax(0,1fr) 42px; }
  .job-schedule-row > label:first-child { grid-column:1 / -1; }
  .job-schedule-row > label:nth-child(2) { grid-column:1; }
  .job-schedule-row .icon-btn { grid-column:2; grid-row:2; }
  .photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .form-actions { flex-direction: column-reverse; }
  .form-actions .button { width: 100%; }
  .data-table th:nth-child(3), .data-table td:nth-child(3) { display: none; }
  .toolbar > .form-select { width: 100%; }
  .company-toolbar { display:grid; grid-template-columns:1fr 1fr; }
  .company-toolbar .search { grid-column:1 / -1; width:100%; min-width:0; }
  .company-toolbar .button { width:100%; min-width:0; justify-content:center; }
  .company-role-tabs a { gap:5px; padding:7px 4px; font-size:10px; }
  .company-role-tabs b { min-width:19px; height:19px; padding:0 4px; font-size:9px; }
  .finance-toolbar { display: grid; grid-template-columns: minmax(0,1fr); align-items: stretch; }
  .finance-toolbar > .button { width: 100%; }
  .finance-toolbar-actions { width:100%; display:grid; grid-template-columns:minmax(0,1fr); }
  .finance-toolbar-actions .button { width:100%; }
  .month-switcher { width: 100%; min-width: 0; display: grid; grid-template-columns: 42px minmax(0,1fr) 42px; align-items: end; }
  .month-switcher form { width: 100%; min-width: 0; }
  .month-switcher .form-control { min-width: 0; }
  .finance-analysis-grid { gap: 10px; }
  .trend-panel { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .trend-panel .panel-head { min-width: 500px; }
  .trend-chart { height: 220px; min-width: 500px; }
  .finance-filters .form-select { width: 100%; }
  .history-filters > .form-select { width: 100%; }
  .category-finance-row { align-items: start; }
  .category-finance-row small { line-height: 1.35; }
  .live-update-notice { right: 14px; bottom: max(14px,env(safe-area-inset-bottom)); left: 14px; width: auto; }
}

@media (max-width: 700px) {
  .finance-stats-table { min-width:0; display:block; }
  .finance-stats-table thead { display:none; }
  .finance-stats-table tbody { display:grid; gap:10px; padding-top:12px; }
  .finance-stats-table tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; padding:12px; border:1px solid var(--line); border-radius:7px; background:#0b1118; }
  .finance-stats-table td { min-width:0; display:block; padding:8px 0; border:0; text-align:left; white-space:normal; overflow-wrap:anywhere; }
  .finance-stats-table td:first-child { grid-column:1 / -1; padding:0 0 9px; border-bottom:1px solid var(--line); }
  .finance-stats-table td::before { content:attr(data-label); display:block; margin-bottom:3px; color:var(--muted); font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
  .finance-stats-table td:first-child::before { display:none; }
  .finance-transactions-table,
  .finance-client-table,
  .companies-table,
  .history-table { min-width: 0; display: block; }
  .finance-transactions-table thead,
  .finance-client-table thead,
  .companies-table thead,
  .history-table thead { display: none; }
  .finance-transactions-table tbody,
  .finance-client-table tbody,
  .companies-table tbody,
  .history-table tbody { display: grid; gap: 10px; }
  .finance-transactions-table tr,
  .finance-client-table tr,
  .companies-table tr,
  .history-table tr {
    display: block; padding: 12px; border: 1px solid var(--line); border-radius: 7px; background: #0b1118;
  }
  .finance-transactions-table td,
  .finance-client-table td,
  .companies-table td,
  .history-table td {
    display: block !important; width: 100%; padding: 7px 0; border: 0; text-align: left;
  }
  .finance-transactions-table td::before,
  .finance-client-table td::before,
  .companies-table td::before,
  .history-table td::before {
    content: attr(data-label); display: block; margin-bottom: 3px; color: var(--muted); font-size: 9px; letter-spacing: .09em; text-transform: uppercase;
  }
  .finance-transactions-table td:last-child,
  .finance-client-table td:last-child,
  .companies-table td:last-child,
  .history-table td:last-child { padding-top: 10px; border-top: 1px solid var(--line); }
  .finance-transactions-table .row-actions,
  .finance-client-table .row-actions,
  .companies-table .row-actions,
  .history-table .row-actions { justify-content: flex-end; }
  .finance-transactions-table .icon-btn,
  .companies-table .icon-btn,
  .history-table .icon-btn { min-width: 42px; min-height: 42px; border: 1px solid var(--line); border-radius: 5px; }
}

@media (max-width: 380px) {
  .stats-grid { grid-template-columns: 1fr; }
  .finance-quarter-grid { grid-template-columns:minmax(0,1fr); }
  .finance-month-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .dashboard-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .checkbox-grid, .photo-grid, .quick-note-attachments, .company-role-picker { grid-template-columns: 1fr; }
  .company-toolbar { grid-template-columns:1fr; }
  .company-toolbar .button { grid-column:1; }
  .vehicle-deadlines,.vehicle-card-meta { grid-template-columns:minmax(0,1fr); }
  .login-card { padding: 20px; }
}

/* QUETER CALENDAR WIDE DESKTOP V0.22 */
@media (min-width: 901px) {
  body:has(.calendar-month-panel) .content {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }
}
/* QUETER INSPECTION BOARD V0.24 */
.inspection-toolbar { align-items:stretch; }
.inspection-toolbar .button { white-space:nowrap; }
.inspection-board-topline {
  min-width:0; display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-bottom:12px; padding:12px 14px; border:1px solid rgba(21,155,211,.3);
  border-radius:8px; background:rgba(21,155,211,.055);
}
.inspection-board-topline div { min-width:0; }
.inspection-board-topline strong,.inspection-board-topline span { display:block; }
.inspection-board-topline strong { font-size:13px; letter-spacing:.04em; }
.inspection-board-topline div > span { margin-top:2px; color:var(--muted); font-size:11px; }
.inspection-mobile-tabs { display:none; }
.inspection-board {
  --inspection-stage-color:var(--primary);
  position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px; min-width:0; align-items:stretch;
}
.inspection-stage {
  --inspection-stage-color:var(--primary);
  height:680px; height:clamp(520px,calc(100dvh - 285px),790px); min-width:0; padding:0;
  display:grid; grid-template-rows:auto minmax(0,1fr); overflow:hidden;
  border-top:3px solid var(--inspection-stage-color);
}
.inspection-stage-amber { --inspection-stage-color:var(--amber); }
.inspection-stage-blue { --inspection-stage-color:var(--primary); }
.inspection-stage-violet { --inspection-stage-color:var(--waste-business,#b28bff); }
.inspection-stage-green { --inspection-stage-color:var(--green); }
.inspection-stage-head { min-width:0; padding:14px; background:rgba(255,255,255,.012); }
.inspection-stage-head .panel-title { align-items:flex-start; }
.inspection-stage-head .panel-title > div { min-width:0; }
.inspection-stage-head .panel-title h2,.inspection-stage-head .panel-title small { display:block; }
.inspection-stage-head .panel-title h2 { font-size:14px; line-height:1.25; overflow-wrap:anywhere; }
.inspection-stage-head .panel-title small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.35; }
.inspection-stage-head > .badge { color:var(--inspection-stage-color); border-color:color-mix(in srgb,var(--inspection-stage-color) 42%,transparent); }
.inspection-stage-dot { width:10px; height:10px; margin-top:4px; flex:0 0 auto; border-radius:2px; background:var(--inspection-stage-color); box-shadow:0 0 0 4px color-mix(in srgb,var(--inspection-stage-color) 11%,transparent); }
.inspection-stage-list {
  min-height:0; display:flex; flex-direction:column; gap:10px; padding:12px;
  overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#405263 #0a1016;
}
.inspection-stage-list::-webkit-scrollbar { width:9px; }
.inspection-stage-list::-webkit-scrollbar-track { background:#0a1016; }
.inspection-stage-list::-webkit-scrollbar-thumb { border:2px solid #0a1016; border-radius:9px; background:#405263; }
.inspection-stage-empty {
  min-height:150px; display:grid; place-items:center; align-content:center; gap:10px; padding:20px;
  border:1px dashed var(--line); border-radius:7px; color:var(--muted); text-align:center; font-size:12px;
}
.inspection-stage-empty .icon { width:28px; height:28px; opacity:.55; }
.inspection-board-card {
  position:relative; flex:0 0 auto; padding:14px; border-left:3px solid var(--inspection-stage-color);
  background:linear-gradient(145deg,rgba(255,255,255,.018),transparent 48%),#0b1118;
  transition:transform .14s ease,border-color .14s ease,opacity .14s ease,background .14s ease;
}
.inspection-board-card[draggable="true"] { cursor:grab; }
.inspection-board-card[draggable="true"]:active { cursor:grabbing; }
.inspection-board-card.is-dragging { opacity:.34; transform:scale(.985); }
.inspection-card-head > strong { min-width:0; color:#aebbc7; font-size:11px; letter-spacing:.055em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.inspection-drag-handle { flex:0 0 auto; padding:0 3px; color:#617181; font-size:17px; font-weight:800; line-height:1; letter-spacing:-3px; cursor:grab; }
.inspection-board-card h3 { margin:10px 0 6px; font-size:16px; line-height:1.28; overflow-wrap:anywhere; }
.inspection-card-client { color:#c5d0d9; font-size:12px; }
.inspection-card-meta { min-width:0; display:grid; gap:5px; margin-top:10px; color:var(--muted); font-size:11px; }
.inspection-card-meta span { min-width:0; display:flex; align-items:flex-start; gap:6px; overflow-wrap:anywhere; }
.inspection-card-meta .icon { width:14px; height:14px; margin-top:1px; color:var(--inspection-stage-color); }
.inspection-card-flags { min-height:25px; display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.inspection-card-flags:empty { min-height:0; margin-top:0; }
.inspection-card-flags .badge { min-height:22px; max-width:100%; font-size:10px; overflow:hidden; text-overflow:ellipsis; }
.inspection-card-actions { align-items:center; }
.inspection-card-actions form { margin:0; }
.inspection-card-actions .icon-btn { width:34px; height:34px; padding:6px; border:1px solid var(--line); border-radius:6px; }
.inspection-card-actions .icon-btn.danger { color:#ff8d85; border-color:rgba(227,101,91,.36); background:rgba(227,101,91,.06); }
.inspection-next { color:#8bdcff; border-color:rgba(21,155,211,.36); background:rgba(21,155,211,.08); }
.inspection-stage.is-drop-target {
  border-color:var(--inspection-stage-color);
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--inspection-stage-color) 48%,transparent),0 18px 50px rgba(0,0,0,.3);
}
.inspection-stage.is-drop-target .inspection-stage-list { background:color-mix(in srgb,var(--inspection-stage-color) 6%,transparent); }
.inspection-board.is-saving-stage { pointer-events:none; }
.inspection-board.is-saving-stage::before {
  content:"Zapisywanie zmiany…"; position:absolute; z-index:12; inset:12px; display:grid; place-items:center;
  border:1px solid rgba(21,155,211,.5); border-radius:8px; color:#dff6ff; background:rgba(7,12,17,.78);
  backdrop-filter:blur(3px); font-weight:800; letter-spacing:.05em;
}
.inspection-archive .panel-title > div { min-width:0; }
.inspection-archive .panel-title h2,.inspection-archive .panel-title small { display:block; }
.inspection-archive .panel-title small { margin-top:3px; color:var(--muted); font-size:10px; }
.inspection-archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding-top:14px; }
.inspection-archive-grid .inspection-board-card { --inspection-stage-color:#566473; }

@media (max-width:1239px) and (min-width:901px) {
  .inspection-board { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1100px) and (min-width:901px) {
  .inspection-board { gap:10px; }
  .inspection-stage-head { padding:12px 10px; }
  .inspection-stage-list { padding:10px; }
  .inspection-board-card { padding:12px; }
  .inspection-card-actions .button { padding-inline:8px; font-size:12px; }
}

@media (max-width:900px) {
  .inspection-board-topline { align-items:flex-start; }
  .inspection-board-topline > .badge { flex:0 0 auto; }
  .inspection-mobile-tabs {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; margin-bottom:11px;
    padding:5px; border:1px solid var(--line); border-radius:8px; background:var(--panel);
  }
  .inspection-mobile-tabs button {
    min-width:0; min-height:54px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center;
    gap:5px; padding:7px; border:1px solid transparent; border-radius:6px; color:var(--muted);
    background:transparent; cursor:pointer; font-size:10px; font-weight:750; line-height:1.2; text-align:left;
  }
  .inspection-mobile-tabs button span { min-width:0; overflow-wrap:anywhere; }
  .inspection-mobile-tabs button b { min-width:21px; height:21px; display:grid; place-items:center; padding:0 5px; border:1px solid var(--line); border-radius:99px; font-size:10px; }
  .inspection-mobile-tabs button[aria-selected="true"] { color:var(--text); border-color:rgba(21,155,211,.48); background:rgba(21,155,211,.12); }
  .inspection-board { grid-template-columns:minmax(0,1fr); gap:0; }
  .inspection-board .inspection-stage { display:none; }
  .inspection-board[data-mobile-stage="planned"] [data-inspection-drop-stage="planned"],
  .inspection-board[data-mobile-stage="offer"] [data-inspection-drop-stage="offer"],
  .inspection-board[data-mobile-stage="waiting"] [data-inspection-drop-stage="waiting"],
  .inspection-board[data-mobile-stage="accepted"] [data-inspection-drop-stage="accepted"] { display:grid; }
  .inspection-stage { height:auto; min-height:0; max-height:none; }
  .inspection-stage-list { max-height:none; overflow:visible; }
  .inspection-board-card[draggable="true"] { cursor:default; }
  .inspection-drag-handle { display:none; }
  .inspection-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:600px) {
  .inspection-toolbar .search { flex:1 0 100%; }
  .inspection-toolbar > .button { flex:1 1 calc(50% - 5px); min-width:0; padding-inline:9px; }
  .inspection-board-topline { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:10px 11px; }
  .inspection-board-topline div > span { font-size:10px; }
  .inspection-mobile-tabs button { padding-inline:7px; font-size:10px; }
  .inspection-stage-head { align-items:center; padding:12px; }
  .inspection-stage-head .panel-title small { font-size:9px; }
  .inspection-stage-list { padding:10px; }
  .inspection-board-card { padding:12px; }
  .inspection-card-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .inspection-card-actions .button { width:100%; min-width:0; padding-inline:7px; }
  .inspection-card-actions .icon-btn { width:100%; }
  .inspection-card-actions form { width:100%; }
  .inspection-card-actions form .icon-btn { width:100%; }
  .inspection-archive-grid { grid-template-columns:minmax(0,1fr); }
  .inspection-archive .panel-head { gap:8px; }
}
/* QUETER USER PERMISSIONS V0.25 */

/* Warstwa prezentacji dla kont z prawem wyłącznie do podglądu. Serwer niezależnie
   blokuje każde żądanie zapisu, więc ukrycie kontrolek nie jest jedynym zabezpieczeniem. */
body[data-module-can-edit="0"] main.content form[method="post"],
body[data-module-can-edit="0"] main.content form[method="POST"],
body[data-module-can-edit="0"] main.content a[href*="job_form.php"],
body[data-module-can-edit="0"] main.content a[href*="inspection_form.php"],
body[data-module-can-edit="0"] main.content a[href*="action=new"],
body[data-module-can-edit="0"] main.content a[href*="action=edit"],
body[data-module-can-edit="0"] main.content a[href*="new_service"],
body[data-module-can-edit="0"] main.content a[href*="edit_service"],
body[data-module-can-edit="0"] main.content a[href*="edit="] {
  display: none !important;
}

.users-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.users-toolbar > div { display: grid; gap: 2px; }
.users-toolbar > div strong { font-size: 19px; }
.users-kicker { color: var(--primary); font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.users-group-panel { margin-top: 16px; }
.users-group-panel .panel-title > div { min-width: 0; }
.users-group-panel .panel-title small,
.user-permissions-form .panel-title small { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.users-empty { margin: 18px 0 2px; }
.users-table td { vertical-align: middle; }
.permission-full-access { color: var(--green); white-space: nowrap; }
.permission-summary { display: flex; flex-wrap: wrap; gap: 6px; }
.permission-summary i { min-height: 25px; display: inline-flex; align-items: center; padding: 3px 8px; border: 1px solid rgba(21,155,211,.35); border-radius: 99px; color: #86d4f2; background: rgba(21,155,211,.08); font-size: 11px; font-style: normal; white-space: nowrap; }
.permission-summary i + i { color: #b7c2cb; border-color: var(--line); background: rgba(255,255,255,.025); }

.user-permissions-form { margin-top: 16px; }
.user-account-fields { padding-bottom: 4px; }
.permissions-editor { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.permissions-editor-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.permissions-editor-head > div:first-child > span { color: var(--primary); font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.permissions-editor-head h3 { margin: 3px 0 0; font-size: 19px; }
.permission-legend { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.permission-legend i { min-height: 25px; display: inline-flex; align-items: center; padding: 3px 9px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); background: rgba(255,255,255,.025); font-size: 11px; font-style: normal; }
.permission-legend i.view { color: #8ed7f3; border-color: rgba(21,155,211,.36); background: rgba(21,155,211,.08); }
.permission-legend i.edit { color: #8be09c; border-color: rgba(101,214,124,.38); background: rgba(101,214,124,.08); }
.permissions-admin-note { margin: 12px 0 15px; padding: 10px 12px; border-left: 3px solid var(--primary); color: var(--muted); background: rgba(21,155,211,.055); font-size: 12px; }
.permissions-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.permission-row { min-width: 0; margin: 0; padding: 12px; display: grid; grid-template-columns: minmax(170px,1fr) minmax(270px,1.2fr); align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.018); }
.permission-row legend { min-width: 0; width: 100%; padding: 0; display: flex; align-items: center; gap: 10px; }
.permission-row legend > span:last-child { min-width: 0; }
.permission-row legend strong,
.permission-row legend small { display: block; }
.permission-row legend strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.permission-row legend small { margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.permission-module-icon { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; color: var(--primary); background: rgba(21,155,211,.1); }
.permission-module-icon .icon { width: 18px; height: 18px; }
.permission-options { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; padding: 4px; border: 1px solid var(--line); border-radius: 7px; background: #0b1118; }
.permission-option { min-width: 0; cursor: pointer; }
.permission-option input { position: absolute; opacity: 0; pointer-events: none; }
.permission-option span { min-height: 34px; display: flex; align-items: center; justify-content: center; padding: 5px 7px; border: 1px solid transparent; border-radius: 4px; color: var(--muted); font-size: 11px; font-weight: 700; text-align: center; transition: color .15s ease,border-color .15s ease,background .15s ease; }
.permission-option input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 1px; }
.permission-option input:checked + span { color: #c5cfd7; border-color: #3b4855; background: rgba(255,255,255,.065); }
.permission-view input:checked + span { color: #9fe1f8; border-color: rgba(21,155,211,.54); background: rgba(21,155,211,.14); }
.permission-edit input:checked + span { color: #a1e8af; border-color: rgba(101,214,124,.5); background: rgba(101,214,124,.13); }
.user-permissions-form > .form-actions { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }

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

@media (max-width: 720px) {
  .users-toolbar { align-items: stretch; flex-direction: column; }
  .users-toolbar .button { width: 100%; }
  .users-group-panel { padding: 14px; }
  .users-group-panel .table-wrap { overflow-x: auto; }
  .users-table { min-width: 820px; }
  .permissions-editor-head { align-items: flex-start; flex-direction: column; }
  .permission-legend { justify-content: flex-start; }
  .permission-row { grid-template-columns: 1fr; gap: 10px; padding: 11px; }
  .permission-row legend strong { white-space: normal; }
  .permission-options { width: 100%; }
  .user-permissions-form { padding: 14px; }
}

@media (max-width: 420px) {
  .permission-option span { min-height: 38px; padding-inline: 4px; font-size: 10px; }
}

/* QUETER FINANCE MOBILE AND QUICK PAID V0.26 */

/* Stała rama zapobiega błędnemu, wielokrotnemu zwiększaniu wysokości canvasu
   przez Safari na iOS. Szeroki wykres przewija się wyłącznie poziomo. */
.finance-chart-panel,
.finance-charts-grid,
[data-finance-stats] { min-width: 0; }
.finance-chart-scroll {
  box-sizing: border-box;
  width: 100%;
  height: 322px !important;
  min-height: 322px !important;
  max-height: 322px !important;
  display: block;
  padding-top: 12px;
  overflow-x: auto;
  overflow-y: hidden !important;
  contain: layout;
  touch-action: pan-x pan-y pinch-zoom;
}
.finance-chart-scroll canvas {
  width: auto;
  min-width: 0 !important;
  max-width: none;
  height: 310px !important;
  min-height: 310px !important;
  max-height: 310px !important;
  display: block;
  aspect-ratio: auto !important;
}

/* Szybka zmiana statusu bez otwierania formularza faktury. */
.finance-register-payment { min-width: 0; display: grid; gap: 5px; }
.finance-register-payment-line { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.finance-register-payment > small { display: block; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.finance-mark-paid-form { margin: 0; }
.finance-mark-paid {
  min-height: 29px;
  padding: 4px 8px;
  gap: 5px;
  border-color: rgba(101,214,124,.45);
  color: #9be5aa;
  background: rgba(101,214,124,.08);
  font-size: 10px;
}
.finance-mark-paid:hover { border-color: var(--green); color: #d7f7de; background: rgba(101,214,124,.14); }
.finance-mark-paid b { font-size: 14px; line-height: 1; }

@media (max-width: 600px) {
  .finance-chart-scroll {
    height: 252px !important;
    min-height: 252px !important;
    max-height: 252px !important;
  }
  .finance-chart-scroll canvas {
    height: 240px !important;
    min-height: 240px !important;
    max-height: 240px !important;
  }
  .finance-register-status { align-items: start; }
  .finance-mark-paid { min-height: 32px; }
}


/* QSAFE45: keep controls outside the iPhone status bar, sensor and home areas.
   Apply insets independently of display-mode; browser mode naturally uses zero.
   Add normal spacing to the inset, rather than consuming the normal spacing. */
:root {
  --queter-safe-top: env(safe-area-inset-top, 0px);
  --queter-safe-right: env(safe-area-inset-right, 0px);
  --queter-safe-bottom: env(safe-area-inset-bottom, 0px);
  --queter-safe-left: env(safe-area-inset-left, 0px);
}
.topbar {
  min-height: calc(82px + var(--queter-safe-top));
  padding-top: calc(16px + var(--queter-safe-top));
  padding-left: calc(clamp(18px, 3vw, 38px) + var(--queter-safe-left));
  padding-right: calc(clamp(18px, 3vw, 38px) + var(--queter-safe-right));
  background: #080c11;
}
.topbar .icon-btn, .topbar .top-add {
  min-width: 44px;
  min-height: 44px;
  flex-shrink: 0;
}
.sidebar {
  padding-top: calc(22px + var(--queter-safe-top));
  padding-bottom: calc(22px + var(--queter-safe-bottom));
  padding-left: calc(16px + var(--queter-safe-left));
}
.content {
  padding-left: calc(clamp(18px, 3vw, 38px) + var(--queter-safe-left));
  padding-right: calc(clamp(18px, 3vw, 38px) + var(--queter-safe-right));
  padding-bottom: calc(60px + var(--queter-safe-bottom));
}
.hazard-line {
  margin-left: calc(clamp(18px, 3vw, 38px) + var(--queter-safe-left));
  margin-right: calc(clamp(18px, 3vw, 38px) + var(--queter-safe-right));
}
.login-page {
  padding-top: var(--queter-safe-top);
  padding-left: var(--queter-safe-left);
  padding-right: var(--queter-safe-right);
  padding-bottom: var(--queter-safe-bottom);
}
/* The MFA page has its own inline card spacing. Inset the containing body. */
body:has(> .mfa-wrap) {
  padding-top: var(--queter-safe-top);
  padding-left: var(--queter-safe-left);
  padding-right: var(--queter-safe-right);
  padding-bottom: var(--queter-safe-bottom);
}
@supports (height: 100dvh) {
  .sidebar { height: 100dvh; }
}
@media (max-width: 900px) {
  .topbar { min-height: calc(72px + var(--queter-safe-top)); }
}
