:root {
  --paper: #f8f7f2;
  --canvas: #f0efe9;
  --white: #fff;
  --ink: #292e29;
  --muted: #7b7e74;
  --line: #e5e5dc;
  --accent: #dceaff;
  --green: #397154;
  --soft-green: #e8f2e9;
  --orange: #a26926;
  --soft-orange: #fbefdc;
  --red: #ad5149;
  --blue: #547b9a;
  --radius: 16px;
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
  color: var(--ink);
  font-size: 14px;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--paper);
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button,
a {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:disabled {
  opacity: 0.5;
  cursor: wait;
}
a {
  color: inherit;
  text-decoration: none;
}
button:focus-visible,
a:focus-visible {
  outline: 3px solid #89ac91;
  outline-offset: 3px;
}
svg {
  vertical-align: middle;
}
button svg {
  pointer-events: none;
}
.icon {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 238px;
  background: #eeede6;
  border-right: 1px solid var(--line);
  padding: 26px 18px;
  display: flex;
  flex-direction: column;
  z-index: 20;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 9px 24px;
}
.brand-mark {
  background: var(--ink);
  color: var(--accent);
  font-weight: 800;
  font-size: 29px;
  letter-spacing: -3px;
  width: 45px;
  height: 45px;
  border-radius: 12px;
  padding: 3px 10px;
  position: relative;
}
.brand-mark span {
  position: absolute;
  right: 5px;
  top: 4px;
  font-size: 17px;
}
.brand strong {
  display: block;
  font-size: 16px;
  letter-spacing: -0.6px;
}
.brand small {
  font-size: 9px;
  letter-spacing: 2px;
  color: var(--muted);
}
.side-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.8px;
  color: #919489;
  margin: 24px 14px 10px;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 0;
  background: none;
  width: 100%;
  text-align: left;
  padding: 11px 14px;
  border-radius: 10px;
  color: #64695f;
  margin: 2px 0;
  font-size: 12px;
  font-weight: 500;
}
.nav-item:hover {
  background: #e4e4da;
}
.nav-item.active {
  background: var(--accent);
  color: #31372b;
  font-weight: 650;
}
.nav-item .count {
  margin-left: auto;
  font-size: 10px;
  background: #fff9;
  padding: 2px 6px;
  border-radius: 5px;
}
.sidebar-bottom {
  margin-top: auto;
  padding-top: 24px;
}
.coni {
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -1px;
}
.coni span {
  font-weight: 400;
  font-size: 10px;
  letter-spacing: 0.2px;
  color: var(--muted);
}
.side-footer {
  padding: 16px 14px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #dcded1;
  margin-top: 14px;
}
.workspace {
  margin-left: 238px;
  min-height: 100vh;
}
.topbar {
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 38px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.breadcrumbs {
  font-size: 11px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 12px;
}
.breadcrumbs b {
  font-weight: 500;
  color: var(--ink);
}
.top-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 9px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
  background: #f0f0eb;
  color: #757b6c;
}
.badge:before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 100%;
  background: currentColor;
}
.badge.green {
  background: var(--soft-green);
  color: var(--green);
}
.badge.yellow {
  background: #f5f0c9;
  color: #203f7a;
}
.badge.orange {
  background: var(--soft-orange);
  color: var(--orange);
}
.badge.red {
  background: #f8e6e1;
  color: var(--red);
}
.badge.blue {
  background: #eaf0f5;
  color: var(--blue);
}
.role-select {
  border: 0;
  background: transparent;
  max-width: 145px;
  font-size: 11px;
  color: var(--muted);
}
.avatar {
  background: #dce4d6;
  color: #42513c;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
}
.content {
  padding: 33px 38px 40px;
  max-width: 1640px;
  margin: auto;
}
.page-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
  margin-bottom: 27px;
}
.eyebrow {
  font-size: 9px;
  letter-spacing: 2px;
  font-weight: 650;
  color: var(--muted);
  margin: 0 0 12px;
  text-transform: uppercase;
}
h1 {
  font-size: 29px;
  font-weight: 550;
  letter-spacing: -1.1px;
  line-height: 1.25;
  margin: 0 0 8px;
}
h2 {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.35px;
  margin: 0;
}
h3 {
  font-size: 13px;
  font-weight: 600;
  margin: 0 0 5px;
}
p {
  line-height: 1.6;
}
.muted {
  color: var(--muted);
  font-size: 12px;
  margin: 4px 0;
}
.tiny {
  font-size: 10px;
  color: var(--muted);
}
.btn {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-size: 11px;
  font-weight: 550;
  color: var(--ink);
  white-space: nowrap;
}
.btn:hover {
  background: #eeeee5;
}
.btn.primary {
  background: var(--accent);
  border-color: #dceaff;
}
.btn.dark {
  background: var(--ink);
  color: white;
  border-color: var(--ink);
}
.btn.small {
  padding: 7px 10px;
  font-size: 10px;
}
.btn.ghost {
  border: 0;
  background: transparent;
}
.btn.danger {
  color: var(--red);
}
.btn .icon {
  width: 16px;
  height: 16px;
}
.wide {
  width: 100%;
}
.row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.spread {
  justify-content: space-between;
}
.wrap {
  flex-wrap: wrap;
}
.stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.grid {
  display: grid;
  gap: 20px;
}
.grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid.four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 23px;
}
.stat {
  background: white;
  border: 1px solid var(--line);
  padding: 19px 21px;
  border-radius: 12px;
}
.stat.featured {
  background: var(--ink);
  color: white;
  border-color: var(--ink);
}
.stat-label {
  font-size: 11px;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.stat.featured .stat-label {
  color: #bcc2b4;
}
.stat-label .icon {
  width: 17px;
  height: 17px;
}
.stat-value {
  font-size: 29px;
  font-weight: 550;
  letter-spacing: -1px;
  margin: 16px 0 8px;
}
.stat-note {
  font-size: 9px;
  color: var(--muted);
}
.stat.featured .stat-note {
  color: #c3cbbb;
}
.stat.featured .stat-value {
  color: var(--accent);
}
.card {
  background: white;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.card-pad {
  padding: 23px;
}
.card-head {
  padding: 21px 23px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.card-head .muted {
  font-size: 10px;
}
.card-footer {
  padding: 15px 23px;
  border-top: 1px solid var(--line);
}
.dashboard-main {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(290px, 1fr);
  gap: 22px;
  margin-bottom: 22px;
}
.chart-legend {
  display: flex;
  gap: 14px;
  font-size: 10px;
  color: var(--muted);
}
.dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  background: #a1b99a;
  margin-right: 5px;
}
.dot.yellow {
  background: var(--accent);
}
.chart {
  height: 180px;
  display: flex;
  align-items: flex-end;
  gap: 16px;
  padding: 10px 28px 0;
}
.chart-column {
  height: 100%;
  display: flex;
  flex: 1;
  gap: 4px;
  align-items: flex-end;
  position: relative;
  padding-bottom: 26px;
}
.chart-bar {
  flex: 1;
  max-width: 33px;
  background: #b4c5a9;
  border-radius: 4px 4px 0 0;
  min-height: 3px;
}
.chart-bar.light {
  background: #dceaff;
}
.chart-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 9px;
  color: var(--muted);
}
.chart-note {
  padding: 17px 23px 20px;
  color: var(--muted);
  font-size: 10px;
}
.task-row {
  padding: 17px 23px;
  border-top: 1px solid #eeeee7;
  display: flex;
  align-items: center;
  gap: 13px;
}
.task-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #f2f1e8;
  color: #787c64;
  display: flex;
  align-items: center;
  justify-content: center;
}
.task-row .grow {
  flex: 1;
}
.task-row h3 {
  font-size: 11px;
}
.task-row p {
  font-size: 10px;
  margin: 4px 0;
  color: var(--muted);
}
.arrow {
  color: #999e91;
}
.project-row {
  display: grid;
  grid-template-columns: 1.5fr 1fr 100px 85px;
  align-items: center;
  gap: 20px;
  padding: 17px 23px;
  border-top: 1px solid #eeeee7;
}
.project-row h3 {
  font-size: 11px;
}
.project-row small {
  font-size: 9px;
  color: var(--muted);
}
.progress {
  height: 5px;
  background: #edf0e9;
  border-radius: 8px;
  overflow: hidden;
}
.progress span {
  height: 100%;
  display: block;
  background: #a9b99a;
  border-radius: 8px;
}
.progress.yellow span {
  background: #dceaff;
}
.progress-meta {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  color: var(--muted);
  margin-bottom: 7px;
}
.resource-mini {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 23px;
  border-top: 1px solid #eeeee7;
}
.resource-mini h3 {
  font-size: 11px;
}
.resource-mini .badge {
  margin-left: auto;
}
.resource-art {
  height: 118px;
  background: #f0f1e9;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #525e43;
  position: relative;
}
.resource-art svg {
  width: 138px;
  height: 90px;
  filter: drop-shadow(0 8px 0 #00000009);
}
.resource-art.small {
  width: 42px;
  height: 39px;
  flex-shrink: 0;
  border-radius: 8px;
}
.resource-art.small svg {
  width: 36px;
  height: 32px;
}
.bottom-note {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 23px 0 0;
  font-size: 9px;
  color: #999d91;
}
.toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 0 0 20px;
  flex-wrap: wrap;
}
.tabs {
  display: flex;
  gap: 3px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
  overflow: auto;
}
.tab {
  border: 0;
  background: transparent;
  padding: 12px 16px;
  font-size: 11px;
  color: var(--muted);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.tab.active {
  border-bottom-color: var(--ink);
  color: var(--ink);
  font-weight: 650;
}
.search {
  border: 1px solid var(--line);
  padding: 10px 13px;
  border-radius: 8px;
  background: white;
  min-width: 230px;
}
.table-wrap {
  overflow: auto;
}
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
  text-align: left;
}
th {
  font-size: 9px;
  letter-spacing: 0.5px;
  font-weight: 550;
  text-transform: uppercase;
  color: var(--muted);
  padding: 13px 19px;
  background: #fbfbf8;
  white-space: nowrap;
}
td {
  padding: 16px 19px;
  border-top: 1px solid #eeeee7;
  vertical-align: middle;
}
td strong {
  font-weight: 550;
  display: block;
}
td small {
  font-size: 9px;
  color: var(--muted);
  display: block;
  margin-top: 5px;
}
.text-right {
  text-align: right;
}
.empty {
  padding: 45px 24px;
  text-align: center;
  color: var(--muted);
  font-size: 12px;
}
.project-card {
  padding: 22px;
  cursor: pointer;
  transition: transform 0.15s;
}
.project-card:hover {
  transform: translateY(-3px);
}
.project-card .project-top {
  display: flex;
  justify-content: space-between;
  margin-bottom: 20px;
}
.project-card h2 {
  font-size: 17px;
  margin: 10px 0;
}
.project-card .progress {
  margin: 20px 0 10px;
}
.project-card .project-footer {
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: var(--muted);
}
.back {
  font-size: 11px;
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 18px;
}
.detail-hero {
  padding: 25px;
  background: #eaece0;
  border: 1px solid #dce0ce;
  border-radius: 16px;
  margin-bottom: 24px;
}
.detail-hero h1 {
  margin: 12px 0;
}
.cost {
  font-variant-numeric: tabular-nums;
}
.resource-card {
  padding: 16px;
}
.resource-card h3 {
  font-size: 14px;
  margin-top: 17px;
}
.resource-card .resource-meta {
  font-size: 10px;
  color: var(--muted);
  margin: 7px 0 17px;
}
.resource-card .resource-art .badge {
  position: absolute;
  top: 10px;
  left: 10px;
}
.resource-price {
  font-size: 20px;
  letter-spacing: -0.6px;
}
.resource-price small {
  font-size: 10px;
  color: var(--muted);
  letter-spacing: 0;
}
.calendar-scroll {
  overflow: auto;
}
.calendar {
  min-width: 780px;
  display: grid;
  grid-template-columns: 175px repeat(7, minmax(75px, 1fr));
  font-size: 10px;
}
.cal-cell {
  border-top: 1px solid var(--line);
  border-right: 1px solid #eeeee7;
  min-height: 79px;
  padding: 10px 7px;
  position: relative;
}
.cal-cell.header {
  min-height: 60px;
  text-align: center;
  color: var(--muted);
  border-top: 0;
}
.cal-cell.header strong {
  display: block;
  margin-top: 6px;
  font-size: 17px;
  color: var(--ink);
}
.cal-cell.today {
  background: #f9f8e8;
}
.cal-cell.label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 18px;
  font-weight: 550;
}
.cal-book {
  padding: 8px 7px;
  background: #e6ecdd;
  border-radius: 6px;
  font-size: 9px;
  line-height: 1.6;
  border-left: 2px solid #92a47e;
  margin-bottom: 5px;
  cursor: pointer;
}
.cal-book.rental {
  background: #dceaff;
  border-color: #aac5e8;
}
.cal-book.service {
  background: #ece8ef;
  border-color: #aa91b3;
}
.cal-book.requested {
  background: #fbeddc;
  border-color: #d5a56b;
}
.pos-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr);
  gap: 22px;
}
.pos-products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.pos-product {
  padding: 12px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
  color: var(--ink);
}
.pos-product:hover {
  border-color: #aebc93;
}
.pos-product .resource-art {
  height: 90px;
}
.pos-product h3 {
  margin: 12px 0 8px;
  font-size: 11px;
}
.pos-product .price {
  font-size: 15px;
}
.cart {
  position: sticky;
  top: 20px;
  align-self: start;
}
.cart-lines {
  padding: 0 21px;
  min-height: 100px;
}
.cart-line {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
}
.cart-line .grow {
  flex: 1;
}
.qty {
  display: flex;
  align-items: center;
  gap: 9px;
}
.qty button {
  border: 1px solid var(--line);
  background: white;
  width: 23px;
  height: 23px;
  border-radius: 6px;
}
.cart-total {
  padding: 20px;
}
.cart-total .sum {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -1px;
  margin: 15px 0;
}
.payment-methods {
  display: flex;
  gap: 7px;
  margin-bottom: 15px;
}
.payment-methods button {
  flex: 1;
}
.payment-methods button.selected {
  background: var(--ink);
  color: white;
}
.notice {
  font-size: 11px;
  line-height: 1.7;
  padding: 14px 17px;
  border-radius: 9px;
  background: #f4f2df;
  border: 1px solid #eae6c8;
  color: #203f7a;
  margin-bottom: 20px;
}
.notice.green {
  background: #edf4ea;
  color: #52734a;
  border-color: #d6e6d0;
}
.kanban {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.kanban-col {
  background: #eeefe8;
  border-radius: 12px;
  padding: 14px;
  min-height: 280px;
}
.kanban-title {
  font-size: 10px;
  color: var(--muted);
  margin: 3px 0 16px;
  display: flex;
  justify-content: space-between;
}
.work-card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 12px;
  cursor: pointer;
}
.work-card h3 {
  font-size: 12px;
  line-height: 1.6;
}
.work-card p {
  font-size: 10px;
  color: var(--muted);
}
.work-card .row {
  justify-content: space-between;
  margin-top: 18px;
}
.invoice-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 20px;
}
.invoice-editor input {
  border: 1px solid var(--line);
  padding: 7px 8px;
  border-radius: 5px;
  width: 100%;
  min-width: 70px;
  font-size: 11px;
}
.invoice-editor .desc-input {
  min-width: 220px;
}
.invoice-summary {
  padding: 23px;
  align-self: start;
}
.invoice-summary .total {
  font-size: 30px;
  letter-spacing: -1px;
  margin: 15px 0;
}
.invoice-summary p {
  font-size: 10px;
  color: var(--muted);
}
.list-card {
  padding: 20px;
  display: flex;
  gap: 15px;
  align-items: flex-start;
}
.list-card .grow {
  flex: 1;
}
.list-card p {
  margin: 8px 0;
  font-size: 11px;
  color: var(--muted);
}
.risk-matrix {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
  max-width: 250px;
}
.risk-cell {
  height: 48px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  background: #e7efdc;
  color: #59724b;
}
.risk-cell.medium {
  background: #dceaff;
  color: #203f7a;
}
.risk-cell.high {
  background: #f0d6c8;
  color: #a05a40;
}
.settings-layout {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  gap: 22px;
}
.settings-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.settings-nav button {
  text-align: left;
  padding: 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
}
.settings-nav button.active {
  background: #e9ebdf;
  color: var(--ink);
}
label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 11px;
  font-weight: 550;
  margin: 0 0 16px;
}
input,
select,
textarea {
  border: 1px solid #dddfd4;
  border-radius: 8px;
  padding: 11px;
  background: #fff;
  color: var(--ink);
  width: 100%;
  min-width: 0;
}
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid #d9e1c9;
  outline-offset: 1px;
}
input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--ink);
}
textarea {
  min-height: 92px;
  resize: vertical;
}
.check-label {
  display: flex;
  flex-direction: row;
  align-items: center;
  font-weight: 400;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
.form-grid .full {
  grid-column: 1/-1;
}
.form-footer {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
dialog {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 0;
  max-width: 650px;
  width: calc(100% - 32px);
  max-height: 90vh;
  color: var(--ink);
  box-shadow: 0 30px 100px #0002;
}
dialog::backdrop {
  background: #1d251e66;
  backdrop-filter: blur(3px);
}
.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 26px 18px;
  border-bottom: 1px solid var(--line);
}
.modal-head h2 {
  font-size: 21px;
}
.modal-body {
  padding: 23px 26px 26px;
}
.modal-close {
  border: 0;
  border-radius: 50%;
  width: 29px;
  height: 29px;
  background: #eeefe7;
  font-size: 19px;
}
.error {
  color: var(--red);
  font-size: 12px;
  line-height: 1.6;
}
.form-error:empty {
  display: none;
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translate(-50%, 25px);
  opacity: 0;
  pointer-events: none;
  background: var(--ink);
  color: white;
  padding: 13px 23px;
  border-radius: 10px;
  box-shadow: 0 6px 30px #0002;
  font-size: 12px;
  z-index: 100;
  transition: all 0.2s;
  max-width: 90vw;
}
#toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}
.loading {
  padding: 80px;
  text-align: center;
  color: var(--muted);
}
.login-body {
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background:
    radial-gradient(ellipse at 85% 15%, #e2e7ce, transparent 45%), var(--canvas);
  padding: 25px;
}
.login-card {
  background: var(--paper);
  padding: 45px;
  width: 460px;
  border: 1px solid #e0e1d6;
  border-radius: 22px;
  box-shadow: 0 20px 80px #2932220a;
}
.login-card .brand-mark {
  margin-bottom: 34px;
}
.login-card h1 {
  font-size: 31px;
}
.login-card form {
  margin-top: 28px;
}
.login-foot {
  border-top: 1px solid var(--line);
  margin-top: 30px;
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.site {
  background: #fbfaf5;
  min-height: 100vh;
}
.site-demo {
  background: #e8e8df;
  padding: 9px 5%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
  color: #727867;
}
.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 23px 5%;
  gap: 20px;
}
.site-nav .brand {
  padding: 0;
}
.site-nav-links {
  display: flex;
  align-items: center;
  gap: 26px;
  font-size: 12px;
}
.site-hero {
  margin: 10px 4% 0;
  background: #303b30;
  border-radius: 22px;
  min-height: 430px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  overflow: hidden;
  position: relative;
  color: white;
}
.site-hero-content {
  padding: 60px 7% 55px 9%;
  z-index: 1;
}
.site-hero .eyebrow {
  color: #b5c3aa;
}
.site-hero h1 {
  font-size: 58px;
  line-height: 1.1;
  letter-spacing: -2.5px;
  font-weight: 450;
  margin: 22px 0;
}
.site-hero h1 em {
  font-style: normal;
  color: var(--accent);
}
.site-hero p {
  color: #c3cebc;
  max-width: 370px;
  font-size: 13px;
  line-height: 1.9;
  margin-bottom: 27px;
}
.hero-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 60% 45%, #62725180 0, transparent 60%);
}
.hero-art svg {
  width: 90%;
  height: auto;
  max-height: 360px;
  z-index: 1;
}
.hero-ring {
  position: absolute;
  width: 330px;
  height: 330px;
  border: 1px solid #dce9ac18;
  border-radius: 50%;
}
.hero-ring:after {
  content: "";
  position: absolute;
  inset: 35px;
  border: 1px solid #dce9ac18;
  border-radius: 50%;
}
.hero-chip {
  position: absolute;
  bottom: 35px;
  left: 10px;
  background: #ffffff13;
  border: 1px solid #ffffff20;
  padding: 13px 18px;
  border-radius: 10px;
  font-size: 10px;
  backdrop-filter: blur(8px);
  z-index: 2;
}
.hero-chip strong {
  color: var(--accent);
  font-size: 15px;
  display: block;
  margin-bottom: 5px;
}
.site-trust {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  padding: 30px 7%;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
  color: var(--muted);
}
.site-trust strong {
  color: var(--ink);
  display: block;
  margin-bottom: 5px;
  font-size: 12px;
}
.site-section {
  padding: 50px 6%;
}
.site-section h2 {
  font-size: 29px;
  font-weight: 500;
  letter-spacing: -1px;
}
.site-section .page-head {
  margin-bottom: 25px;
}
.service-tile {
  padding: 25px;
  background: #f0f0e7;
  border-radius: 14px;
  min-height: 170px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.service-tile h3 {
  font-size: 16px;
  margin: 21px 0 5px;
}
.service-tile p {
  font-size: 11px;
  color: var(--muted);
  margin: 0 0 14px;
}
.site-footer {
  padding: 35px 6%;
  background: #e9ebdf;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  font-size: 11px;
}
.site-product .resource-art {
  height: 160px;
}
.site-cart {
  position: fixed;
  right: 25px;
  bottom: 25px;
  z-index: 30;
  box-shadow: 0 10px 35px #0002;
}
.mobile-layout {
  max-width: 600px;
  margin: 0 auto;
}
.mobile-greet {
  background: linear-gradient(120deg, #17345e 0%, #203f7a 72%, #315b59 100%);
  color: white;
  padding: 28px;
  border-radius: 18px;
  margin-bottom: 20px;
}
.mobile-greet h1 {
  font-size: 28px;
  margin: 15px 0;
}
.mobile-greet p {
  color: #e0e8f2;
  font-size: 12px;
}
.quick-actions {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 20px 0;
}
.quick-actions button {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 17px 5px;
  font-size: 9px;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 11px;
}
.mobile-menu {
  display: none;
}
.portal-hero {
  background: #e8ecdc;
  padding: 28px;
  border-radius: 16px;
  margin-bottom: 24px;
}
.portal-hero h1 {
  font-size: 27px;
}
.section-gap {
  margin-top: 24px;
}
.nowrap {
  white-space: nowrap;
}
.role-hint {
  font-size: 10px;
  color: var(--muted);
  margin-left: 6px;
}
.print-doc {
  white-space: pre-wrap;
  font-size: 13px;
  line-height: 1.9;
  background: #f9faf5;
  padding: 24px;
  border-radius: 10px;
}
.checkbox-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-bottom: 1px solid var(--line);
}
.checkbox-row label {
  margin: 0;
  font-weight: 400;
}
.customer-name {
  display: flex;
  align-items: center;
  gap: 12px;
}
.search-results {
  font-size: 11px;
  color: var(--muted);
  margin-bottom: 15px;
}
@media (min-width: 1550px) {
  .content {
    padding-top: 42px;
  }
  .dashboard-main {
    grid-template-columns: 1.8fr 1fr;
  }
  .stat-value {
    font-size: 34px;
  }
}
@media (max-width: 1150px) {
  .sidebar {
    width: 205px;
    padding: 22px 12px;
  }
  .workspace {
    margin-left: 205px;
  }
  .topbar {
    padding: 0 24px;
  }
  .content {
    padding: 28px 24px;
  }
  .top-actions {
    gap: 8px;
  }
  .dashboard-main {
    grid-template-columns: 1.4fr 1fr;
  }
  .grid.three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid.four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pos-products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .project-row {
    grid-template-columns: 1.3fr 1fr 70px;
    gap: 10px;
  }
  .project-row > :last-child {
    display: none;
  }
  .kanban {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .site-hero h1 {
    font-size: 45px;
  }
  .site-nav-links {
    gap: 15px;
  }
  .topbar .breadcrumbs > span:first-child {
    display: none;
  }
}
@media (max-width: 800px) {
  .sidebar {
    width: 230px;
    transform: translateX(-100%);
    transition: transform 0.2s;
    box-shadow: 10px 0 50px #0001;
  }
  .sidebar.open {
    transform: translateX(0);
  }
  .workspace {
    margin-left: 0;
  }
  .mobile-menu {
    display: inline-flex;
  }
  .topbar {
    height: 64px;
    padding: 0 17px;
  }
  .top-actions .top-website,
  .top-actions > .badge {
    display: none;
  }
  .top-actions .role-select {
    max-width: 110px;
  }
  .content {
    padding: 25px 17px;
  }
  .page-head {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  h1 {
    font-size: 26px;
  }
  .stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .stat {
    padding: 16px;
  }
  .stat-value {
    font-size: 27px;
  }
  .dashboard-main {
    grid-template-columns: 1fr;
  }
  .grid.two {
    grid-template-columns: 1fr;
  }
  .project-row {
    padding: 16px;
    grid-template-columns: 1.3fr 1fr;
  }
  .project-row > :nth-child(3) {
    display: none;
  }
  .pos-layout,
  .invoice-layout {
    grid-template-columns: 1fr;
  }
  .cart {
    position: static;
  }
  .settings-layout {
    grid-template-columns: 1fr;
  }
  .settings-nav {
    flex-direction: row;
    overflow: auto;
  }
  .settings-nav button {
    white-space: nowrap;
  }
  .site-nav {
    padding: 20px;
  }
  .site-nav-links {
    gap: 10px;
  }
  .site-nav-links .desktop-only {
    display: none;
  }
  .site-hero {
    grid-template-columns: 1fr;
    margin: 0 15px;
  }
  .site-hero-content {
    padding: 35px 28px 15px;
  }
  .site-hero h1 {
    font-size: 43px;
  }
  .hero-art {
    height: 260px;
  }
  .hero-art svg {
    width: 65%;
    height: 230px;
  }
  .hero-ring {
    width: 240px;
    height: 240px;
  }
  .hero-chip {
    bottom: 16px;
    left: 25px;
  }
  .site-trust {
    grid-template-columns: repeat(2, 1fr);
    padding: 25px;
  }
  .site-section {
    padding: 30px 20px;
  }
  .site-section h2 {
    font-size: 25px;
  }
  .site-footer {
    gap: 20px;
    align-items: flex-start;
  }
  .invoice-summary {
    order: -1;
  }
  .bottom-note {
    font-size: 8px;
  }
  .kanban {
    gap: 10px;
  }
  .resource-price {
    font-size: 18px;
  }
  .resource-card {
    padding: 12px;
  }
  .grid {
    gap: 13px;
  }
  .site-demo {
    padding: 9px 15px;
  }
  .login-card {
    padding: 30px;
  }
  .brand strong {
    font-size: 14px;
  }
}
@media (max-width: 480px) {
  .form-grid {
    grid-template-columns: 1fr;
  }
  .grid.three {
    grid-template-columns: 1fr;
  }
  .grid.four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .kanban {
    grid-template-columns: 1fr;
  }
  .stat-label {
    font-size: 10px;
  }
  .stat-note {
    font-size: 8px;
  }
  .resource-art {
    height: 100px;
  }
  .site-nav .brand small {
    font-size: 8px;
  }
  .site-nav-links .btn {
    padding: 8px;
    font-size: 10px;
  }
  .site-hero h1 {
    font-size: 40px;
  }
  .page-head .row {
    flex-wrap: wrap;
  }
  .modal-head,
  .modal-body {
    padding: 20px;
  }
  .card-head {
    padding: 18px;
  }
  .task-row {
    padding: 16px 18px;
  }
  .site-footer {
    flex-direction: column;
  }
  .cal-cell {
    min-height: 76px;
  }
}

.sidebar {
  overflow-y: auto;
}
.sidebar > * {
  flex-shrink: 0;
}
.site-hero .btn.ghost {
  color: #e4e9dc;
}
.site-hero .btn.ghost:hover {
  background: #ffffff10;
}

/* Higgsfield assets: generated icon masks + individual equipment illustrations. */
.toolbar .search {
  width: min(100%, 340px);
  flex: 0 1 340px;
}
.icon {
  display: inline-block;
  background-color: currentColor;
  mask: var(--icon-url) center / contain no-repeat;
  -webkit-mask: var(--icon-url) center / contain no-repeat;
  vertical-align: middle;
}
.resource-art {
  height: 170px;
  background: #e9e9df;
  border-radius: 11px;
  isolation: isolate;
}
.resource-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: normal;
  transition: transform 0.22s ease;
}
.resource-art.placeholder {
  color: #8a927e;
}
.resource-art.placeholder .icon {
  width: 38px;
  height: 38px;
}
.resource-card {
  padding: 17px;
  display: flex;
  flex-direction: column;
}
.resource-card h3 {
  font-size: 15px;
  line-height: 1.5;
  margin-top: 14px;
  letter-spacing: -0.2px;
}
.resource-card .resource-meta {
  font-size: 11px;
  line-height: 1.65;
  margin-bottom: 20px;
}
.resource-card > .row:last-child {
  margin-top: auto;
  padding-top: 2px;
}
.resource-card .tiny {
  font-size: 10px;
}
.resource-card .btn.small {
  min-height: 34px;
  padding: 8px 12px;
  font-size: 11px;
}
.resource-card .resource-price {
  font-size: 21px;
  font-variant-numeric: tabular-nums;
}
.resource-art.small {
  width: 48px;
  height: 45px;
  border-radius: 8px;
}
.resource-mini .resource-art.small {
  width: 48px;
  height: 45px;
}
.pos-product .resource-art {
  height: 120px;
}
.pos-product:hover .resource-art img {
  transform: scale(1.045);
}
.site-product .resource-art {
  height: 200px;
}
.site-product .resource-price {
  font-size: 21px;
}
.nav-item {
  gap: 11px;
}
.nav-item .icon {
  width: 21px;
  height: 21px;
  opacity: 0.85;
}
.nav-item.active .icon {
  opacity: 1;
}
.btn:not(.ghost) {
  transition:
    background 0.15s,
    border-color 0.15s,
    box-shadow 0.15s;
}
.btn.primary:hover {
  background: #dceaff;
  border-color: #aac5e8;
  box-shadow: 0 2px 8px #504a0c0a;
}
@media (max-width: 800px) {
  .resource-art {
    height: 164px;
  }
  .resource-card {
    padding: 14px;
  }
  .resource-card h3 {
    font-size: 14px;
  }
  .resource-card .resource-meta {
    font-size: 10px;
  }
  .resource-card .resource-price {
    font-size: 19px;
  }
  .resource-card .btn.small {
    padding: 8px 10px;
    font-size: 10px;
  }
}
@media (max-width: 480px) {
  .toolbar .search {
    flex-basis: 100%;
  }
  .grid.four {
    grid-template-columns: 1fr;
  }
  .resource-card .resource-art {
    height: 200px;
  }
  .resource-card h3 {
    font-size: 16px;
  }
  .resource-card .resource-meta {
    font-size: 12px;
  }
  .resource-card .resource-price {
    font-size: 23px;
  }
  .resource-card .btn.small {
    font-size: 12px;
    padding: 10px 16px;
  }
  .pos-product .resource-art {
    height: 116px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .resource-art img {
    transition: none;
  }
}

/* Web orders: processing queue, login recap and customer timeline. */
.order-login-notice {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  margin-bottom: 26px;
  background: #edf2e1;
  border: 1px solid #d8e2c7;
  border-radius: 12px;
}
.order-login-notice .grow {
  flex: 1;
}
.order-login-notice strong {
  font-size: 13px;
  font-weight: 600;
}
.order-login-notice p {
  font-size: 11px;
  color: var(--muted);
  margin: 5px 0 0;
}
.order-bell {
  position: relative;
  min-width: 34px;
}
.order-bell-count {
  background: var(--ink);
  color: var(--accent);
  border-radius: 10px;
  font-size: 9px;
  min-width: 16px;
  padding: 2px 4px;
  position: absolute;
  right: 0;
  top: 0;
}
.order-filters {
  display: flex;
  gap: 4px;
  overflow: auto;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--line);
}
.order-filters .tab span {
  background: #e9ebe3;
  border-radius: 5px;
  margin-left: 4px;
  padding: 2px 5px;
  font-size: 9px;
}
.order-overdue {
  color: var(--red);
  font-weight: 600;
}
.order-address {
  background: #f3f4ec;
  border-radius: 10px;
  padding: 16px 18px;
  margin: 20px 0;
}
.order-address p {
  font-size: 12px;
  margin: 8px 0 0;
}
.order-timeline {
  list-style: none;
  padding: 0 0 0 13px;
  margin: 18px 0;
  border-left: 1px solid #d9dfd0;
}
.order-timeline li {
  padding: 0 0 18px 12px;
  position: relative;
}
.order-timeline li:before {
  content: "";
  position: absolute;
  left: -17px;
  top: 4px;
  width: 7px;
  height: 7px;
  background: #a5b693;
  border: 2px solid white;
  border-radius: 50%;
}
.order-timeline strong {
  display: block;
  font-size: 12px;
  font-weight: 550;
}
.order-timeline span {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-top: 5px;
}
.order-pack-list {
  margin: 18px 0;
  background: #f4f5ee;
  padding: 16px;
  border-radius: 10px;
}
.order-pack-list label {
  margin: 8px 0;
  padding: 5px 0;
  line-height: 1.6;
}
.order-pack-list input {
  flex-shrink: 0;
}
@media (max-width: 800px) {
  .order-login-notice {
    flex-wrap: wrap;
  }
  .order-login-notice .grow {
    min-width: 190px;
  }
  .order-login-notice .btn.primary {
    margin-left: 48px;
  }
  .topbar .breadcrumbs > span {
    display: none;
  }
}
@media (max-width: 480px) {
  .top-actions > .avatar {
    display: none;
  }
  .order-login-notice {
    padding: 15px;
  }
  .order-login-notice .grow {
    min-width: 170px;
  }
  .order-filters .tab {
    padding: 11px 10px;
  }
}
/* Project estimate workspace */
.estimate-workspace { max-width: 1500px; margin: 0 auto; }
.estimate-workspace .page-head { margin-top: 14px; }
.estimate-workspace #estimate-editor-form > .card:first-child label { flex: 1; max-width: 600px; }
.estimate-line { padding: 22px 0; border-top: 1px solid var(--line, #e4e5dc); margin-top: 16px; }
.estimate-line-main { display: grid; grid-template-columns: minmax(250px,2fr) minmax(115px,.7fr) minmax(135px,1fr) minmax(135px,1fr) 40px; gap: 14px; align-items: start; }
.estimate-line-main label, .estimate-line-prices label { display: flex; flex-direction: column; gap: 7px; font-size: 12px; font-weight: 600; min-width: 0; }
.estimate-line-main input, .estimate-line-main select, .estimate-line-prices input { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #d7dacd; border-radius: 9px; font: inherit; font-size: 14px; background: #fff; color: #303b2e; box-sizing: border-box; }
.estimate-line-main select { font-weight: 600; }
.estimate-identity small { font-size: 12px; font-weight: 400; color: #6a7365; white-space: normal; }
.estimate-line-prices { display: grid; grid-template-columns: repeat(4,minmax(100px,1fr)); gap: 14px; align-items: end; margin-top: 14px; padding: 15px; background: #f5f6ef; border-radius: 10px; }
.estimate-line-prices input[readonly] { background: #edf0e5; border-color: transparent; }
.estimate-line-total { display: flex; flex-direction: column; gap: 9px; padding-bottom: 10px; }
.estimate-line-total span { font-size: 12px; color: #687161; }
.estimate-line-total strong { font-size: 17px; }
.estimate-remove { margin-top: 21px; font-size: 21px; }
.estimate-line.other .estimate-line-main { grid-template-columns: minmax(240px,3fr) minmax(120px,1fr) 40px; }
.estimate-savebar { position: sticky; bottom: 12px; z-index: 4; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 24px; padding: 18px 24px; background: #fff; border: 1px solid #d8ddce; border-radius: 14px; box-shadow: 0 6px 25px #26382018; }
.estimate-savebar small { display: block; color: #72796a; margin-top: 5px; }
.resource-timeline-scroll { overflow-x: auto; margin-top: 22px; border: 1px solid #e1e5d8; border-radius: 10px; }
.resource-timeline { min-width: max(100%, calc(230px + var(--periods) * 100px)); }
.resource-timeline-row { display: grid; grid-template-columns: 230px repeat(var(--periods),minmax(100px,1fr)); }
.resource-timeline-head { background: #f4f5ed; color: #5b6852; font-size: 12px; }
.resource-timeline-head > * { padding: 14px; border-bottom: 1px solid #dfe3d4; }
.resource-timeline-head small { display: block; font-size: 10px; margin-top: 4px; }
.resource-timeline-name { position: sticky; left: 0; z-index: 2; background: #fff; padding: 18px 14px; border-right: 1px solid #dfe3d4; border-bottom: 1px solid #e6e9df; }
.resource-timeline-name strong { display: block; margin: 9px 0 6px; font-size: 13px; white-space: normal; }
.resource-timeline-name small { display: block; color: #717b68; }
.resource-timeline-cell { position: relative; min-height: 115px; display: flex; justify-content: center; align-items: center; flex-direction: column; border-right: 1px solid #e6e9df; border-bottom: 1px solid #e6e9df; overflow: hidden; }
.resource-timeline-cell > strong, .resource-timeline-cell > span, .resource-timeline-cell > small { z-index: 1; position: relative; font-size: 12px; }
.resource-timeline-cell > small { color: #9a4b20; font-size: 10px; margin-top: 7px; }
.resource-load { position: absolute; bottom: 0; left: 8px; right: 8px; background: #d8e7c8; border-radius: 7px 7px 0 0; }
.machine .resource-load { background: #dceaff; }
.resource-timeline-cell.overload { box-shadow: inset 0 0 0 2px #bd7840; }
@media (max-width: 1050px) {
  .estimate-line-main { grid-template-columns: minmax(220px,2fr) minmax(110px,1fr) 40px; }
  .estimate-line-main .estimate-identity { grid-column: 1; }
  .estimate-line-main .estimate-remove { grid-column: 3; grid-row: 1; }
  .estimate-line-main label:nth-child(3), .estimate-line-main label:nth-child(4) { grid-row: 2; }
}
@media (max-width: 650px) {
  .estimate-line-main, .estimate-line.other .estimate-line-main { grid-template-columns: minmax(0,1fr) minmax(0,1fr) 32px; gap: 10px; }
  .estimate-line-main .estimate-identity { grid-column: 1 / 3; }
  .estimate-line-main label:nth-child(2) { grid-row: 2; }
  .estimate-line-main label:nth-child(3) { grid-row: 3; grid-column: 1; }
  .estimate-line-main label:nth-child(4) { grid-row: 3; grid-column: 2; }
  .estimate-line-prices { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .estimate-savebar { flex-direction: column; align-items: stretch; padding: 14px; bottom: 0; }
  .estimate-savebar .row { flex-wrap: wrap; }
  .resource-timeline-row { grid-template-columns: 180px repeat(var(--periods),100px); }
}
.invoice-pricing-layout { grid-template-columns: minmax(0,1fr); }
.invoice-pricing-layout .invoice-editor { min-width: 0; }
.invoice-pricing-layout .invoice-editor table { min-width: 1050px; }
.invoice-pricing-layout .invoice-editor input { min-width: 75px; width: 100%; }
.invoice-pricing-layout .invoice-editor .desc-input { min-width: 220px; }
.invoice-pricing-layout .invoice-editor input[readonly] { background: #f1f3e9; border-color: transparent; }
.invoice-pricing-layout .invoice-editor input[disabled] { background: #f1f3e9; color: #818873; }
.invoice-pricing-layout .invoice-summary { max-width: 480px; width: 100%; justify-self: end; box-sizing: border-box; }
/* Availability calendar, followed by booking details. */
dialog.rental-picker { width: min(760px, calc(100vw - 28px)); max-width: 760px; }
.rental-picker .modal-body { padding-top: 18px; }
.rental-picker-controls { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; margin-bottom: 12px; }
.rental-month-head { display: flex; align-items: center; justify-content: space-between; margin: 20px 0 14px; }
.rental-month-head h3 { text-transform: capitalize; }
.rental-weekdays, .rental-days { display: grid; grid-template-columns: 36px repeat(7,minmax(0,1fr)); gap: 5px; }
.rental-weekdays { text-align: center; font-size: 12px; color: #6b7561; margin-bottom: 8px; }
.rental-day { min-height: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; background: #f0f5e7; color: #34432e; border: 1px solid #d9e4c9; border-radius: 8px; cursor: pointer; font: inherit; }
.rental-day strong { font-size: 15px; }
.rental-day small { font-size: 9px; }
.rental-day:hover:not(:disabled) { border-color: #4c6840; background: #dce9ca; }
.rental-day:focus-visible { outline: 3px solid #506c3e; outline-offset: 1px; }
.rental-day.busy, .rental-day:disabled { background: repeating-linear-gradient(135deg,#f0ece7,#f0ece7 5px,#e8e1d9 5px,#e8e1d9 7px); border-color: #ded4ca; color: #8f7565; cursor: not-allowed; }
.rental-day.outside { opacity: .55; }
.rental-day.selected { color: #29351f; background: #dceaff; border-color: #aac5e8; opacity: 1; cursor: grab; }
.rental-day.selected:hover { background: #dceaff; }
.rental-legend { display: flex; gap: 20px; flex-wrap: wrap; margin: 16px 0; font-size: 11px; color: #68725e; }
.rental-legend span { display: inline-flex; align-items: center; gap: 7px; }
.rental-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; border: 1px solid #cbd1bf; }
.rental-legend .available { background: #e5efd7; }.rental-legend .busy { background: #e8e1d9; }.rental-legend .selected { background: #dceaff; }
.rental-selection { padding: 15px; border-radius: 10px; background: #f3f4e9; font-size: 13px; }
.rental-selection .tiny { margin-bottom: 0; }
@media(max-width:550px) { .rental-picker-controls { grid-template-columns: 1fr; gap: 10px; }.rental-day { min-height: 50px; }.rental-day small { font-size: 8px; }.rental-days { gap: 3px; }.rental-picker .modal-body { padding: 16px; } }
.mobile-datebar { display: grid; grid-template-columns: 48px 1fr 48px; gap: 12px; margin: 18px 0; }
.mobile-datebar input, .mobile-preview select { width: 100%; padding: 12px; border: 1px solid #d6ddca; border-radius: 10px; background: #fff; font: inherit; }
.mobile-preview { display: block; font-size: 12px; color: #66745a; margin: 16px 0; }
.mobile-preview select { margin-top: 7px; }
.mobile-day { max-width: 800px; }
.mobile-day-grid { max-height: 440px; overflow-y: auto; border: 1px solid #dfe5d7; border-radius: 10px; margin-top: 18px; }
.mobile-hour { display: grid; grid-template-columns: 60px 1fr; border-bottom: 1px solid #e8ebdf; min-height: 40px; }
.mobile-hour > span { padding: 10px 8px; font-size: 11px; color: #78816d; background: #f7f8f1; }
.mobile-time-block { padding: 12px; margin: 4px; background: #e5efd8; border-left: 4px solid #77905e; border-radius: 7px; }
.mobile-time-block small { display: block; margin-top: 6px; }
.mobile-time-block p { margin: 7px 0 0; font-size: 12px; }
.mobile-hour { height: 48px; min-height: 48px; box-sizing: border-box; }
.mobile-hour > div { position: relative; }
.mobile-time-block { position: absolute; left: 0; right: 0; margin: 0 4px; box-sizing: border-box; z-index: 2; overflow: hidden; }
.winter-builder { margin-top: 24px; }
.stat-link[aria-current="page"] { border-color:#203f7a; box-shadow:0 0 0 2px #203f7a22; }
.winter-assembly { display:grid; grid-template-columns:1fr 1.6fr 1fr; align-items:end; gap:12px; padding:32px 0; }
.winter-slot { display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:10px; min-width:0; min-height:245px; border:2px dashed #b6c2c5; border-radius:16px; background:#f8fafb; padding:16px 12px; cursor:pointer; font:inherit; color:inherit; }
.winter-slot img { width:100%; height:150px; object-fit:contain; opacity:.2; filter:grayscale(1); }
.winter-slot.filled { border-style:solid; background:#fff; }
.winter-slot.filled img { opacity:1; filter:none; }
.winter-slot[data-winter-slot="tractor"] img,.winter-choice img[src$="tractor.png"] { transform:scaleX(-1); }
.winter-slot[data-winter-slot="rear"] img[src$="blade.png"] { transform:scaleX(-1); }
.winter-slot.active { border-color:#067eaa; box-shadow:0 0 0 3px #067eaa16; }
.winter-slot.busy { border-color:#c36931; }
.winter-slot small,.winter-choice small { font-size:11px; color:#69757a; }
.winter-slot-label { font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:#63737b; }
.winter-builder-bottom { display:grid; grid-template-columns:2fr 1fr; gap:28px; border-top:1px solid #e2e8eb; padding-top:24px; }
.winter-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-top:14px; }
.winter-choice { border:1px solid #dce4e7; background:#fff; border-radius:12px; padding:12px; cursor:pointer; text-align:left; display:flex; flex-direction:column; gap:8px; color:inherit; font:inherit; }
.winter-choice img { width:100%; height:90px; object-fit:contain; }
.winter-choice.selected { border-color:#067eaa; background:#eef8fc; }
.winter-choice:disabled { opacity:.5; cursor:not-allowed; }
.winter-build-summary { padding:20px; border-radius:12px; background:#f2f7f9; }
.winter-build-summary label { display:block; margin:14px 0; font-size:12px; }
.winter-build-summary input { display:block; width:100%; padding:10px; border:1px solid #cad7dc; border-radius:7px; margin-top:6px; box-sizing:border-box; background:#fff; font:inherit; }
.winter-calendar { overflow:auto; }
.winter-calendar td:first-child { min-width:270px; }
.winter-calendar td { min-width:105px; }
@media(max-width:700px) { .winter-assembly { gap:6px; }.winter-slot { padding:10px 6px; min-height:200px; font-size:11px; }.winter-slot img { height:95px; }.winter-slot small { font-size:9px; }.winter-builder-bottom { grid-template-columns:1fr; } }

/* Clear availability states, with text labels as well as colour. */
.rental-day { background: #d5f3df; border: 1px solid #348454; color: #174c2c; }
.rental-day strong span { font-size: 10px; font-weight: 500; }
.rental-day small { font-weight: 600; }
.rental-day:hover:not(:disabled) { background: #b4e6c5; border-color: #195c33; }
.rental-day.busy { background: repeating-linear-gradient(135deg,#fce0de,#fce0de 6px,#f5cfcc 6px,#f5cfcc 9px); border-color: #b94d45; color: #822b25; opacity: 1; }
.rental-day.past { background: #eee; border-color: #ccc; color: #686868; }
.rental-day.selected, .rental-day.selected:hover { background: #225cad; border-color: #153e77; color: white; }
.rental-day.is-today { box-shadow: inset 0 0 0 2px currentColor; }
.rental-legend .available { background: #d5f3df; border-color: #348454; }
.rental-legend .busy { background: repeating-linear-gradient(135deg,#fce0de,#fce0de 3px,#f5cfcc 3px,#f5cfcc 5px); border-color: #b94d45; }
.rental-legend .selected { background: #225cad; border-color: #153e77; }
.rental-month-head { gap: 12px; flex-wrap: wrap; }
.rental-month-head h3 { font-size: 14px; }
@media(max-width:550px) { .rental-day strong { font-size: 12px; }.rental-day strong span { display: block; font-size: 9px; }.rental-day { min-height: 64px; } }

.rental-day.busy.selected, .rental-day.busy.selected:hover { background: repeating-linear-gradient(135deg,#fce0de,#fce0de 6px,#f1b7b2 6px,#f1b7b2 9px); color:#78231e; border:3px solid #a52c24; box-shadow:inset 0 0 0 1px white; cursor:pointer; }
.rental-day.busy:not(:disabled) { cursor:pointer; }
.rental-day small { white-space:normal; text-align:center; }
.shop-sales-chart { display:flex; align-items:flex-end; gap:18px; overflow-x:auto; padding:24px; min-height:210px; }
.shop-sales-bar { min-width:68px; display:flex; flex-direction:column; align-items:center; gap:9px; font-size:11px; }
.shop-sales-bar>div { width:36px; background:#536d47; border-radius:5px 5px 0 0; }
/* Brand identity and keyboard-accessible dashboard shortcuts. */
.stat-link { display:block; text-decoration:none; color:inherit; transition:transform .15s,box-shadow .15s; }
.stat-link:hover { transform:translateY(-2px); box-shadow:0 5px 18px #203f7a18; }
.stat-link:focus-visible { outline:3px solid #203f7a; outline-offset:4px; }
.stat-link-arrow { float:right; font-size:16px; }
.brand-logo { display:block; width:180px; height:auto; object-fit:contain; }
.sidebar .brand-logo { width:174px; }
.site-nav .brand-logo { width:205px; }
.site-footer .brand-logo { width:205px; background:#fff; padding:12px; border-radius:8px; }
.login-logo { width:240px; max-width:100%; margin:0 auto 25px; }
.site-hero { background:#17345e; grid-template-columns: .95fr 1.15fr; min-height:470px; }
.site-hero-content { padding:64px 6% 60px 10%; }
.site-hero .eyebrow { color:#c5dbbb; letter-spacing:1.5px; }
.site-hero h1 em { color:#b9db9d; }
.site-hero p { color:#e0e8f2; }
.site-hero .btn.primary { background:#c4e0ad; border-color:#c4e0ad; color:#193b2c; }
.site-hero .hero-art { background:#17345e; position:relative; min-height:420px; }
.site-hero-image { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:60% center; }
.site-hero .hero-art::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#17345e 0%,transparent 25%),linear-gradient(0deg,#10294e66,transparent 50%); pointer-events:none; }
.site-hero .hero-chip { z-index:1; left:8%; bottom:26px; background:#102c50d9; border:1px solid #c5dbbb55; color:white; backdrop-filter:blur(8px); }
.site-hero .hero-chip strong { color:#d0e7bf; }
.site-nav-links .btn.dark { background:#203f7a; }
@media(max-width:800px) { .site-nav .brand-logo { width:165px; }.site-hero { grid-template-columns:1fr; }.site-hero-content { padding:36px 8%; }.site-hero .hero-art { min-height:300px; }.site-hero .hero-art::after { background:linear-gradient(180deg,#17345e,transparent 25%); }.site-hero-image { object-position:center; } }
@media(max-width:480px) { .site-nav .brand-logo { width:130px; }.site-nav { gap:12px; flex-wrap:wrap; }.site-nav-links { flex-wrap:wrap; justify-content:flex-start; }.site-hero .hero-chip { left:6%; right:6%; }.site-hero .hero-art { min-height:260px; } }
.site-shortcut { font:inherit; text-align:left; color:inherit; border:0; background:transparent; padding:8px; border-radius:8px; cursor:pointer; }
.site-shortcut:hover { background:#203f7a09; }
.site-shortcut:focus-visible { outline:3px solid #203f7a; outline-offset:3px; }
/* Stock warnings use contrasting colour, symbols and explicit labels. */
.stock-badge { display:inline-flex; align-items:center; gap:5px; padding:6px 9px; border:1px solid; border-radius:6px; font-size:11px; font-weight:650; line-height:1.4; white-space:normal; }
.stock-available { background:#e3f2e6; color:#21542e; border-color:#95b89d; }
.stock-low { background:#dceaff; color:#713900; border-color:#ac5900; border-left:4px solid #ac5900; }
.stock-empty { background:#ffe1de; color:#86251e; border-color:#ae3930; border-left:4px solid #ae3930; }
.pos-product .stock-badge { font-size:10px; padding:4px 6px; }

.mobile-greet .eyebrow { color: #c5dbbb; }
.mobile-greet .badge.green { background: #d0e7bf; color: #193b2c; }
.mobile-greet .icon { color: #c5dbbb; }

.rental-week-number { display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:650; color:#203f7a; background:#e8edf4; border-radius:6px; }
@media(max-width:550px) { .rental-weekdays, .rental-days { grid-template-columns:25px repeat(7,minmax(0,1fr)); }.rental-weekdays>span:first-child { font-size:9px; }.rental-week-number { font-size:11px; } }
.delivery-panel { background:#edf2f8; border:1px solid #bccbdf; border-radius:10px; padding:16px; margin:16px 0; }
.delivery-panel[hidden] { display:none; }
.delivery-results { display:grid; gap:4px; margin:8px 0; }
.delivery-address { background:white; border:1px solid #b5c6dd; border-radius:6px; text-align:left; padding:12px; font:inherit; color:#17345e; cursor:pointer; }
.delivery-address:hover,.delivery-address:focus-visible { background:#dce7f5; outline:2px solid #203f7a; }
.rental-picker[open] { display:flex; flex-direction:column; overflow:hidden; }
.rental-picker .modal-head { flex-shrink:0; }
.rental-picker .modal-body { overflow-y:auto; min-height:0; flex:1 1 auto; }
.rental-rate-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:20px; }
.rental-rate { border:1px solid #b9c8dc; background:#f2f5f9; color:#17345e; padding:10px 6px; border-radius:9px; font:inherit; display:grid; gap:5px; text-align:center; cursor:pointer; }
.rental-rate strong { font-size:16px; }.rental-rate small { font-size:10px; }
.rental-rate.active { background:#203f7a; border-color:#203f7a; color:white; }
.rental-rate:disabled { cursor:default; opacity:1; }.rental-rate:focus-visible { outline:3px solid #4b7737; outline-offset:2px; }
.rental-live-price { flex-shrink:0; background:#f1f6ec; border-top:2px solid #5e844c; padding:14px 26px; }
.rental-price-total { display:flex; justify-content:space-between; gap:14px; align-items:center; }
.rental-price-total>div { display:grid; gap:4px; }.rental-price-total strong { color:#17345e; font-size:24px; }.rental-price-total small { color:#465b3c; font-size:11px; }
.rental-price-lines { font-size:12px; margin-top:8px; max-height:18vh; overflow-y:auto; }.rental-price-lines summary { cursor:pointer; }.rental-price-lines .row { padding-top:7px; }
@media(max-width:550px) { .rental-rate-cards { gap:4px; }.rental-rate strong { font-size:12px; }.rental-rate { padding:8px 3px; font-size:11px; }.rental-live-price { padding:12px 16px; }.rental-price-total strong { font-size:20px; } }
.scanner-field { display:block; max-width:450px; margin-bottom:16px; padding:12px; border:1px solid #b9c8dc; background:#edf2f8; border-radius:9px; }
.workshop-board .kanban-col { max-height:240px; overflow-y:auto; }
.workshop-board .work-card { cursor:pointer; }.workshop-board .work-card.selected { border:2px solid #203f7a; background:#edf2f8; }
.workshop-order-layout { display:grid; grid-template-columns:minmax(300px,1fr) minmax(380px,1.2fr); gap:20px; align-items:start; }
#workshop-order-panel { scroll-margin-top:20px; }
.workshop-part-qty { min-width:60px; max-width:75px; }
.workshop-used-part { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 0; border-bottom:1px solid #e3e6df; }
.workshop-used-part.returned { color:#6c7465; background:#f6f7f3; }
#workshop-parts-results { max-height:420px; overflow:auto; margin-top:12px; }
#workshop-parts-results .btn { margin-top:5px; }
@media(max-width:1150px) { .workshop-order-layout { grid-template-columns:minmax(0,1fr); } }
.equipment-timeline { min-width:1050px; font-size:11px; }
.equipment-timeline-head,.equipment-timeline-row { display:grid; grid-template-columns:175px minmax(0,1fr); }
.equipment-timeline-head { border-bottom:1px solid var(--line); }
.equipment-resource-label { display:flex; align-items:center; gap:9px; padding:14px; border-right:1px solid var(--line); background:white; }
.equipment-resource-label strong { display:block; font-size:11px; }.equipment-resource-label small { display:block; color:#68725e; margin-top:5px; }
.equipment-day-heads,.equipment-day-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.equipment-day-head { text-align:center; padding:10px 0 0; border-right:1px solid var(--line); color:#68725e; }
.equipment-day-head strong { display:block; color:#293529; margin:7px 0 10px; font-size:13px; }
.equipment-hours { display:flex; justify-content:space-evenly; font-size:9px; padding:4px 0; background:#f5f6f1; border-top:1px solid #e7e9e1; }
.equipment-timeline-row { border-bottom:1px solid var(--line); }
.equipment-track { position:relative; min-width:0; }
.equipment-day-grid { position:absolute; inset:0; }
.equipment-day-grid>div { border-right:1px solid #d7ddcf; background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#e9ece5 calc(25% - 1px),#e9ece5 25%); }
.equipment-day-grid>.today,.equipment-day-head.today { background-color:#faf8dc; }
.equipment-booking { position:absolute; height:48px; padding:7px 9px; border:1px solid #aac5e8; border-radius:7px; background:#dceaff; color:#203f7a; font:inherit; text-align:left; overflow:hidden; cursor:pointer; z-index:1; box-sizing:border-box; }
.equipment-booking strong,.equipment-booking span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.equipment-booking span { margin-top:5px; font-size:10px; }
.equipment-booking.internal { background:#e1edda; border-color:#729860; color:#294c26; }.equipment-booking.service { background:#e9e3f3; border-color:#9371ae; color:#533775; }
.equipment-booking.requested { background:repeating-linear-gradient(135deg,#ffead1,#ffead1 8px,#ffe2bc 8px,#ffe2bc 11px); border-color:#bc752c; color:#70400e; }
.equipment-booking.continues-before { border-left-style:dashed; border-top-left-radius:0; border-bottom-left-radius:0; }.equipment-booking.continues-after { border-right-style:dashed; border-top-right-radius:0; border-bottom-right-radius:0; }
.equipment-booking:hover { filter:brightness(.96); z-index:2; }.equipment-booking:focus-visible { outline:3px solid #203f7a; outline-offset:2px; z-index:3; }
.equipment-legend { margin-left:auto; }
.winter-group-tabs { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:20px; }
nav.stats[aria-label="Sider i vinterdrift"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
.winter-group-tabs small { opacity:.75; }
.winter-employee-pool { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.winter-employee { display:flex; align-items:center; gap:10px; min-width:185px; padding:12px; background:#fff; border:1px solid #d6e0e4; border-radius:12px; color:inherit; font:inherit; text-align:left; cursor:grab; }
.winter-employee:active { cursor:grabbing; }.winter-employee.selected { border-color:var(--crew-color); box-shadow:0 0 0 2px var(--crew-color); }
.winter-employee { touch-action:none; user-select:none; }
.winter-dragging { user-select:none; cursor:grabbing; }
.winter-drag-ghost { position:fixed; pointer-events:none; z-index:10000; background:#203f7a; color:#fff; padding:12px 16px; border-radius:9px; box-shadow:0 5px 22px #0003; font-size:12px; }
.winter-employee strong,.winter-employee small { display:block; }.winter-employee small { margin-top:5px; color:#687780; font-size:10px; }
.winter-avatar { background:var(--crew-color); color:#fff; display:grid; place-items:center; border-radius:50%; width:33px; height:33px; font-size:11px; flex-shrink:0; }
.winter-route-timeline { min-width:1500px; }
.winter-planner-toolbar { display:flex; flex-wrap:wrap; gap:9px; align-items:center; }
.winter-planner-toolbar input { width:145px; flex:0 0 145px; padding:9px; }
.winter-planner-toolbar select { width:auto; flex:0 0 auto; padding:9px; }
.winter-planner-toolbar strong { font-size:12px; }
.winter-timeline-head,.winter-timeline-row { display:grid; grid-template-columns:245px minmax(0,1fr); }
.winter-timeline-head,.winter-timeline-row { border-bottom:1px solid #dbe2e4; }
.winter-route-timeline.day-view .winter-timeline-head,.winter-route-timeline.day-view .winter-timeline-row { grid-template-columns:180px minmax(0,1fr); }
.winter-route-timeline .equipment-hours { display:grid; grid-template-columns:repeat(4,1fr); text-align:left; }
.winter-route-label { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:10px; padding:15px; border-right:1px solid #dbe2e4; background:#fff; }
.winter-route-label { position:sticky; left:0; z-index:2; }
.winter-route-label .btn.ghost { padding:0; text-align:left; white-space:normal; }
.winter-route-label small { font-size:10px; line-height:1.5; color:#65757c; }
.winter-timeline-days,.winter-track-grid { display:grid; }
.winter-shift-track { position:relative; min-width:0; }
.winter-track-grid { position:absolute; inset:0; }
.winter-track-grid>div { border-right:1px solid #dbe2e4; background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#ebeff1 calc(25% - 1px),#ebeff1 25%); }
.winter-track-grid>.today { background-color:#fffde8; }
.winter-shift { position:absolute; height:66px; border:1px solid var(--crew-color); border-radius:7px; background:color-mix(in srgb,var(--crew-color) 10%,white); color:var(--crew-color); font:inherit; padding:7px; text-align:left; overflow:hidden; cursor:pointer; box-sizing:border-box; }
.winter-shift strong,.winter-shift span,.winter-shift small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.winter-shift strong { font-size:10px; }.winter-shift span { font-size:11px; font-weight:600; margin-top:4px; }.winter-shift small { font-size:9px; margin-top:4px; }
.winter-shift.unstaffed { border-style:dashed; background:#f6f8f9; color:#667680; }.winter-shift.adjusted { border-top-width:3px; }
.winter-shift.drop-target { outline:4px solid #dceaff; z-index:3; filter:brightness(.96); }
.winter-shift .winter-overlap-mark { position:absolute; right:4px; top:0; background:#fff1ce; color:#885300; padding:1px 5px; border-radius:50%; }
.winter-empty-row { padding:22px; color:#77878e; font-size:12px; position:relative; pointer-events:none; }
.winter-setting-row { display:flex; flex-direction:column; gap:7px; padding:16px 0; border:0; border-bottom:1px solid #e3e9ec; background:none; width:100%; text-align:left; cursor:pointer; color:inherit; font:inherit; }
.winter-setting-row span { color:#65757c; font-size:11px; }
.winter-weekdays { display:flex; flex-wrap:wrap; gap:14px; margin:20px 0; }.winter-weekdays label { display:flex; align-items:center; gap:7px; font-size:12px; }
.winter-template-row { display:grid; grid-template-columns:2fr 1fr 1fr 40px; gap:12px; align-items:end; margin:15px 0; }.winter-template-row label { display:flex; flex-direction:column; gap:7px; font-size:12px; }
.winter-template-row input { padding:12px; border:1px solid #cfdadd; border-radius:8px; font:inherit; min-width:0; }
.winter-confirm { max-width:640px; }
.content:has(> .winter-workspace) { max-width:none; padding-top:18px; padding-bottom:16px; }
.winter-workspace-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:12px; }
.winter-workspace-head h1 { font-size:23px; margin:0; }
.winter-top-actions,.winter-section-nav { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.winter-top-actions { justify-content:flex-end; gap:12px; }
.winter-section-nav .btn { text-decoration:none; gap:6px; }
.winter-section-active { background:#edf2f8; border-color:#203f7a; color:#203f7a; }
.winter-nav-count { display:inline-block; border-radius:5px; background:#e7ebec; padding:1px 5px; font-size:10px; color:#52636a; }
.winter-planner-meta { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.winter-workspace .winter-group-tabs { gap:6px; margin:0; }
.winter-workspace .winter-group-tabs .btn { font-size:11px; padding:7px 10px; }
.winter-workspace .winter-crew { margin:0 0 8px; padding:0; }
.winter-crew-heading { display:flex; align-items:center; gap:10px; min-height:20px; font-size:11px; }
.winter-crew-heading > span { color:#718087; font-size:10px; }
.winter-workspace .winter-employee-pool { margin-top:5px; gap:6px; }
.winter-workspace .winter-employee { min-width:0; padding:6px 9px; gap:7px; border-radius:8px; font-size:11px; }
.winter-workspace .winter-employee small { margin-top:2px; font-size:9px; }
.winter-workspace .winter-avatar { width:24px; height:24px; font-size:9px; }
.winter-workspace .winter-crew .notice { margin:5px 0 0; padding:7px 10px; font-size:11px; }
.winter-workspace .winter-planner-toolbar { margin:5px 0 8px; gap:6px; }
.winter-periods { position:relative; font-size:11px; }
.winter-periods > summary { display:flex; align-items:center; gap:7px; cursor:pointer; border:1px solid #dbe2e4; border-radius:7px; background:white; padding:8px 11px; list-style:none; }
.winter-periods > summary::after { content:'▾'; color:#718087; }
.winter-period-panel { position:absolute; right:0; top:calc(100% + 6px); z-index:8; width:min(640px,80vw); max-height:45vh; overflow:auto; padding:18px; border:1px solid #dbe2e4; border-radius:10px; background:white; box-shadow:0 8px 25px #23344226; }
.winter-calendar { height:max(420px,calc(100dvh - 340px)); overflow:auto; }
.winter-calendar .winter-route-timeline { min-height:100%; display:flex; flex-direction:column; }
.winter-calendar .winter-timeline-head { flex:0 0 auto; position:sticky; top:0; z-index:4; background:white; }
.winter-calendar .winter-timeline-row { flex:1 0 auto; }
.winter-calendar .winter-route-label { justify-content:flex-start; }
.winter-calendar-legend { margin:7px 0 0; font-size:10px; }
@media(max-width:800px) { .winter-top-actions { justify-content:flex-start; }.winter-workspace-head { align-items:flex-start; }.winter-workspace .winter-employee { flex:0 1 auto; }.winter-calendar { height:max(400px,calc(100dvh - 420px)); }.winter-crew-heading > span { font-size:9px; } }
@media(max-width:650px) { .winter-employee { min-width:150px; flex:1; }.winter-template-row { grid-template-columns:1fr 1fr; }.winter-template-row label:first-child { grid-column:1/-1; } }

/* Shared dialog presentation, including the specialist booking and invoice dialogs. */
#modal { max-width:760px; border:1px solid #d6dfe6; border-radius:22px; box-shadow:0 30px 100px #142b4852; background:#f5f7fa; }
#modal[open] { display:flex; flex-direction:column; max-height:calc(100dvh - 48px); }
#modal::backdrop { background:#10273b80; backdrop-filter:blur(5px); }
#modal .modal-head { flex:none; padding:22px 28px; background:#fff; border-bottom:1px solid #e0e6ec; gap:18px; }
#modal .modal-heading { display:flex; align-items:center; gap:14px; min-width:0; }
#modal .modal-emblem { display:grid; place-items:center; flex:none; width:44px; height:44px; border:1px solid #d8e3ec; background:#edf3f8; color:#234d78; border-radius:13px; }
#modal .modal-emblem svg { width:24px; height:24px; }
#modal .modal-context { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#62768b; margin:0 0 5px; font-weight:650; }
#modal .modal-head h2 { font-size:23px; letter-spacing:-.035em; line-height:1.2; margin:0; }
#modal .modal-close { display:grid; place-items:center; flex:none; width:34px; height:34px; color:#506075; background:#f3f5f7; border:1px solid #e0e5eb; cursor:pointer; }
#modal .modal-close:hover { background:#e6ecf2; color:#193b60; }
#modal .modal-body { padding:24px 28px 28px; overflow-y:auto; overscroll-behavior:contain; min-height:0; }
#modal label { font-size:12px; font-weight:600; color:#405169; gap:8px; margin-bottom:18px; }
#modal input:not([type=checkbox]):not([type=radio]),#modal select,#modal textarea { background:#fff; border:1px solid #cdd7e1; border-radius:9px; font-size:14px; padding:11px 12px; min-width:0; transition:border-color .15s,box-shadow .15s; }
#modal input:not([type=checkbox]):not([type=radio]),#modal select { min-height:44px; }
#modal textarea { min-height:96px; resize:vertical; }
#modal input::placeholder,#modal textarea::placeholder { color:#8a97a6; font-weight:400; }
#modal input:focus,#modal select:focus,#modal textarea:focus { outline:none; border-color:#426c97; box-shadow:0 0 0 3px #2a639117; }
#modal input[readonly] { color:#64748b; background:#f1f4f7; }
#modal .check-label { display:flex; flex-direction:row; align-items:center; font-weight:450; line-height:1.5; padding:12px 14px; border:1px solid #dce3ea; border-radius:9px; background:#fff; }
#modal input[type=checkbox],#modal input[type=radio] { accent-color:#244e79; width:17px; height:17px; flex:none; }
#modal .form-grid { column-gap:20px; align-items:start; }
#modal .btn { border-radius:9px; min-height:40px; padding:10px 16px; font-weight:600; }
#modal .btn.small { min-height:34px; padding:8px 12px; font-size:11px; }
#modal .btn.primary { background:#214873; border-color:#214873; color:#fff; box-shadow:0 2px 3px #173a5b14; }
#modal .btn.primary:hover { background:#183a60; border-color:#183a60; }
#modal .btn:focus-visible,#modal .modal-close:focus-visible { outline:3px solid #7aa5ce; outline-offset:3px; }
#modal .form-footer { position:sticky; bottom:-28px; z-index:2; margin:24px -28px -28px; padding:18px 28px; border-top:1px solid #dbe3ec; background:#fffffffa; backdrop-filter:blur(8px); }
#modal .notice { background:#edf3f8; border:1px solid #d5e2ed; border-radius:10px; color:#3d536c; line-height:1.65; padding:14px 16px; }
#modal .error { color:#a83134; }
#modal .form-error:not(:empty) { padding:12px 15px; background:#fff0ee; border:1px solid #f2d0cd; border-radius:9px; }
#modal .modal-body>form>h3 { margin:22px 0 14px; font-size:15px; }
#modal .modal-body>form>.card,#modal .delivery-panel { border:1px solid #dae2eb; border-radius:12px; background:#fff; }
#modal .dialog-section { background:#fff; border:1px solid #dce3eb; border-radius:13px; padding:20px; margin:0 0 18px; min-width:0; }
#modal .dialog-section-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:18px; }
#modal .dialog-section-head h3 { margin:0; font-size:14px; font-weight:650; color:#263f5c; letter-spacing:-.01em; }
#modal .dialog-section-head>span { font-size:11px; color:#64758a; background:#f0f4f8; border:1px solid #e1e7ee; padding:3px 8px; border-radius:20px; }
#modal .dialog-section .form-grid>label:last-child,#modal .dialog-section .form-grid>label:nth-last-child(2) { margin-bottom:0; }
#modal .dialog-footnote { margin:12px 0 0; color:#718095; font-size:11px; line-height:1.6; }
#modal .dialog-columns { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
#modal[data-view=customer-card],#modal[data-view=order-detail] { max-width:980px; }
#modal .dialog-profile { display:flex; align-items:center; gap:18px; padding:4px 0 26px; }
#modal .dialog-avatar { width:62px; height:62px; flex:none; display:grid; place-items:center; border-radius:18px; color:#244f7b; background:#e5eef6; border:1px solid #d2e0ed; font-size:23px; font-weight:650; }
#modal .dialog-profile>div { flex:1; min-width:0; }
#modal .dialog-profile h2,#modal .dialog-order-heading h2 { font-size:24px; letter-spacing:-.03em; margin:5px 0 8px; line-height:1.2; overflow-wrap:anywhere; }
#modal .dialog-overline { text-transform:uppercase; letter-spacing:.08em; color:#6a7e93; font-size:10px; font-weight:650; }
#modal .dialog-sync { font-size:11px; color:#64788b; }
#modal .dialog-sync strong { font-weight:500; }
#modal .dialog-data { margin:0; display:grid; gap:18px; }
#modal .dialog-data dt { font-size:10px; font-weight:600; color:#7a8898; margin-bottom:5px; }
#modal .dialog-data dd { margin:0; font-size:13px; line-height:1.5; color:#243b53; overflow-wrap:anywhere; }
#modal .dialog-tags { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:15px; }
#modal .dialog-tags>span { padding:6px 10px; font-size:11px; color:#44632f; background:#eef4e8; border:1px solid #dce8d1; border-radius:7px; }
#modal .dialog-empty { color:#8993a1; font-size:12px; padding:6px 0; margin:0; }
#modal .dialog-list-item { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 0; border-bottom:1px solid #edf0f4; }
#modal .dialog-list-item:first-of-type { padding-top:0; }
#modal .dialog-list-item:last-child { border-bottom:0; padding-bottom:0; }
#modal .dialog-list-item strong { display:block; font-size:12px; line-height:1.4; }
#modal .dialog-list-item small { display:block; font-size:10px; color:#7a8899; margin:4px 0; }
#modal .dialog-list-item b { font-size:13px; white-space:nowrap; }
#modal .dialog-secondary-actions { padding-top:2px; }
#modal .dialog-reference { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; margin-bottom:18px; background:#eaf0f6; border:1px solid #d7e2ec; border-radius:10px; gap:12px; }
#modal .dialog-reference span { color:#637b92; font-size:11px; }
#modal .dialog-reference strong { color:#294968; font-size:12px; }
#modal .dialog-order-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:0 0 24px; }
#modal .dialog-order-heading p { color:#7b8898; font-size:11px; margin:0; }
#modal .dialog-order-steps { display:flex; list-style:none; padding:0 0 24px; margin:0 0 24px; border-bottom:1px solid #dde5ed; }
#modal .dialog-order-steps li { position:relative; display:flex; flex:1; flex-direction:column; align-items:center; text-align:center; gap:9px; color:#7d8a9a; font-size:10px; }
#modal .dialog-order-steps li::before { content:''; position:absolute; top:14px; left:-50%; width:100%; height:2px; background:#dbe3eb; }
#modal .dialog-order-steps li:first-child::before { display:none; }
#modal .dialog-order-steps li>span { position:relative; z-index:1; display:grid; place-items:center; width:30px; height:30px; border:1px solid #d1dce6; background:#f5f7fa; border-radius:50%; font-size:11px; }
#modal .dialog-order-steps .done { color:#527443; }
#modal .dialog-order-steps .done>span { background:#e9f1e2; color:#4d6d38; border-color:#c9dbbc; }
#modal .dialog-order-steps .current { color:#234b76; font-weight:650; }
#modal .dialog-order-steps .current>span { background:#234b76; color:#fff; border-color:#234b76; box-shadow:0 0 0 4px #e2ebf3; }
#modal .dialog-order-columns { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
#modal .dialog-table { overflow-x:auto; margin:0 -20px; }
#modal .dialog-table table { border:0; min-width:0; }
#modal .dialog-table th { background:#f5f7fa; color:#718096; font-size:10px; }
#modal .dialog-table td { padding:14px 18px; font-size:12px; }
#modal .dialog-table th:last-child,#modal .dialog-table td:last-child { text-align:right; white-space:nowrap; }
#modal .dialog-total { display:flex; justify-content:space-between; align-items:center; padding-top:20px; gap:16px; }
#modal .dialog-total>span { color:#5c7087; font-size:12px; }
#modal .dialog-total small { display:block; color:#8b96a3; font-size:10px; margin-top:4px; }
#modal .dialog-total strong { font-size:24px; color:#233e60; letter-spacing:-.035em; }
#modal .dialog-address { font-size:13px; line-height:1.9; margin:0; color:#4c6075; }
#modal .dialog-action-bar { display:flex; justify-content:space-between; gap:12px; position:sticky; bottom:-28px; margin:8px -28px -28px; padding:18px 28px; background:#fffffffa; border-top:1px solid #dbe3eb; z-index:2; }
#modal .order-pack-list { border-radius:12px; background:#fff; padding:14px; border:1px solid #dce3eb; }
#modal .order-pack-list label { margin:0; border:0; border-bottom:1px solid #edf0f4; border-radius:0; }
#modal .order-pack-list label:last-child { border-bottom:0; }
@media(max-width:640px) {
  #modal { width:calc(100% - 20px); border-radius:16px; }
  #modal[open] { max-height:calc(100dvh - 24px); }
  #modal .modal-head { padding:18px; }
  #modal .modal-head h2 { font-size:20px; }
  #modal .modal-emblem { width:36px; height:36px; border-radius:10px; }
  #modal .modal-body { padding:18px; }
  #modal .form-grid,#modal .dialog-columns { grid-template-columns:1fr; gap:0; }
  #modal .dialog-section { padding:16px; margin-bottom:14px; }
  #modal .dialog-section .form-grid>label:nth-last-child(2) { margin-bottom:18px; }
  #modal .dialog-profile { gap:12px; flex-wrap:wrap; padding-bottom:20px; }
  #modal .dialog-avatar { width:46px; height:46px; font-size:18px; border-radius:13px; }
  #modal .dialog-profile h2 { font-size:21px; }
  #modal .dialog-profile>.btn { margin-left:58px; }
  #modal .form-footer,#modal .dialog-action-bar { bottom:-18px; margin-left:-18px; margin-right:-18px; margin-bottom:-18px; padding:14px 18px; }
  #modal .dialog-table { margin-left:-16px; margin-right:-16px; }
  #modal .dialog-order-steps li { font-size:9px; }
  #modal .dialog-order-heading h2 { font-size:21px; }
  #modal .dialog-reference { align-items:flex-start; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { #modal * { transition:none; scroll-behavior:auto; } }

#modal .dialog-section label:has(>input[name="address"]) { grid-column:1/-1; }
#modal .dialog-section .form-grid { row-gap:16px; }
#modal .dialog-section .form-grid>label { margin-bottom:0; }
#modal.rental-picker { width:min(840px,calc(100vw - 28px)); max-width:840px; }
#modal.rental-picker .modal-body { padding-bottom:28px; }
#modal.rental-picker .form-footer { position:static; margin:20px 0 0; padding:16px 0 0; background:transparent; backdrop-filter:none; }
#modal .rental-live-price { flex-shrink:0; }
.winter-confirm { border:1px solid #d6dfe6; border-radius:18px; box-shadow:0 30px 100px #142b4852; background:#f5f7fa; }
.winter-confirm::backdrop { background:#10273b80; backdrop-filter:blur(5px); }
.winter-confirm .modal-head { background:#fff; border-bottom:1px solid #dce3eb; }
.winter-confirm .btn.primary { background:#214873; border-color:#214873; color:#fff; }
@media(max-width:640px) { #modal .dialog-section .form-grid>label { margin-bottom:0; } }

#modal[data-view=standard] #modal-form>.form-grid { padding:20px 20px 2px; border:1px solid #dce3eb; border-radius:13px; background:white; }
#modal .dialog-section .form-grid>.check-label { margin-bottom:0; }
@media(max-width:640px) { #modal[data-view=standard] #modal-form>.form-grid { padding:16px 16px 0; } }

.project-code-status { display:block; min-height:16px; font-size:11px; font-weight:450; line-height:1.5; color:#6a7e93; }
.project-code-status[data-state=free] { color:#3d713d; }
.project-code-status[data-state=busy],.project-code-status[data-state=error] { color:#a83134; }
.resource-accounting-row { display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid var(--line); margin-top:16px; padding-top:12px; }
.resource-accounting-row span { font-size:11px; color:#66798b; }
.resource-accounting-row .missing { color:#a66522; }

.rental-catalogue-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 18px; padding:20px; margin:0 0 14px; border:1px solid #dce3dd; border-radius:14px; background:#f3f5ef; align-items:end; }
.rental-catalogue-filters label { margin:0; }.rental-catalogue-filters input,.rental-catalogue-filters select { width:100%; min-width:0; background:white; min-height:42px; }
.rental-catalogue-filters .btn { min-height:42px; }.rental-filter-empty { grid-column:1/-1; padding:28px; border:1px solid var(--line); border-radius:12px; background:white; }
@media(max-width:650px) { .rental-catalogue-filters { grid-template-columns:1fr 1fr; padding:16px; gap:12px; } }
@media(max-width:400px) { .rental-catalogue-filters { grid-template-columns:1fr; } }

/* Compact rental booking and discreet catalogue filters. */
#modal.rental-picker .modal-head { padding:12px 24px; }
#modal.rental-picker .modal-head .eyebrow { margin:0 0 3px; }
#modal.rental-picker .modal-head h2 { font-size:21px; }
#modal.rental-picker .modal-body { padding:12px 24px; }
#modal.rental-picker .rental-rate-cards { margin-bottom:10px; }
#modal.rental-picker .rental-rate { padding:6px; gap:2px; }
#modal.rental-picker .notice { padding:8px 12px; margin:8px 0; }
#modal.rental-picker .rental-picker-controls { grid-template-columns:2fr 1fr 1fr; gap:10px; margin:10px 0 6px; }
#modal.rental-picker .rental-picker-controls label { margin:0; gap:4px; }
#modal.rental-picker .rental-picker-controls input,#modal.rental-picker .rental-picker-controls select { min-height:36px; padding:7px 9px; }
#modal.rental-picker .modal-body>.tiny { margin:4px 0; }
#modal.rental-picker .rental-month-head { margin:10px 0 8px; }
#modal.rental-picker .rental-day { min-height:44px; gap:2px; }
#modal.rental-picker .rental-weekdays { margin-bottom:5px; }
#modal.rental-picker .rental-legend { margin:9px 0; }
#modal.rental-picker .rental-selection { padding:9px 12px; }
#modal.rental-picker .rental-selection .section-gap { margin-top:6px; }
#modal.rental-picker .form-footer { margin-top:8px; padding-top:8px; }
#modal.rental-picker .error:empty { display:none; }
#modal.rental-picker .rental-live-price { padding:9px 24px; }
.rental-filter-bar { display:flex; align-items:center; gap:16px; margin:0 0 18px; position:relative; z-index:3; }
.rental-filter-bar>p { margin:0; }
.rental-filter-menu { position:relative; flex-shrink:0; }
.rental-filter-menu>summary { display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; border:1px solid #d7dfd6; border-radius:9px; background:white; padding:9px 13px; font-size:13px; }
.rental-filter-menu>summary::-webkit-details-marker { display:none; }
.rental-filter-menu[open]>summary { border-color:#203f7a; color:#203f7a; }
.rental-filter-popover { position:absolute; top:calc(100% + 8px); left:0; width:310px; max-width:calc(100vw - 48px); padding:18px; border:1px solid #dce3eb; border-radius:12px; background:white; box-shadow:0 12px 36px #17345e24; display:grid; gap:10px; }
.rental-filter-popover label { margin:0; font-size:12px; }
.rental-filter-popover .check-label { display:flex; align-items:center; gap:9px; }
.rental-filter-popover input[type=checkbox] { width:16px; height:16px; accent-color:#203f7a; }
.rental-filter-dates { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.rental-filter-popover input:not([type=checkbox]) { width:100%; min-width:0; padding:8px; }
.rental-filter-divider { border-top:1px solid #e3e8ed; }
@media(max-width:650px) { #modal.rental-picker .rental-picker-controls { grid-template-columns:1fr 1fr; } .rental-filter-bar { align-items:flex-start; } }
@media(max-height:800px) and (min-width:651px) { #modal.rental-picker .rental-day { min-height:36px; } #modal.rental-picker .rental-rate { padding:4px; } #modal.rental-picker .modal-head { padding:9px 24px; } }

@media(max-height:800px) and (min-width:651px) {
  #modal.rental-picker .modal-body { padding:8px 20px; }
  #modal.rental-picker .rental-rate-cards { margin-bottom:5px; }
  #modal.rental-picker .rental-rate { font-size:11px; gap:0; padding:3px; }
  #modal.rental-picker .notice { padding:5px 10px; margin:5px 0; }
  #modal.rental-picker .rental-picker-controls { margin:5px 0; }
  #modal.rental-picker .rental-picker-controls input,#modal.rental-picker .rental-picker-controls select { min-height:32px; padding:5px 8px; }
  #modal.rental-picker .rental-month-head { margin:5px 0; }
  #modal.rental-picker .rental-month-head .btn { padding:5px 10px; min-height:30px; }
  #modal.rental-picker .rental-day { min-height:30px; gap:0; }
  #modal.rental-picker .rental-days { gap:3px; }
  #modal.rental-picker .rental-day strong { font-size:13px; }
  #modal.rental-picker .rental-legend { margin:5px 0; }
  #modal.rental-picker .rental-selection { padding:5px 10px; }
  #modal.rental-picker .rental-selection .section-gap { margin-top:3px; }
  #modal.rental-picker .form-footer { margin-top:5px; padding-top:5px; }
  #modal.rental-picker .form-footer .btn { padding:7px 12px; }
  #modal.rental-picker .rental-live-price { padding:6px 20px; }
  #modal.rental-picker .rental-price-total strong { font-size:20px; }
}

/* Shared compact invoice workspace. */
.billing-workspace { min-width:0; }
.billing-title { display:flex; align-items:center; justify-content:space-between; margin:12px 0 22px; }
.billing-title h1 { color:#203f7a; margin:4px 0; font-size:27px; font-weight:500; }
.billing-title .eyebrow { margin:0; }
.billing-head-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 20px; margin-bottom:22px; }
.billing-workspace label { font-size:12px; min-width:0; }
.billing-head-grid input { width:100%; height:34px; min-width:0; border-radius:3px; padding:6px 9px; margin-top:4px; font-size:13px; }
.billing-head-grid input[readonly] { background:#f5f5f2; color:#4b4b4b; }
.billing-head-grid small { display:block; font-size:10px; margin-top:3px; }
.billing-common-actions { display:flex; flex-wrap:wrap; gap:4px; align-content:center; padding-top:14px; }
.billing-common-actions .btn { font-size:11px; padding:6px 8px; }
.billing-table { background:#fff; border:1px solid #deded7; border-radius:4px; overflow:hidden; }
.billing-table table { width:100%; min-width:860px; border-collapse:collapse; }
.billing-table th { background:#203f7a; color:#fff; font-size:11px; padding:9px 10px; text-transform:none; letter-spacing:0; font-weight:500; white-space:nowrap; }
.billing-table td { padding:7px 9px; font-size:12px; vertical-align:top; }
.billing-workspace [data-invoice-row] input { width:100%; min-width:0; padding:5px 6px; height:30px; font-size:12px; border:1px solid transparent; background:transparent; border-radius:2px; }
.billing-workspace [data-invoice-row] input:hover { border-color:#c6c9be; }
.billing-workspace [data-invoice-row] input:focus { border-color:#486b8b; background:#fff; outline:1px solid #486b8b; }
.billing-workspace [data-invoice-row] input[readonly] { color:#666; }
.billing-workspace [data-invoice-row] input[type=number] { text-align:right; appearance:textfield; }
.billing-workspace [data-invoice-row] input::-webkit-inner-spin-button { appearance:none; margin:0; }
.billing-workspace .billing-table:has([data-invoice-row]) table { table-layout:fixed; min-width:1080px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(2) { width:100px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(4) { width:76px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(5) { width:60px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(6) { width:92px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(7) { width:118px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(8) { width:100px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(9) { width:112px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(10) { width:38px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(n+6):nth-child(-n+9),.billing-line-sum { text-align:right; }
.billing-line-sum strong { display:block; padding-top:7px; white-space:nowrap; font-weight:500; }
.billing-workspace .markup-inherited,.billing-workspace .markup-inherited input { color:#606060; font-weight:400; }
.billing-workspace .markup-overridden,.billing-workspace .markup-overridden input { color:#000; font-weight:600; }
.billing-markup { position:relative; }
.billing-markup small { display:block; font-size:9px; line-height:1.3; text-align:right; padding-right:14px; white-space:normal; }
.billing-reset { position:absolute; bottom:4px; right:3px; border:0; background:none; color:inherit; padding:0 3px; cursor:pointer; font-size:13px; }
.billing-line-details summary { cursor:pointer; font-size:9px; color:#777; padding:0 6px; }
.billing-line-details[open] { padding:0 6px 6px; }
.billing-line-details p { font-size:10px; }
.billing-line-details select { max-width:100%; height:30px; font-size:11px; }
.billing-under-table { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:24px; margin-top:14px; }
.billing-line-actions { display:flex; align-content:flex-start; align-items:flex-start; gap:10px; flex-wrap:wrap; }
.billing-line-actions select { width:auto; max-width:320px; height:32px; padding:4px 8px; font-size:12px; }
.billing-line-actions .check-label,.billing-line-actions .tiny { flex-basis:100%; margin:3px 0; font-size:11px; }
.billing-totals > div { display:flex; justify-content:space-between; gap:18px; padding:8px 6px; font-size:12px; }
.billing-totals strong { font-weight:500; }
.billing-grand-total { border-top:1px solid #999; border-bottom:3px double #999; }
.billing-grand-total strong { font-weight:700; }
.billing-actionbar { position:sticky; bottom:0; z-index:3; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; background:#fafaf7; border-top:1px solid #deded7; padding:14px 0; margin-top:25px; }
.billing-extra-actions { font-size:11px; color:#666; margin-top:8px; }
.billing-extra-actions summary { cursor:pointer; margin-bottom:8px; }
.billing-channel-tabs { display:flex; flex-wrap:wrap; border-bottom:1px solid #ddd; margin:18px 0; gap:4px; }
.billing-channel-tabs button { border:0; background:none; padding:10px 17px; cursor:pointer; color:#666; font:inherit; font-size:14px; border-bottom:3px solid transparent; }
.billing-channel-tabs button.active { border-bottom-color:#293e2e; color:#1e2e23; font-weight:600; }
.billing-list-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.billing-status-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.billing-list-toolbar .search { min-width:210px; max-width:320px; }
@media(max-width:1100px) { .billing-head-grid {grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:650px) { .billing-head-grid {gap:10px;} .billing-under-table {grid-template-columns:1fr;} .billing-totals {max-width:350px; width:100%; justify-self:end;} .billing-actionbar {position:static;} .billing-channel-tabs button {padding:8px 10px;} }

.billing-head-grid label { margin:0; gap:2px; line-height:16px; }
.billing-head-grid input { margin-top:2px; }
.billing-help { font-size:12px; color:#61665e; margin:8px 0; }
.billing-workspace [data-invoice-row] textarea { width:100%; min-width:0; min-height:36px; height:40px; resize:vertical; padding:5px 6px; border:1px solid transparent; border-radius:2px; background:transparent; font:inherit; line-height:16px; }
.billing-workspace [data-invoice-row] textarea:hover { border-color:#c6c9be; }
.billing-workspace [data-invoice-row] textarea:focus { border-color:#486b8b; background:#fff; outline:1px solid #486b8b; }
@media(max-width:1100px) {
 .billing-workspace .billing-table:has([data-invoice-row]) table {min-width:590px;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(2),.billing-workspace [data-invoice-row] td:nth-child(2),.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(5),.billing-workspace [data-invoice-row] td:nth-child(5) {display:none;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(4) {width:45px;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(6) {width:62px;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(7) {width:91px;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(8) {width:70px;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(9) {width:80px;}
 .billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(10) {width:28px;}
 .billing-workspace .billing-table:has([data-invoice-row]) td,.billing-workspace .billing-table:has([data-invoice-row]) th {padding:6px 3px;}
 .billing-workspace [data-invoice-row] input {padding:5px 2px; font-size:11px;}
 .billing-markup small {font-size:8px;}
 .billing-line-sum strong {font-size:11px;}
}

.billing-invoice-text { display:block; margin:20px 0 10px; max-width:850px; }
.billing-invoice-text textarea {display:block;width:100%;margin:6px 0;min-height:85px;resize:vertical;}
.billing-invoice-text small {font-size:10px;color:#666;}
.billing-text-row td:first-child {display:table-cell!important;}
.billing-text-row td>div {display:flex;gap:12px;align-items:center;}
.billing-text-row textarea {flex:1;}
.billing-workspace [data-invoice-row] td:last-child .btn {font-size:10px;padding:5px;white-space:normal;}
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(10) {width:58px;}

.billing-workspace .billing-table:has([data-invoice-row]) th:first-child {width:30px;padding:7px 3px;text-align:center;}
.billing-workspace .billing-handle-cell {width:30px;padding:4px 2px;vertical-align:middle;}
.billing-drag-handle {background:transparent;border:0;color:#777;cursor:grab;font-size:20px;line-height:1;padding:8px 5px;touch-action:none;}
.billing-drag-handle:active {cursor:grabbing;}
.billing-drag-handle:focus-visible {outline:2px solid #486b8b;border-radius:3px;}
.billing-dragging {opacity:.45;}
.billing-drop-before {box-shadow:inset 0 3px #486b8b;}
.billing-drop-after {box-shadow:inset 0 -3px #486b8b;}
.billing-text-row td:first-child {width:30px;}
.billing-text-row td:nth-child(2) {display:table-cell!important;}

.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(3),.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(5) {text-align:left;}
.billing-workspace .billing-table:has([data-invoice-row]) th:nth-child(4) {text-align:right;}

.billing-cutoff {margin:0;display:grid;gap:4px;font-size:11px;}
.billing-cutoff input {height:34px;padding:5px 8px;min-width:155px;font-size:13px;}

.billing-status-tabs + .row.wrap { margin-top:12px; align-items:end; }
.mobile-work-categories {display:flex;gap:8px;flex-wrap:wrap;margin:16px 0;}
.mobile-work-categories .btn {display:flex;flex-direction:column;gap:5px;min-width:78px;flex:1;}
.mobile-work-categories .selected {background:#244779;color:white;border-color:#244779;}
.mobile-project-picker {display:grid;gap:6px;font-size:13px;margin:12px 0;}
.mobile-project-picker select {width:100%;padding:12px;border:1px solid #d6ddca;border-radius:10px;background:white;font:inherit;}
.mobile-day .mobile-datebar {margin:0 0 10px;align-items:center;}
.mobile-day .mobile-datebar label {min-width:0;}
@media(max-width:600px){.mobile-work-categories {gap:5px;}.mobile-work-categories .btn{min-width:65px;padding:8px 5px;font-size:11px;}}

.billing-status-tabs {align-items:end;flex-wrap:wrap;}
.billing-status-tabs > .row.wrap {align-items:end;gap:8px;}

.winter-choice.busy:disabled,.winter-slot.busy {opacity:1;background:#fff0f0;border-color:#b63333;color:#8a2020;}
.winter-choice.busy small,.winter-slot.busy small{color:#8a2020;}
.winter-period-first {margin:18px 0;padding:14px;border:1px solid #dce4e7;border-radius:10px;}

.winter-equipment-conflicts.conflict {background:#fff0f0;color:#8a2020;border-color:#b63333;}

#shop-signature {display:block;width:100%;height:150px;border:1px dashed #244779;border-radius:8px;background:white;touch-action:none;margin:8px 0;}

.dashboard-quick-actions {display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;max-width:1050px;}
.dashboard-quick-actions .btn {gap:7px;white-space:nowrap;}
.dashboard-quick-actions .icon {width:20px;height:20px;}
@media(max-width:800px){.dashboard-quick-actions{justify-content:flex-start;width:100%;}.dashboard-quick-actions .btn{flex:1 1 160px;justify-content:flex-start;}}

.approval-weekbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin:16px 0}.approval-weekbar h2 small{font-size:13px;font-weight:400;margin-left:8px}.approval-weekbar label{font-size:11px;display:grid;gap:3px}.approval-weekbar input{font:inherit;padding:8px;border:1px solid #ddd;border-radius:7px}.approval-summary{display:flex;gap:24px;flex-wrap:wrap;margin:20px 0}.approval-summary strong{color:#244779}.approval-table{overflow:auto}.approval-table table{min-width:1050px}.approval-table td:not(:nth-child(2)){text-align:right}.approval-table th small{display:block}.approval-table [data-approval-employee]{cursor:pointer;user-select:none}.approval-table tr.selected{background:#e5edf9;box-shadow:inset 3px 0 #244779}.approval-table tr:focus{outline:2px solid #244779;outline-offset:-2px}.approval-hours{border:0;background:none;color:#244779;text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer;padding:8px;white-space:nowrap}.approval-pending-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#ad781b;margin-left:4px;vertical-align:middle}.approval-total{font-weight:700;background:#f3f4ef}.approval-total td{border-top:2px solid #888}.approval-day-detail{overflow:auto}.approval-day-detail table{min-width:680px}#modal:has(.approval-day-detail){width:min(1100px,96vw);max-width:1100px}

#modal[data-view=site-contact]{width:min(1060px,96vw);max-width:1060px;border-radius:20px;background:#fff;}
#modal[data-view=site-contact] .modal-head{padding:22px 28px;background:white;border-bottom:1px solid #e6e9ed;}
#modal[data-view=site-contact] .modal-body{padding:0;background:white;}
#modal[data-view=site-contact] .modal-head h2{font-size:25px;letter-spacing:-.6px;}
.site-contact-layout{display:grid;grid-template-columns:300px minmax(0,1fr);}
.site-contact-intro{padding:32px 28px;background:#244779;color:#fff;display:flex;flex-direction:column;gap:24px;position:relative;overflow:hidden;}
.site-contact-kicker{font-size:10px;letter-spacing:1.5px;color:#d9e4f2;}
.site-contact-intro h3{font-size:34px;line-height:1.13;letter-spacing:-1px;color:#fff;margin:0;}
.site-contact-intro h3 em{font-style:normal;color:#dceaff;}
.site-contact-intro p{font-size:14px;line-height:1.8;color:#e1e8f1;margin:0;}
.site-contact-steps{display:grid;gap:14px;border-top:1px solid #ffffff30;padding-top:22px;font-size:12px;}
.site-contact-steps b{color:#dceaff;font-size:11px;margin-right:10px;}
.site-contact-details{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:30px;font-size:12px;}
.site-contact-details a{color:white;text-decoration:underline;text-underline-offset:4px;}.site-contact-details span{font-size:11px;color:#d9e4f2;}
.site-contact-fields{padding:26px 30px;min-width:0;}
.site-contact-services{border:0;padding:0;margin:0 0 22px;min-width:0;}
.site-contact-services legend{font-weight:600;margin-bottom:12px;font-size:14px;}
.site-contact-services>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
#modal .site-contact-services label{position:relative;display:flex;align-items:center;gap:10px;margin:0;padding:11px 12px;border:1px solid #dfe5ec;border-radius:9px;background:#fafbf9;font-size:12px;cursor:pointer;color:#36414b;}
.site-contact-services input{position:absolute;opacity:0;width:1px;height:1px;}
.site-contact-services .icon{width:22px;height:22px;flex-shrink:0;}
#modal .site-contact-services label:has(input:checked){border-color:#244779;background:#edf2f9;color:#244779;box-shadow:inset 0 0 0 1px #244779;}
#modal .site-contact-services label:has(input:focus-visible){outline:3px solid #9ab7de;outline-offset:2px;}
.site-contact-section{border-top:1px solid #e8ebed;padding-top:18px;margin-top:18px;}
.site-contact-section h3{font-size:14px;margin:0 0 14px;}
#modal .site-contact-section .form-grid{gap:12px 14px;}
#modal .site-contact-section label{font-size:12px;margin-bottom:0;}
#modal .site-contact-section input,#modal .site-contact-section textarea{background:#fcfcfa;border-color:#dfe4e8;border-radius:8px;padding:11px 12px;font-size:13px;}
#modal .site-contact-section input:focus,#modal .site-contact-section textarea:focus{border-color:#244779;box-shadow:0 0 0 3px #24477915;outline:0;}
.site-contact-section label:has([name=title]),.site-contact-section label:has([name=timing]){grid-column:1/-1;}
.site-contact-demo{font-size:11px;color:#77818b;line-height:1.6;margin:20px 0 0;}
#modal[data-view=site-contact] .form-footer{padding:16px 28px;margin:0;border-top:1px solid #e8ebed;background:#fafbf9;}
#modal[data-view=site-contact] .form-error{margin:0;padding:0 28px;color:#a32b2b;}
#modal[data-view=site-contact] .form-error:not(:empty){padding:12px 28px;}
#modal[data-view=site-contact] .form-footer .primary{background:#244779;border-color:#244779;color:white;padding:12px 24px;}
@media(max-width:700px){.site-contact-layout{grid-template-columns:1fr}.site-contact-intro{padding:20px 22px;gap:12px}.site-contact-intro h3{font-size:27px}.site-contact-intro h3 br{display:none}.site-contact-intro h3 br:after{content:' '}.site-contact-intro p{font-size:13px}.site-contact-steps,.site-contact-details{display:none}.site-contact-fields{padding:20px}.site-contact-services>div{gap:6px}#modal .site-contact-services label{padding:10px;font-size:11px}#modal .site-contact-section .form-grid{grid-template-columns:1fr}#modal[data-view=site-contact] .modal-head{padding:18px 20px}#modal[data-view=site-contact] .modal-head h2{font-size:22px}}

#modal .site-contact-services label{flex-direction:row;min-height:44px;}
#modal[data-view=site-contact] .form-footer{bottom:0;}
#modal[data-view=site-contact] .site-contact-fields textarea{min-height:100px;}

#modal .site-contact-rental{grid-column:1/-1;}.site-contact-rental[hidden]{display:none!important;}.site-contact-rental label:has([name=rental_delivery]){grid-column:1/-1;}.site-contact-rental p{margin:0;}

#modal[data-view=site-contact] label[hidden]{display:none!important;}

.site-contact-theme-extra{grid-column:1/-1}.site-contact-theme-extra>div{display:contents}.site-contact-theme-extra>div[hidden]{display:none!important}#modal .site-contact-theme-extra label{grid-column:1/-1;margin:0}.site-contact-theme-extra:has(>div:not([hidden]):empty){display:none}

.equipment-group-label{display:block;padding:0;}.equipment-group-title{height:52px;display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);box-sizing:border-box;}.equipment-group-title small{margin-top:2px;}.equipment-unit-label{box-sizing:border-box;padding:14px 16px 8px 36px;border-bottom:1px solid var(--line);font-size:11px;}.equipment-unit-rule{position:absolute;left:0;right:0;border-bottom:1px solid var(--line);pointer-events:none;box-sizing:border-box;}.equipment-group-track-heading{position:relative;height:52px;box-sizing:border-box;padding:15px;color:#68725e;font-size:10px;border-bottom:1px solid var(--line);background:#ffffffa8;}

/* Operational demo workspaces. */
.workshop-summary-strip{display:flex;gap:28px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px 22px;margin:20px 0}.workshop-summary-strip b{font-size:22px;color:#244779;margin-right:6px}.workshop-summary-strip span{font-size:12px;color:#68726b}.workshop-queue{grid-template-columns:repeat(5,minmax(205px,1fr));overflow:auto;align-items:start}.workshop-queue .kanban-title{display:flex;align-items:center;justify-content:space-between;text-transform:none;letter-spacing:0;font-size:12px}.workshop-card-description{max-height:52px;overflow:hidden}.workshop-card-footer{border-top:1px solid #e5e8e0;margin-top:14px;padding-top:10px;display:grid;gap:5px;font-size:10px}.workshop-card-footer .overdue{color:#a94328;font-weight:600}.workshop-order-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0}.workshop-followup{margin-top:20px}.workshop-followup .form-grid{gap:14px 20px}.workshop-followup input,.workshop-followup select{min-height:40px}.workshop-followup h2{margin-bottom:18px}.workshop-followup .check-label{display:flex;align-items:center;gap:9px;margin:8px 0}.workshop-event-list p{padding:12px 0;border-bottom:1px solid #e5e8e0}.workshop-event-list small{display:block;color:#778071;margin-top:5px}.workshop-detail-workspace #workshop-order-panel> .notice{font-size:12px;padding:13px 18px}.workshop-detail-workspace .workshop-order-layout{align-items:start}.workshop-detail-workspace #workshop-create-draft{font-size:13px}.workshop-workspace .toolbar label{font-size:11px}.workshop-workspace .toolbar select{padding:10px;border:1px solid #dde3da;border-radius:8px;background:#fff}
.winter-billing .toolbar label{display:grid;gap:5px;font-size:11px}.winter-billing .toolbar input,.winter-billing .toolbar select{padding:10px;border:1px solid #dce3e6;border-radius:8px;background:#fff;font:inherit}.winter-billing-customer{padding:20px 0;border-top:1px solid #e1e5df;margin-top:20px}.winter-billing-customer h3{margin:0}.winter-operations h2{font-size:18px}.winter-operations .grid .card h3{margin:14px 0 8px}.winter-operations .card .btn{margin-top:8px}
.winter-map-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px}.winter-map-canvas{position:relative;overflow:hidden;min-height:460px;background:#e6efed}.winter-map-svg{display:block;width:100%;height:100%;min-height:460px;object-fit:cover}.winter-map-controls{position:absolute;left:12px;top:12px;z-index:2;display:flex;gap:6px;align-items:center}.winter-map-attribution{position:absolute;bottom:0;right:0;padding:5px 8px;background:#ffffffed;font-size:10px;z-index:2}.winter-map-attribution a{color:#244779}.winter-map-vehicle{display:flex;flex-direction:column;gap:6px;text-align:left;border:1px solid #dde4e7;border-left:4px solid var(--vehicle-color);padding:14px;background:#fff;border-radius:9px;width:100%;margin:12px 0;cursor:pointer;color:#283747}.winter-map-vehicle.selected{background:#edf2f9;box-shadow:0 0 0 1px var(--vehicle-color)}.winter-map-vehicle b{font-size:12px}.winter-map-vehicle span,.winter-map-vehicle small{font-size:11px}.winter-map-vehicle small{color:var(--vehicle-color)}#winter-map-layer{height:100%;min-height:460px}.winter-map-workspace>.notice p{margin:5px 0 0;font-size:12px}.winter-map-workspace .wide{width:100%;justify-content:center}
.pos-connection{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:11px;margin:0 0 20px;color:#68736c}.pos-status-dot{height:7px;width:7px;border-radius:50%;background:#aac5e8}.pos-connection strong{color:#344638}.pos-cart-tools{display:flex;gap:6px;padding:12px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.pos-cart-tools .btn{font-size:10px}.pos-payment-summary{text-align:center;padding:12px 0 20px}.pos-payment-summary h2{font-size:35px;color:#244779;margin:18px 0 8px}.pos-payment-summary p{color:#6b7369}.payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.payment-methods .selected{background:#244779;color:#fff;border-color:#244779}
@media(max-width:1050px){.workshop-summary-strip{gap:14px}.winter-map-layout{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:750px){.winter-map-layout{grid-template-columns:1fr}.winter-map-layout aside{display:grid;grid-template-columns:1fr;}.winter-map-vehicle{margin:5px 0}.winter-map-canvas,#winter-map-layer,.winter-map-svg{min-height:340px}.workshop-summary-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px}.workshop-summary-strip b{font-size:18px}.workshop-followup .form-grid{grid-template-columns:1fr}}

.workshop-detail-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.workshop-detail-workspace [hidden]{display:none!important}.workshop-detail-workspace .workshop-order-layout{grid-template-columns:minmax(0,1fr)}.workshop-detail-workspace .workshop-order-layout>section{min-width:0}.workshop-detail-workspace #workshop-parts-results{overflow:auto}.workshop-queue{grid-template-columns:repeat(5,minmax(165px,1fr))}.workshop-followup textarea{min-height:85px}.workshop-followup .tiny.full{margin:0;}

.winter-map-viewport{position:relative;width:100%;height:100%;min-height:500px;overflow:hidden}.winter-map-tiles{position:absolute;inset:0;}.winter-map-tiles img{position:absolute;display:block;object-fit:fill}.winter-map-viewport .winter-map-svg{position:absolute;inset:0;width:100%;height:100%;min-height:0;pointer-events:none}.winter-map-canvas{align-self:start;height:570px}#winter-map-layer{height:100%}@media(max-width:750px){.winter-map-canvas{height:420px}.winter-map-viewport{min-height:420px}}

.winter-map-canvas{height:auto;min-height:0}.winter-map-viewport{aspect-ratio:5/3;height:auto;min-height:0}#winter-map-layer{height:auto;min-height:0}.winter-map-viewport .winter-map-svg{height:100%;min-height:0}@media(max-width:750px){.winter-map-canvas{height:auto}.winter-map-viewport{min-height:0}}
.access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.access-grid fieldset{border:1px solid var(--line,#dedfd6);border-radius:10px;padding:16px}.access-check{display:flex;align-items:center;gap:9px;margin:10px 0;font-size:13px}.access-check input{width:17px;height:17px}.hms-requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.hms-requirements h2{font-size:19px;margin:15px 0 8px}.hms-number{display:inline-grid;place-items:center;width:32px;height:32px;background:#e4edf6;color:#204870;border-radius:8px;font-weight:700}.hms-editor-fields{border:0;padding:0;min-width:0}.hms-editor-fields textarea{min-height:88px}.hms-snapshot{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-height:300px;overflow:auto}.hms-requirements .btn{margin:3px 0}@media(max-width:700px){.access-grid,.hms-requirements{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.toolbar,.bottom-note,main button,.tabs,#hms-print{display:none!important}.workspace{margin:0!important}.content{padding:10px!important}.hms-requirements{display:block}.hms-requirements section{break-inside:avoid;margin-bottom:12px}}
.hms-workspace .tabs{flex-wrap:wrap;overflow:visible;row-gap:4px}.hms-workspace .tabs button{white-space:nowrap}

.customer-picker { position:relative; width:100%; }
.customer-picker>input { width:100%; }
.customer-picker-list { position:absolute; top:calc(100% + 5px); left:0; right:0; z-index:80; background:white; border:1px solid #cbd7e5; border-radius:10px; box-shadow:0 10px 25px #17345e22; overflow:hidden; }
.customer-picker-list[hidden] { display:none; }
.customer-picker-options { max-height:220px; overflow:auto; }
.customer-picker-list button { display:block; width:100%; padding:10px 12px; border:0; background:white; color:#17345e; text-align:left; font:inherit; cursor:pointer; }
.customer-picker-list button:hover,.customer-picker-list button:focus-visible { background:#edf3fa; }
.customer-picker-list .customer-picker-add { border-top:1px solid #dce3eb; font-weight:650; background:#f1f6ec; }
.customer-picker-options p { padding:10px 12px; margin:0; color:#617080; }

.rental-occupancy-weeks { display:grid; gap:12px; margin-top:18px; }
.rental-occupancy-week { display:grid; grid-template-columns:110px 1fr 50px 90px; gap:12px; align-items:center; font-size:12px; }
.rental-occupancy-week>span small { display:block; color:#748093; font-size:10px; }
.rental-occupancy-bar { display:flex; height:20px; background:#edf1f5; border-radius:5px; overflow:hidden; }
.rental-occupancy-bar i { background:#225cad; }.rental-occupancy-bar b { background:#8c98a5; }
.rental-analysis .card h2 { font-size:19px; margin-bottom:10px; }
@media(max-width:600px) { .rental-occupancy-week { grid-template-columns:75px 1fr 35px; gap:8px; }.rental-occupancy-week>small { display:none; } }

.rental-year-chart { display:flex; gap:8px; margin-top:24px; }
.rental-year-axis { width:38px; flex-shrink:0; height:180px; display:flex; flex-direction:column; justify-content:space-between; font-size:10px; color:#64758a; }
.rental-year-weeks { display:grid; grid-template-columns:repeat(var(--week-count),minmax(0,1fr)); gap:3px; flex:1; min-width:0; background:linear-gradient(to bottom,#dce3eb 1px,transparent 1px) 0 0/100% 90px; }
.rental-year-week { display:flex; flex-direction:column; padding:0; border:0; min-width:0; background:transparent; cursor:pointer; color:#526780; font:inherit; }
.rental-year-column { height:180px; width:100%; display:flex; flex-direction:column-reverse; background:#edf1f575; border-radius:3px 3px 0 0; overflow:hidden; }
.rental-year-column i { display:block; background:#225cad; width:100%; }.rental-year-column b { display:block; background:#8c98a5; width:100%; }
.rental-year-week small { font-size:9px; margin-top:7px; width:100%; text-align:center; }
.rental-year-week.has-peak .rental-year-column { outline:1px solid #203f7a; outline-offset:1px; }
.rental-year-week:hover .rental-year-column,.rental-year-week:focus-visible .rental-year-column { background:#d3e1f4; }
.rental-year-week:focus-visible { outline:2px solid #203f7a; outline-offset:2px; }
.rental-week-detail { min-height:36px; padding:10px 12px; background:#f2f5f9; border-radius:8px; font-size:12px; margin:16px 0 0; color:#334d6f; }
@media(max-width:700px) { .rental-year-weeks { gap:1px; }.rental-year-week small { font-size:7px; }.rental-year-axis { width:30px; font-size:9px; } }
.rental-year-week small { height:20px; line-height:10px; }.rental-year-week:nth-child(even) small { transform:translateY(8px); }

.rental-year-week.month-alternate .rental-year-column i { background:#5384bd; }
.rental-year-week.month-alternate .rental-year-column { background:#e1eaf47d; }
.rental-year-month { grid-row:2; text-align:center; font-size:11px; font-weight:600; color:#526780; padding:7px 0 4px; border-top:2px solid #225cad; margin-top:5px; text-transform:capitalize; }
.rental-year-month.month-alternate { border-color:#5384bd; background:#edf3fa; border-radius:0 0 4px 4px; }
@media(max-width:700px) { .rental-year-month { font-size:9px; } }

.rental-analysis-levels { display:grid; gap:12px; margin:0 0 14px; padding:16px 18px; background:white; border:1px solid #dce3eb; border-radius:12px; }
.rental-analysis-levels>div { display:grid; grid-template-columns:120px 1fr; gap:12px; align-items:center; }.rental-analysis-levels>div>span { font-size:12px; color:#61718a; }
.rental-analysis-chip.active { background:#203f7a; border-color:#203f7a; color:white; }
.rental-analysis-legend { display:flex; gap:18px; flex-wrap:wrap; margin:12px 0; font-size:12px; }.rental-analysis-legend span { display:flex; align-items:center; gap:7px; }.rental-analysis-legend i { width:12px; height:12px; border-radius:3px; }
.rental-year-models { display:flex; width:100%; gap:1px; height:180px; }.rental-year-models .rental-year-column { flex:1; min-width:0; }
@media(max-width:600px) { .rental-analysis-levels>div { grid-template-columns:1fr; gap:6px; } }

.rental-analysis .dashboard-main { align-items:start; }
.rental-analysis .dashboard-main>section:first-child .table-wrap { max-height:360px; overflow:auto; }

.rental-capacity-columns { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:20px; align-items:start; }
.rental-capacity-panel .table-wrap { max-height:340px; overflow:auto; }
.rental-capacity-columns h3 { margin:0 0 12px; font-size:15px; }
@media(max-width:900px) { .rental-capacity-columns { grid-template-columns:1fr; } }

.rental-equipment-category { margin:24px 0 32px; }.rental-equipment-category>h2 { font-size:19px; margin:0 0 16px; display:flex; align-items:center; gap:12px; }.rental-equipment-category>h2 small { font-size:11px; color:#697a8d; font-weight:400; }
.rental-equipment-toolbar { align-items:end; flex-wrap:wrap; }.rental-equipment-toolbar>label { margin:0; font-size:11px; }.rental-equipment-toolbar .rental-filter-popover select { width:100%; }

.rental-equipment-toolbar { position:relative; z-index:5; }

/* Shared Johannessen blue accents and column alignment. */
.btn.primary,.nav-item.active { color:#203f7a; border-color:#b4cce9; }
.btn.primary:hover { background:#c7ddf7; }
.badge.yellow { color:#203f7a; background:#dceaff; }
.billing-table th { text-align:left; padding-left:9px; padding-right:9px; }
.billing-list th:nth-child(6),.billing-list td:nth-child(6) { text-align:right; }

.billing-workspace .billing-table:has([data-invoice-row]) th:is(:nth-child(2),:nth-child(3),:nth-child(5)) { text-align:left; padding-left:15px; }
.billing-workspace .billing-table:has([data-invoice-row]) th:is(:nth-child(4),:nth-child(6),:nth-child(7),:nth-child(8)) { padding-right:15px; }

.mobile-greet.workday-header { padding:26px 28px; background:linear-gradient(115deg,#17345e 0%,#203f7a 80%,#335d63 100%); border:1px solid #ffffff16; box-shadow:0 8px 24px #17345e14; }
.workday-header-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:26px; }
.workday-heading-label { font-size:11px; text-transform:uppercase; letter-spacing:1.6px; color:#d9e8f8; font-weight:650; }
.workday-date { display:flex; align-items:center; gap:7px; font-size:12px; color:#e3edfa; padding:6px 10px; border:1px solid #ffffff26; border-radius:20px; }.workday-date .icon { width:14px; height:14px; }
.workday-header-main { display:flex; justify-content:space-between; align-items:center; gap:22px; }
.workday-person { display:flex; align-items:center; gap:16px; }.workday-avatar { display:flex; align-items:center; justify-content:center; width:52px; height:52px; flex-shrink:0; border-radius:15px; color:#e5f2dd; background:#ffffff12; border:1px solid #ffffff2b; font-size:18px; font-weight:600; }
.mobile-greet.workday-header h1 { margin:0; font-size:29px; font-weight:550; letter-spacing:-.7px; }.mobile-greet.workday-header .workday-person p { margin:6px 0 0; color:#d3dfef; font-size:12px; }
.workday-hours { padding:12px 16px; border-radius:12px; background:#ffffff0d; border:1px solid #ffffff23; display:grid; gap:3px; min-width:150px; }.workday-hours strong { font-size:29px; color:white; font-weight:600; line-height:1.1; }.workday-hours strong span { font-size:13px; font-weight:400; color:#e3edfa; }.workday-hours>span { font-size:11px; color:#d3dfef; }
.workday-header-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; padding-top:18px; border-top:1px solid #ffffff23; }.workday-header-actions .btn { min-height:38px; padding:9px 14px; font-size:12px; }.workday-header-actions .workday-time-button { background:#dceaff; color:#17345e; border-color:#dceaff; }.workday-header-actions .workday-project-button { color:white; background:transparent; border-color:#ffffff55; }.workday-header-actions .btn:hover { background:#c7ddf7; color:#17345e; }.workday-header-actions .icon { width:15px; height:15px; }
@media(max-width:500px) { .mobile-greet.workday-header { padding:20px; }.workday-header-top { margin-bottom:20px; }.workday-header-main { align-items:flex-start; flex-direction:column; gap:18px; }.workday-hours { width:100%; display:flex; align-items:center; justify-content:space-between; }.mobile-greet.workday-header h1 { font-size:26px; }.workday-date { font-size:10px; }.workday-heading-label { font-size:10px; letter-spacing:1px; } }
.mobile-greet .workday-time-button .icon { color:#17345e; }

#modal .access-check { display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:9px; margin:8px 0; text-align:left; }
#modal .access-check input[type=checkbox] { width:16px; height:16px; flex-shrink:0; margin:0; }
.access-department-limits>summary { font-size:12px; cursor:pointer; padding:12px 0; }
.mobile-project-picker>span { display:block; padding:10px 12px; background:#edf3fa; border:1px solid #d8e3f0; border-radius:8px; font-size:13px; }
/* Trade identity stays on project content; the navigation keeps its folder. */
.project-overview-toolbar{align-items:flex-end;flex-wrap:wrap;gap:14px}
.project-overview-toolbar>label{min-width:150px;font-size:12px;color:#425675}
.project-overview-toolbar select{margin-top:5px}
.project-overview-toolbar .project-group-toggle{display:flex;align-items:center;gap:8px;min-height:42px;white-space:nowrap}
.project-overview-toolbar .project-group-toggle input{width:16px;height:16px;margin:0;accent-color:#203f7a}
.project-trade-mark{display:inline-flex;align-items:center;gap:8px;color:#203f7a;font-size:12px;margin:15px 0 6px}
.project-trade-mark .icon{width:24px;height:24px}
.project-overview-group{margin-top:20px}
.project-overview-group>h2{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}
.project-overview-group>h2 small{font-size:12px;color:#69788c;font-weight:400}
.resource-art.fleet-art{isolation:isolate}
.resource-art.fleet-art img{mix-blend-mode:multiply}
.winter-slot img,.winter-choice img{mix-blend-mode:multiply}
.project-overview-toolbar>label{margin-bottom:0}
.winter-map-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.winter-map-heading h2{font-size:25px;margin:5px 0}.winter-map-heading p:not(.eyebrow){font-size:12px;color:#69768a;margin:7px 0}.winter-intelligence-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:18px}.winter-intelligence-toolbar label{font-size:11px;color:#52647a;margin:0}.winter-intelligence-toolbar select{display:block;min-height:38px;margin-top:5px;padding:8px 12px}.winter-intelligence-toolbar .btn{min-height:38px}.winter-map-mode{display:flex;gap:3px;padding:4px;border:1px solid #dce3eb;border-radius:11px;background:#edf2f7;margin-right:auto}.winter-map-mode button{display:flex;align-items:center;gap:7px;border:0;border-radius:8px;padding:11px 14px;background:transparent;color:#52647a;font-size:12px;cursor:pointer}.winter-map-mode button[aria-pressed=true]{background:#203f7a;color:white;box-shadow:0 2px 5px #203f7a20}.winter-map-metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #dce3eb;border-radius:12px;background:white;margin-bottom:16px}.winter-map-metrics>div{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 22px;border-right:1px solid #e6ebf1}.winter-map-metrics>div:last-child{border:0}.winter-map-metrics strong{font-size:24px;color:#203f7a;font-weight:600}.winter-map-metrics span{font-size:11px;color:#69768a}.winter-map-metrics i{position:absolute;right:18px;top:22px;width:9px;height:9px;border-radius:50%}.winter-intelligence-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:16px;align-items:start}.winter-intelligence .winter-map-canvas{align-self:start;isolation:isolate}.winter-intelligence .winter-map-viewport{aspect-ratio:5/3;background:#e0e8e7}.winter-intelligence .winter-map-tiles{filter:saturate(.48);opacity:.9}.winter-intelligence .winter-operational-svg{pointer-events:auto}.winter-road{cursor:pointer;outline:none}.winter-road:focus polyline:first-of-type{stroke:#203f7a;stroke-width:23}.winter-moving-vehicle{pointer-events:none}.winter-map-selected{position:relative;display:flex;flex-direction:column;gap:5px;padding:13px 18px 30px;background:#fff;border-top:1px solid #dce3eb;font-size:12px;min-height:75px}.winter-map-selected strong{color:#203f7a}.winter-map-selected span{font-size:11px;color:#69768a}.winter-intelligence .winter-map-attribution{font-size:9px;background:#fff}.winter-intelligence #winter-map-sidebar{padding:20px;min-height:0}.winter-intelligence #winter-map-sidebar h3{font-size:13px}.winter-live-vehicle{display:flex;flex-direction:column;gap:5px;padding:12px 0;border-bottom:1px solid #e7ebef}.winter-live-vehicle strong{font-size:12px}.winter-live-vehicle span,.winter-live-vehicle small{font-size:10px;color:#69768a}.winter-live-vehicle .plow-down{color:#25845c}.winter-live-vehicle .plow-up{color:#8a641d}.winter-demo-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#25845c;margin-left:6px;box-shadow:0 0 0 4px #25845c13}.winter-map-priority{display:flex;flex-direction:column;gap:4px;width:100%;padding:11px 10px;margin:8px 0;border:1px solid #e2e7ee;border-left:3px solid var(--priority-color,#203f7a);border-radius:7px;background:#fff;text-align:left;cursor:pointer;color:#425675}.winter-map-priority.selected{background:#edf3fb}.winter-map-priority span{font-size:11px}.winter-map-priority strong{font-size:12px;color:var(--priority-color,#203f7a)}.winter-map-priority small{font-size:10px}.winter-analysis-note{background:#edf3fb;border-radius:8px;padding:13px;font-size:11px;line-height:1.6;margin-top:16px}.winter-analysis-note p{margin:6px 0 0}.winter-map-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:15px 0;font-size:11px;color:#52647a}.winter-map-legend>span{display:flex;align-items:center;gap:7px}.winter-map-legend i{width:19px;height:5px;border-radius:4px}.winter-map-legend small{flex-basis:100%;font-size:10px}.winter-heat-scale{height:10px;width:140px;border-radius:10px;background:linear-gradient(90deg,#387cba,#439b79,#d9b641,#e48135,#c53449)}.winter-map-events{display:flex;flex-direction:column;gap:9px;padding:14px 18px;background:#edf3fa;border-radius:10px;font-size:11px;min-height:43px}.winter-map-events time{font-weight:600;color:#203f7a;margin-right:6px}.winter-map-disclaimer{font-size:10px;color:#798492;line-height:1.7;margin:18px 0}.winter-route-comparison h3{margin-bottom:16px}.winter-route-comparison td:nth-child(n+2),.winter-route-comparison th:nth-child(n+2){text-align:right}@media(max-width:1100px){.winter-intelligence-layout{grid-template-columns:minmax(0,1fr) 220px}.winter-intelligence #winter-map-sidebar{padding:14px}.winter-map-mode button{padding:10px;font-size:11px}}@media(max-width:800px){.winter-intelligence-layout{grid-template-columns:1fr}.winter-map-metrics{grid-template-columns:1fr 1fr}.winter-map-metrics>div:nth-child(2){border-right:0}.winter-map-heading{align-items:flex-start;flex-direction:column}.winter-map-mode{width:100%}.winter-map-mode button{flex:1}.winter-intelligence #winter-map-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:8px}.winter-intelligence #winter-map-sidebar h3,.winter-analysis-note{grid-column:1/-1}.winter-intelligence .winter-map-viewport{aspect-ratio:5/4}.winter-intelligence .winter-operational-svg{width:100%;height:100%}}
.winter-intelligence .winter-map-viewport{aspect-ratio:5/3}
.winter-intelligence .winter-map-priority{padding:8px 9px;margin:6px 0;gap:3px}.winter-intelligence .winter-live-vehicle{padding:8px 0;gap:4px}.winter-intelligence #winter-map-sidebar>.section-gap{margin-top:16px}
.winter-kit-overview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.winter-kit-overview-head h2{display:flex;align-items:baseline;gap:12px}.winter-kit-overview-head h2>span{font-size:12px;font-weight:400;color:#788596}.winter-kit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.winter-kit-card{padding:22px;transition:border-color .16s,box-shadow .16s;overflow:hidden}.winter-kit-card.editable{cursor:pointer}.winter-kit-card.editable:hover,.winter-kit-card.editable:focus-within{border-color:#a7bfdc;box-shadow:0 5px 20px #203f7a0c}.winter-kit-card:focus-visible{outline:2px solid #203f7a;outline-offset:3px}.winter-kit-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:65px}.winter-kit-card header .eyebrow{font-size:9px;letter-spacing:1px;line-height:1.7;color:#697b92;margin:0 0 7px}.winter-kit-card h3{font-size:17px;line-height:1.4;color:#203f7a;margin:0}.winter-kit-card header .badge{white-space:nowrap;flex-shrink:0;font-size:10px}.winter-kit-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#f0f0e8;border-radius:11px;margin:18px 0 0;padding:14px 10px;gap:9px}.winter-kit-part{display:flex;flex-direction:column;min-width:0;text-align:center;align-items:center}.winter-kit-part>span{font-size:9px;color:#73806f}.winter-kit-part img{width:100%;height:85px;object-fit:contain;mix-blend-mode:multiply;margin:5px 0 8px}.winter-kit-part strong{font-size:10px;line-height:1.5;font-weight:500;overflow-wrap:anywhere}.winter-kit-part small{font-size:9px;color:#788596;margin-top:4px}.winter-kit-empty-part{height:98px;display:flex;align-items:center;color:#a8afa3;font-size:28px}.winter-kit-part.empty strong{color:#8c9489}.winter-kit-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:18px;margin-top:18px;border-top:1px solid #e5e9ed}.winter-kit-card>footer>span{font-size:11px;color:#6c7c90}.winter-kit-edit{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.winter-kit-edit svg{flex-shrink:0}@media(max-width:850px){.winter-kit-grid{grid-template-columns:1fr}.winter-kit-part img{height:105px}}@media(max-width:440px){.winter-kit-card{padding:16px}.winter-kit-card>header{flex-direction:column}.winter-kit-part img{height:75px}}
/* Staff and project planning */
.planning-summary{display:flex;gap:16px;margin:22px 0}.planning-summary>div{flex:1;padding:18px 22px;border:1px solid #dce3ec;border-radius:14px;background:#fff;display:flex;align-items:center;gap:14px}.planning-summary strong{font-size:26px;color:#203f77}.planning-summary span{font-size:12px;color:#596b7e}.staff-plan{min-width:1100px}.staff-plan-head,.staff-plan-row{display:grid;grid-template-columns:200px repeat(7,minmax(120px,1fr))}.staff-plan-head{background:#edf3fa;color:#254b75}.staff-plan-head>*,.staff-plan-person{padding:18px}.staff-plan-head>div{text-align:center;display:grid;gap:6px}.staff-plan-row{border-top:1px solid #e1e6eb}.staff-plan-person{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.staff-plan-person small{color:#687781}.staff-plan-day{padding:8px;min-height:160px;border-left:1px solid #e7e9ec}.staff-plan .weekend,.project-plan-grid.weekend{background:#f4f4ef}.staff-plan .is-today{box-shadow:inset 0 3px #254b75;background:#f2f7fc}.staff-plan-item{width:100%;text-align:left;border:1px solid #c2d4ea;background:#e7f0fb;border-left:3px solid #315c92;border-radius:7px;padding:9px;margin-bottom:6px;color:#203f67;cursor:pointer}.staff-plan-item strong,.staff-plan-item small{display:block;line-height:1.5}.staff-plan-item small{font-size:10px;margin-top:4px}.staff-plan-item.workshop{background:#e8f2e4;border-color:#bcd0b3;color:#3e6234}.staff-plan-item.winter{background:#f0eaf7;border-color:#cbb9de;color:#665078}.planning-empty{display:block;font-size:11px;color:#7d8589;padding:8px 0}.planning-add{border:0;background:transparent;color:#315c92;padding:7px 0;cursor:pointer;font-size:11px}.planning-hours{border-top:1px dashed #c5cdd5;margin-top:12px;padding-top:8px;font-size:11px}.planning-hours button{display:block;border:0;background:none;padding:5px 0;text-align:left;font-size:10px;color:#576779;cursor:pointer}.planning-legend{display:flex;gap:22px;margin:12px 0;font-size:11px;color:#637486}.project-plan{min-width:1000px}.project-plan-head,.project-plan-row{display:grid;grid-template-columns:310px 1fr}.project-plan-head{background:#edf3fa;color:#254b75}.project-plan-head>strong{padding:18px}.project-plan-weeks{display:grid;grid-template-columns:repeat(4,1fr)}.project-plan-weeks span{padding:18px 8px;border-left:1px solid #d7e0e9;font-size:11px;text-align:center}.project-plan-row{border-top:1px solid #e0e6eb}.project-plan-label{padding:16px;display:grid;gap:8px}.project-plan-label>button:first-child{border:0;background:none;text-align:left;padding:0;color:#203f67;cursor:pointer}.project-plan-label>small{color:#697681}.project-plan-label .btn{justify-self:start}.project-plan-track{position:relative;min-height:135px}.project-plan-grid{position:absolute;top:0;bottom:0;border-left:1px solid #e8ebee}.project-plan-bar{position:absolute;top:28px;height:38px;min-width:8px;border:1px solid #315c92;background:#dce9fa;color:#163863;border-radius:7px;overflow:hidden;cursor:pointer;text-align:left}.project-plan-bar>span{position:absolute;inset:0 auto 0 0;background:#aac5e9}.project-plan-bar strong{position:relative;padding:8px;white-space:nowrap}.project-plan-bar.late{border-color:#ba5c50;background:#f6e4e0}.project-plan-bar.late>span{background:#e4b6ae}.project-plan-today{position:absolute;top:0;bottom:0;border-left:2px dashed #264c7d;z-index:1;pointer-events:none}.project-plan-deadline{position:absolute;bottom:18px;right:12px;font-size:10px;color:#667681;background:#ffffffdd;padding:3px 5px}.planning-add:focus-visible,.staff-plan-item:focus-visible,.project-plan-bar:focus-visible{outline:3px solid #315c92;outline-offset:2px}@media(max-width:650px){.planning-summary{gap:8px}.planning-summary>div{padding:12px;display:block}.planning-summary span{display:block;font-size:10px;margin-top:6px}.planning-summary strong{font-size:22px}}
.planning-summary strong{white-space:nowrap}.project-plan{min-width:760px}.project-plan-head,.project-plan-row{grid-template-columns:260px 1fr}.staff-plan-person{position:sticky;left:0;z-index:2;background:#fff}.staff-plan-head>strong{position:sticky;left:0;z-index:3;background:#edf3fa}
.project-plan{min-width:600px}.project-plan-head,.project-plan-row{grid-template-columns:230px 1fr}.project-plan-weeks span{font-size:10px;padding:18px 3px}.project-plan-dates{position:relative;z-index:1;display:grid;grid-template-columns:repeat(28,1fr);font-size:9px;color:#8190a0;text-align:center;padding-top:6px}.project-plan-label{padding:14px}.project-plan-label .tiny{display:block;margin-top:5px}
.equipment-calendar-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.equipment-calendar-controls input[type=date]{width:145px;padding:8px 10px;font:inherit}.equipment-view-switch{display:flex;gap:4px;margin-left:auto}.equipment-calendar-workspace>.equipment-legend{margin:0 0 14px;gap:8px}.equipment-calendar-workspace .equipment-timeline{--equipment-days:7}.equipment-calendar-workspace .equipment-timeline-head,.equipment-calendar-workspace .equipment-timeline-row{grid-template-columns:220px minmax(0,1fr)}.equipment-calendar-workspace .equipment-day-heads,.equipment-calendar-workspace .equipment-day-grid{grid-template-columns:repeat(var(--equipment-days),minmax(0,1fr))}.equipment-calendar-workspace .equipment-resource-label{position:sticky;left:0;z-index:3;box-shadow:2px 0 3px #00000008}.equipment-calendar-workspace .equipment-group-title .icon{width:27px;height:27px;flex:0 0 27px;color:#264c7c}.equipment-calendar-workspace .equipment-group-title strong{font-size:11px;line-height:1.25}.equipment-calendar-workspace .equipment-group-title{padding:6px 10px}.equipment-timeline.view-month{min-width:1620px}.equipment-timeline.view-half{min-width:1120px}.equipment-timeline.view-year{min-width:1420px}.equipment-timeline:not(.view-week) .equipment-day-grid>div{background-image:none}.equipment-calendar-workspace .equipment-day-head.weekend{background:#f3f5f8}.equipment-calendar-workspace .equipment-day-grid>.today,.equipment-calendar-workspace .equipment-day-head.today{background-color:#e4efff}.equipment-month-head{padding:14px 8px 10px;text-align:center;border-right:1px solid #cbd5e0;background:#f2f5f8}.equipment-month-head strong,.equipment-month-head small{display:block}.equipment-month-head small{margin-top:9px;color:#7a8591}.equipment-timeline.view-half .equipment-day-grid>div,.equipment-timeline.view-year .equipment-day-grid>div{border-right:0}.equipment-timeline.view-half .equipment-day-grid>.week-start,.equipment-timeline.view-year .equipment-day-grid>.week-start{border-left:1px solid #e8edf2}.equipment-timeline.view-half .equipment-day-grid>.month-start,.equipment-timeline.view-year .equipment-day-grid>.month-start{border-left:1px solid #bac8d7}.equipment-booking.compact{min-width:6px;padding:3px 4px;border-radius:4px;font-size:10px}.equipment-booking.compact span{display:none}.equipment-booking.returned{opacity:.76}.equipment-booking.compact:hover,.equipment-booking.compact:focus-visible{min-width:12px;opacity:1}.equipment-booking.compact:focus-visible{outline-offset:1px}.equipment-timeline:not(.view-week) .equipment-group-track-heading{font-size:10px}@media(max-width:700px){.equipment-view-switch{margin-left:0;width:100%}.equipment-view-switch .btn{flex:1}.equipment-calendar-workspace .equipment-timeline-head,.equipment-calendar-workspace .equipment-timeline-row{grid-template-columns:170px minmax(0,1fr)}}
.equipment-calendar-workspace .view-week,.equipment-calendar-workspace .view-half,.equipment-calendar-workspace .view-year{min-width:900px}.equipment-calendar-workspace .view-year .equipment-month-head{padding-left:2px;padding-right:2px;font-size:10px;overflow:hidden}.equipment-calendar-workspace .view-year .equipment-month-head strong{white-space:nowrap}.equipment-calendar-workspace .view-year .equipment-month-head small{font-size:9px}
