/* Rental CRM: a quiet operational interface. Loaded after feature styles. */
@font-face {
  font-family: 'Golos Text';
  src: url('/static/fonts/GolosText-Variable.ttf') format('truetype');
  font-weight: 400 900;
  font-display: swap;
}
:root {
  --canvas: #f6f7f5;
  --surface: #ffffff;
  --surface-subtle: #f0f2ee;
  --ink: #242b29;
  --muted: #66716a;
  --line: #dce1dd;
  --line-strong: #b8c2bb;
  --primary: #235b49;
  --primary-hover: #194735;
  --primary-soft: #e7eee9;
  --positive: #286346;
  --warning: #805a21;
  --danger: #a54139;
  --radius: 6px;
  --sidebar-width: 228px;
}
html { font-size: 16px; }
body {
  background: var(--canvas);
  color: var(--ink);
  font-family: 'Golos Text', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
}
h1,h2,h3 { color: var(--ink); font-weight: 600; }
h1 { font-size: 30px; line-height: 1.2; letter-spacing: -.035em; }
h2 { font-size: 17px; line-height: 1.4; letter-spacing: -.015em; }
h3 { font-size: 15px; line-height: 1.4; letter-spacing: -.01em; }
p, small, .muted, .footnote { color: var(--muted); }
small, .footnote { font-size: 12px; line-height: 1.5; }
a { color: var(--primary); text-underline-offset: 3px; }
.positive { color: var(--positive); }
.negative, .required { color: var(--danger); }
.eyebrow { color: var(--muted); font-size: 10px; letter-spacing: .1em; font-weight: 500; }
:where(button,input,select,textarea) { font-family: inherit; }
:where(input,select,textarea,button,a,summary):focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}
::selection { background: #dae7de; color: #193d2e; }
/* Navigation is deliberately lighter than the work itself. */
.sidebar { width: var(--sidebar-width); padding: 25px 14px 18px; background: var(--surface-subtle); border-right: 1px solid var(--line); color: var(--ink); }
.brand { gap: 10px; font-weight: 650; letter-spacing: .025em; font-size: 17px; }
.brand-mark { width: 33px; height: 33px; border-radius: 5px; background: #293c32; color: white; font-size: 21px; font-weight: 550; }
.brand small { font-size: 10px; letter-spacing: 0; color: var(--muted); }
.company-badge { padding: 25px 7px 23px; gap: 9px; }
.company-badge strong { font-size: 12px; font-weight: 550; }
.company-badge small { color: var(--muted); font-size: 11px; }
.company-avatar { width: 30px; min-width: 30px; height: 30px; border: 1px solid var(--line-strong); border-radius: 5px; color: #4d5c52; font-size: 13px; }
.sidebar nav>a { border-radius: 5px; color: #556158; font-size: 13px; padding: 10px 12px; gap: 10px; margin: 2px 0; font-weight: 450; }
.sidebar nav>a:hover { background: #e6eae4; color: var(--ink); }
.sidebar nav>a.active { background: #dfe7df; color: #214936; font-weight: 600; }
.sidebar nav>a>span:first-child, .sidebar nav>a.active>span:first-child { width: 17px; height: 17px; color: currentColor; font-size: 15px; }
.nav-icon { display: inline-block; width: 17px; height: 17px; flex: 0 0 17px; background: currentColor; mask: var(--icon) center/contain no-repeat; -webkit-mask: var(--icon) center/contain no-repeat; }
.nav-label { font-size: 10px; color: #6a766d; letter-spacing: .08em; margin: 24px 12px 8px; }
.account-line { border-top: 1px solid var(--line); padding-top: 16px; margin: 0 6px; }
.account-line a { font-size: 12px; color: var(--ink); }
.account-line small { color: var(--muted); font-size: 11px; }
.account-line .icon-button { display: grid; place-items: center; color: var(--muted); }
.sidebar-bottom { padding-top: 24px; }
.subscription-mini { background: transparent; border-color: var(--line); color: var(--ink); border-radius: var(--radius); margin-bottom: 18px; }
.subscription-mini small { color: var(--muted); }
.onboarding-rail { gap: 20px; padding: 0 8px; color: #6e7a71; font-size: 12px; }
.onboarding-rail .current { color: var(--primary); }
.onboarding-rail p { color: var(--muted); font-size: 12px; line-height: 1.7; }
.workspace { margin-left: var(--sidebar-width); }
.topbar { height: 58px; background: var(--surface); border-color: var(--line); padding: 0 32px; font-size: 12px; }
.topbar-right { color: var(--muted); font-variant-numeric: tabular-nums; }
.content { max-width: 1440px; padding: 30px 32px 70px; }
.page-heading { align-items: center; gap: 20px; margin: 6px 0 27px; }
.page-heading h1 { margin-bottom: 8px; }
.page-heading p { font-size: 13px; line-height: 1.5; }
.page-heading .eyebrow { margin-bottom: 10px; }
.guide-entry { margin-bottom: 18px; }
.guide-entry a { font-size: 12px; color: var(--muted); }
/* Controls share one height, border and focus treatment. */
.button { border-radius: 5px; min-height: 38px; padding: 8px 14px; font-size: 13px; font-weight: 500; color: var(--ink); border-color: #cdd5ce; box-shadow: none; background: var(--surface); }
.button:hover { background: #edf1ec; border-color: #aebbb1; }
.button.primary { background: var(--primary); border-color: var(--primary); color: white; box-shadow: none; }
.button.primary:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
.button.small { font-size: 12px; min-height: 31px; padding: 5px 10px; }
.button:disabled { opacity: .48; cursor: not-allowed; }
.icon-button { border-radius: 5px; background: var(--surface-subtle); color: var(--muted); }
label { color: #455249; font-size: 13px; font-weight: 450; margin-bottom: 18px; }
input,select,textarea { min-height: 40px; padding: 9px 11px; color: var(--ink); border-color: #c8d1c9; border-radius: 5px; background: var(--surface); font-size: 14px; }
input::placeholder,textarea::placeholder { font-size: 13px; color: #7a867e; }
input:focus,select:focus,textarea:focus { border-color: var(--primary); outline: 2px solid #b9d0c1; outline-offset: 1px; }
label small { font-size: 12px; color: var(--muted); }
input[type=checkbox],input[type=radio] { accent-color: var(--primary); }
.form-section,.form-footer,.profile-details,.summary-line { border-color: var(--line); }
.form-grid { gap: 0 22px; }
.form-footer { margin-top: 20px; padding-top: 20px; }
.backlink { color: var(--muted); font-size: 12px; }
/* Surfaces and tables: thin dividers instead of floating cards. */
.card { border: 1px solid var(--line); border-radius: var(--radius); padding: 23px; margin-bottom: 20px; box-shadow: none; background: var(--surface); }
.card-heading { margin-bottom: 18px; }
.card-heading a,.card-heading>span,.card-heading>div>.muted { font-size: 12px; }
.dashboard-grid,.dashboard-grid.secondary,.two-columns { gap: 20px; }
.metrics { gap: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; margin-bottom: 24px; }
.metric { border: 0; border-right: 1px solid var(--line); border-radius: 0; padding: 21px 22px 19px; background: transparent; }
.metric:last-child { border-right: 0; }
.metric>span { font-size: 12px; color: var(--muted); margin-bottom: 13px; }
.metric>strong { font-size: 29px; font-weight: 500; letter-spacing: -.035em; line-height: 1.2; margin-bottom: 12px; font-variant-numeric: tabular-nums; }
.metric>strong small { font-size: 11px; }
.metric>a,.metric>small { font-size: 11px; line-height: 1.5; }
.metric.accent { background: #f2f6f0; border-color: var(--line); }
.metric.accent>strong { color: #26533c; }
.metric.accent>span { color: #596d60; }
.metric.alert-metric { background: #faf5eb; }
table { font-size: 13px; font-variant-numeric: tabular-nums; }
th { padding: 11px 12px; font-size: 11px; font-weight: 500; background: #f5f7f3; color: #637168; border-color: var(--line); }
td { padding: 14px 12px; border-color: #e7ebe6; }
tbody tr:hover { background: #fafbf8; }
td small { font-size: 11px; color: var(--muted); }
.row-link { color: var(--ink); font-weight: 550; }
.badge { border-radius: 4px; padding: 3px 7px; font-size: 11px; font-weight: 450; line-height: 1.5; }
.badge.issued { background: #e9f0e7; color: #376043; }
.badge.reserved { background: #e9eef2; color: #46627a; }
.badge.returned,.badge.neutral { background: #eef1ec; color: #626e64; }
.badge.cancelled { background: #efefec; color: #6e726c; }
.badge.late { background: #fbefdd; color: #85602a; }
.tabs { gap: 4px; border-color: var(--line); }
.tabs a { color: var(--muted); font-size: 13px; padding: 11px 14px; }
.tabs a.active { color: var(--primary); border-bottom: 2px solid var(--primary); }
.list-row,.day-event-row,.signal { border-color: #e6ebe5; font-size: 13px; }
.day-event-row { padding: 16px 0; }
.day-event-row:hover { background: #f7f9f4; }
.day-event-time,.day-event-row strong { font-size: 13px; font-weight: 500; }
.day-event-row small { font-size: 12px; color: var(--muted); }
.signal { color: var(--ink); padding: 14px 0; }
.signal strong { font-size: 13px; font-weight: 500; }
.signal p { font-size: 12px; }
.signal-dot { background: #af803b; }
.calm { padding: 22px 6px; text-align: left; }
.calm>span { display: none; }
.calm h3 { font-size: 14px; font-weight: 500; }
.calm p { font-size: 12px; max-width: 420px; }
.compact-callout,.getting-started { background: #f7f9f4; border-color: var(--line); }
.chips>span { color: #5f6c62; background: #edf1e9; border-radius: 4px; padding: 5px 9px; font-size: 12px; }
.notice { border-radius: 5px; font-size: 13px; padding: 12px 15px; }
.notice.info { background: #eef3ef; border-color: #d4dfd5; color: #44614d; }
.notice.success { background: #edf4e9; border-color: #d3e1d0; color: #3a6542; }
.notice.warning { background: #fcf5e7; border-color: #eadbbe; color: #795b25; }
.empty { padding: 42px 16px; }
.empty-icon { display: none; }
.empty h3 { font-size: 16px; font-weight: 500; }
.empty p { font-size: 13px; }
.note-text,.assistant-answer { background: #f4f6f1; border-radius: 5px; border-color: var(--line); }
/* Set-up, booking and catalogue use the same selection language. */
.setup-start { max-width: 820px; margin: 45px auto 20px; padding: 40px; border-radius: 7px; }
.setup-start h1,.setup-welcome h1 { font-size: 30px; letter-spacing: -.035em; font-weight: 550; }
.setup-start>p,.setup-welcome>p { font-size: 14px; line-height: 1.7; max-width: 650px; }
.setup-route-cards { gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 28px 0; }
.setup-route-cards>div { border: 0; border-right: 1px solid var(--line); border-radius: 0; background: transparent; padding: 21px 20px; }
.setup-route-cards>div:first-child { padding-left: 0; }
.setup-route-cards>div:last-child { border-right: 0; }
.setup-route-cards>div>span,.setup-step,.step { border-radius: 4px; color: var(--primary); background: var(--primary-soft); font-weight: 500; }
.setup-route-cards strong { color: var(--ink); font-weight: 500; font-size: 14px; }
.setup-route-cards small { font-size: 12px; color: var(--muted); }
.setup-progress span { border-radius: 4px; color: var(--muted); border-color: var(--line); }
.setup-progress .active,.selection-count { background: var(--primary-soft); color: var(--primary); border-color: #bbcfbf; }
.direction-card,.category-group,.setup-submit,.first-direction-grid>a,.booking-line,.booking-mode label>span { border-radius: var(--radius); border-color: var(--line); box-shadow: none; }
.direction-card:hover,.first-direction-grid>a:hover { border-color: #91a897; background: #f7f9f4; box-shadow: none; }
.direction-card:has(input:checked),.booking-mode input:checked+span { background: #f1f5ed; border-color: #8da793; box-shadow: none; color: var(--primary); }
.direction-icon { background: #edf1e9; color: #5c705f; border-radius: 5px; }
.direction-card:has(input:checked) .direction-icon { background: #e1eadb; color: #436049; }
.direction-copy strong,.setup-submit strong,.first-direction-grid strong { color: var(--ink); font-size: 13px; font-weight: 500; }
.direction-copy small,.setup-submit small,.first-direction-grid small { color: var(--muted); font-size: 12px; }
.category-choice { border-color: var(--line); color: var(--muted); border-radius: 4px; background: #fafbf8; }
.category-choice:has(input:checked) { background: var(--primary-soft); border-color: #c0d0c0; color: var(--primary); }
.category-toggle,.setup-custom summary,.settings-anchor-nav a,.first-add { color: var(--primary); }
.setup-submit { box-shadow: none; }
.settings-anchor-nav { border-color: var(--line); }
.settings-anchor-nav a.current { color: var(--primary); background: var(--primary-soft); border-radius: 4px; }
.inventory-directions { gap: 7px; }
.inventory-directions>a { border-radius: 4px; padding: 7px 10px; font-size: 12px; color: var(--muted); border-color: var(--line); }
.inventory-directions>a.active { color: var(--primary); background: var(--primary-soft); border-color: #b9ccbd; }
.inventory-directions>a>span:last-child,.inventory-directions>a.active>span:last-child { background: #e7ece3; color: #4c6450; }
.booking-mode strong { font-size: 14px; font-weight: 500; }
.booking-mode small,.line-availability,.booking-quote-message { font-size: 12px; color: var(--muted); }
.booking-availability-status { background: #f0f3ed; color: var(--muted); border-radius: 4px; }
.line-availability.available,.booking-quote-message.valid { color: var(--positive); }
.line-availability.unavailable,.booking-quote-message.invalid { color: var(--danger); }
.duration-shortcuts button { border-color: var(--line); color: #4a5c50; border-radius: 4px; }
.duration-shortcuts button:hover { background: var(--primary-soft); }
.customer-tabs { border-radius: 5px; background: #edf1e9; }
.customer-tabs label>span { color: var(--muted); font-size: 13px; }
.customer-tabs input:checked+span { color: var(--primary); border-radius: 3px; box-shadow: 0 1px 2px #21392912; }
.entity-suggestions { border-color: var(--line-strong); border-radius: 5px; box-shadow: 0 8px 24px #1d302218; }
.entity-option { color: var(--ink); border-radius: 3px; }
.entity-option:hover,.entity-option.active { background: var(--primary-soft); }
.entity-option small { color: var(--muted); }
.order-summary { border-color: #c8d5c8; border-radius: var(--radius); }
.summary-line>span { color: var(--muted); }
.summary-total strong { font-weight: 550; font-variant-numeric: tabular-nums; }
.product-payback .metrics { border-color: var(--line); }
.payback-track { height: 6px; border-radius: 2px; background: #e2e9df; }
.payback-track progress { accent-color: var(--primary); }
/* Entry screen is a product login, without a marketing hero. */
.public-workspace .content { max-width: 1100px; padding: 80px 32px; }
.auth-shell { min-height: 610px; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: 8px; box-shadow: none; }
.auth-story { background: #edf0e8; padding: 40px; color: var(--ink); gap: 30px; justify-content: flex-start; border-right: 1px solid var(--line); }
.auth-story>.brand { margin-bottom: 68px; }
.auth-story h1 { color: #2b3930; font-size: 43px; font-weight: 500; line-height: 1.08; letter-spacing: -.045em; margin: 14px 0 22px; }
.auth-story p { font-size: 14px; color: #606f63; line-height: 1.75; }
.auth-story .eyebrow { color: #6b786c; font-size: 10px; }
.auth-story .sector-chips { display: none; }
.auth-story .brand small { color: #728071; }
.auth-form { padding: 44px; }
.auth-form h2 { font-size: 25px; font-weight: 550; letter-spacing: -.025em; }
.auth-form>p { font-size: 13px; }
.auth-form>.eyebrow { display: none; }
.auth-form form { margin-top: 22px; }
.auth-form .button { min-height: 42px; }
.auth-switch { font-size: 12px; }
/* Support stays useful but visually secondary. */
.support-launcher { background: #2e4a38; border: 1px solid #24402d; border-radius: 6px; box-shadow: 0 2px 7px #182b211a; font-size: 12px; padding: 10px 13px; }
.support-launcher>span:first-child { background: transparent; }
.support-widget { border-radius: 8px; border-color: var(--line-strong); box-shadow: 0 12px 40px #17291e24; }
.support-header { background: #f6f8f3; border-color: var(--line); }
.support-header strong { color: var(--ink); font-size: 14px; }
.support-online { background: #4b7852; }
.support-messages { background: #f1f4ed; }
.support-message { border-radius: 6px; font-size: 13px; }
.support-message.assistant { color: var(--ink); border-color: var(--line); }
.support-message.user { background: var(--primary); }
.support-prompts button { border-radius: 4px; background: #f7f9f4; border-color: var(--line); color: #566950; font-size: 11px; }
.support-prompts button:hover { background: var(--primary-soft); }
.question { background: #f8faf5; border-color: var(--line); color: #4f6754; border-radius: 5px; }
.question.selected { background: var(--primary-soft); border-color: #a9c0ad; }
.assistant-avatar { background: #e7eee2; color: var(--primary); border-radius: 6px; }
/* Calendar status hues retain their meaning. */
.availability-cell { border-radius: 4px; }
.availability-cell.free { background: #eaf2e6; color: #3f6544; }
.availability-cell.busy { background: #f1ede3; color: #7c6b43; }
.availability-cell.free:hover { background: #dcead4; }
@media (min-width: 1500px) { .content { padding: 36px 40px 70px; } .metric>strong { font-size: 31px; } }
@media (max-width: 1200px) {
  :root { --sidebar-width: 212px; }
  .content { padding: 26px 25px 65px; }
  .metric:nth-child(2) { border-right: 0; }
  .metric:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .page-heading { flex-wrap: wrap; }
}
@media (max-width: 900px) {
  .sidebar { width: 100%; border-right: 0; border-bottom: 1px solid var(--line); padding: 16px 20px; }
  .sidebar nav { padding-bottom: 2px; margin-top: 12px; }
  .sidebar nav>a { padding: 8px 11px; font-size: 12px; }
  .workspace { margin-left: 0; }
  .mobile-account { color: #4e6653; top: 23px; font-size: 12px; }
  .topbar { height: 46px; padding: 0 20px; font-size: 11px; }
  .content { padding: 25px 20px 70px; }
  .auth-shell { grid-template-columns: 1fr; min-height: 0; }
  .auth-story { min-height: 0; padding: 24px 30px; border-right: 0; border-bottom: 1px solid var(--line); }
  .auth-story>.brand { margin-bottom: 0; }
  .auth-story>div { display: none; }
  .auth-form { padding: 34px 30px; }
  .public-workspace .content { max-width: 530px; padding: 40px 20px; }
  .setup-start { margin: 12px auto; padding: 30px; }
}
@media (max-width: 650px) {
  .page-heading { align-items: flex-start; flex-direction: column; gap: 17px; }
  h1,.setup-start h1,.setup-welcome h1 { font-size: 26px; }
  .page-heading>.actions { width: 100%; gap: 7px; }
  .page-heading>.actions>.button { flex: 1; font-size: 12px; min-height: 40px; }
  .content { padding: 22px 16px 76px; }
  .card { padding: 19px 16px; border-radius: 6px; }
  .metric { padding: 18px 14px; }
  .metric>strong { font-size: 23px; }
  .metric>span { font-size: 11px; }
  .metric>a,.metric>small { font-size: 11px; }
  .metrics.three .metric { border-right: 0; border-bottom: 1px solid var(--line); }
  .metrics.three .metric:last-child { border-bottom: 0; }
  .setup-route-cards { display: grid; grid-template-columns: 1fr; }
  .setup-route-cards>div,.setup-route-cards>div:first-child { padding: 18px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .setup-route-cards>div:last-child { border-bottom: 0; }
  .setup-start { padding: 26px 21px; }
  .setup-start .actions>.button { width: 100%; }
  .support-launcher { bottom: 16px; right: 16px; }
  .support-widget { border-radius: 0; }
  .mobile-cards td[data-label]:before { color: #66776a; font-size: 10px; }
  input,select,textarea { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media print {
  body { background: white; color: black; }
  .workspace { margin: 0; }
  .content { padding: 0; }
  .metrics { overflow: visible; }
  .support-launcher,.support-widget { display: none; }
}
.icon-shopping-bag{--icon:url("/static/icons/shopping-bag.svg")}
.icon-package{--icon:url("/static/icons/package.svg")}
.icon-sliders-horizontal{--icon:url("/static/icons/sliders-horizontal.svg")}
.icon-log-out{--icon:url("/static/icons/log-out.svg")}
.icon-user-plus{--icon:url("/static/icons/user-plus.svg")}
.icon-settings-2{--icon:url("/static/icons/settings-2.svg")}
.icon-layout-dashboard{--icon:url("/static/icons/layout-dashboard.svg")}
.icon-plus{--icon:url("/static/icons/plus.svg")}
.icon-check{--icon:url("/static/icons/check.svg")}
.icon-chart-no-axes-combined{--icon:url("/static/icons/chart-no-axes-combined.svg")}
.icon-arrow-up-right{--icon:url("/static/icons/arrow-up-right.svg")}
.icon-list-checks{--icon:url("/static/icons/list-checks.svg")}
.icon-users{--icon:url("/static/icons/users.svg")}
.icon-minus{--icon:url("/static/icons/minus.svg")}
.icon-calendar-days{--icon:url("/static/icons/calendar-days.svg")}

.icon-history{--icon:url("/static/icons/history.svg")}
.icon-circle-help{--icon:url("/static/icons/circle-help.svg")}
/* Calendar follows the same neutral surfaces and green selection. */
.calendar-view-tabs { background: #e9ede7; border-radius: 5px; }
.calendar-view-tabs a { color: var(--muted); border-radius: 3px; }
.calendar-view-tabs a.selected { color: var(--primary); box-shadow: none; }
.calendar-filterbox,.agenda-event,.overdue-section,.agenda-add { border-radius: 6px; border-color: var(--line); }
.calendar-filterbox summary,.calendar-filterbox summary>span { color: var(--primary); }
.month-panel { padding: 0; }
.month-day { color: var(--ink); border-color: #e8ece6; }
.month-day:hover { background: #f1f5ee; }
.month-day.is-selected { background: #edf3e9; box-shadow: inset 0 0 0 2px #66876d; }
.month-day.outside-month { background: #fafbf8; }
.is-today .month-day-number { color: var(--primary); }
.is-today .month-day-number:before { background: #dce8d7; border-radius: 4px; }
.month-weekdays span,.calendar-zone,.calendar-tip,.calendar-legend>span,.day-panel-header p,.event-meta,.event-note,.event-number,.continuing-section>p { color: var(--muted); }
.event-body h3 a,.event-equipment strong { color: var(--ink); }
.event-equipment li,.event-time { color: #506056; }
.agenda-add,.agenda-filter-note,.event-remaining { background: #f0f4ed; color: var(--primary); border-radius: 5px; }
.agenda-add:hover { background: #e7eee1; }
.overdue-section { background: #faf6ee; border-color: #e6ddcb; }
.overdue-section>h3,.overdue-section>p { color: #816641; }
.overdue-section .agenda-event { border-color: #e6ddcb; }
@media(min-width:901px) {
  .sidebar nav { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
  .sidebar-bottom { flex-shrink: 0; padding-top: 16px; }
}
