/*
 * Hausverwaltungs-Autopilot — Komponenten
 * ---------------------------------------------------------------------------
 * Presentational styles shared by the light-DOM custom elements and directly
 * reusable in application markup. All component elements use the `hva-`
 * prefix; their inner nodes use the `.hva-` class namespace below.
 */

/* --- Card ----------------------------------------------------------------- */
.card {
  background-color: var(--hva-color-surface);
  border: 1px solid var(--hva-color-border);
  border-radius: var(--hva-radius-lg);
  box-shadow: var(--hva-shadow-sm);
  padding: var(--hva-space-5);
}

.card--flush {
  padding: 0;
  overflow: hidden;
}

.card__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--hva-space-3);
  padding: var(--hva-space-5);
  border-bottom: 1px solid var(--hva-color-border);
}

.card__title {
  font-size: var(--hva-font-size-lg);
}

.card__body {
  padding: var(--hva-space-5);
}

/* --- Button ---------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--hva-space-2);
  min-height: 2.5rem;
  padding: var(--hva-space-2) var(--hva-space-4);
  border: 1px solid transparent;
  border-radius: var(--hva-radius-md);
  font-weight: 600;
  font-size: var(--hva-font-size-md);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--hva-duration-fast) var(--hva-ease),
    border-color var(--hva-duration-fast) var(--hva-ease),
    color var(--hva-duration-fast) var(--hva-ease);
}

.btn:disabled,
.btn[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.55;
}

.btn--primary {
  background-color: var(--hva-color-primary);
  color: var(--hva-color-on-primary);
}

.btn--primary:hover:not(:disabled) {
  background-color: var(--hva-color-primary-strong);
}

.btn--secondary {
  background-color: var(--hva-color-surface);
  border-color: var(--hva-color-border-strong);
  color: var(--hva-color-text);
}

.btn--secondary:hover:not(:disabled) {
  background-color: var(--hva-color-surface-alt);
}

.btn--ghost {
  background-color: transparent;
  color: var(--hva-color-primary);
}

.btn--ghost:hover:not(:disabled) {
  background-color: var(--hva-color-primary-soft);
}

.btn--danger {
  background-color: var(--hva-color-danger);
  color: var(--hva-color-on-dark);
}

.btn--danger:hover:not(:disabled) {
  background-color: color-mix(in srgb, var(--hva-color-danger) 85%, #000);
}

.btn--success {
  background-color: var(--hva-color-success);
  color: var(--hva-color-on-accent);
}

.btn--sm {
  min-height: 2rem;
  padding: var(--hva-space-1) var(--hva-space-3);
  font-size: var(--hva-font-size-sm);
}

.btn--lg {
  min-height: 3rem;
  padding: var(--hva-space-3) var(--hva-space-6);
  font-size: var(--hva-font-size-lg);
}

.btn--block {
  width: 100%;
}

.btn--icon {
  width: 2.5rem;
  padding: 0;
}

.btn__icon {
  display: inline-flex;
}

.btn__spinner {
  width: 1rem;
  height: 1rem;
}

/* --- Badge ----------------------------------------------------------------- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--hva-space-1);
  padding: var(--hva-space-1) var(--hva-space-2);
  border-radius: var(--hva-radius-full);
  font-size: var(--hva-font-size-xs);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  background-color: var(--hva-color-neutral-soft);
  color: var(--hva-color-neutral);
}

.badge--tone-primary { background-color: var(--hva-color-primary-soft); color: var(--hva-color-primary); }
.badge--tone-success { background-color: var(--hva-color-success-soft); color: var(--hva-color-success); }
.badge--tone-warning { background-color: var(--hva-color-warning-soft); color: var(--hva-color-warning); }
.badge--tone-danger  { background-color: var(--hva-color-danger-soft);  color: var(--hva-color-danger); }
.badge--tone-info    { background-color: var(--hva-color-info-soft);    color: var(--hva-color-info); }
.badge--tone-neutral { background-color: var(--hva-color-neutral-soft); color: var(--hva-color-neutral); }

/* --- Alert ----------------------------------------------------------------- */
.alert {
  display: flex;
  gap: var(--hva-space-3);
  align-items: flex-start;
  padding: var(--hva-space-3) var(--hva-space-4);
  border: 1px solid var(--hva-color-border);
  border-radius: var(--hva-radius-md);
  background-color: var(--hva-color-surface);
}

.alert__icon {
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.alert__body {
  flex: 1 1 auto;
  min-width: 0;
}

.alert__title {
  font-weight: 600;
}

.alert__message {
  margin-top: var(--hva-space-1);
  color: var(--hva-color-text-muted);
}

.alert--info    { border-color: var(--hva-color-info);    background-color: var(--hva-color-info-soft); }
.alert--success { border-color: var(--hva-color-success); background-color: var(--hva-color-success-soft); }
.alert--warning { border-color: var(--hva-color-warning); background-color: var(--hva-color-warning-soft); }
.alert--error   { border-color: var(--hva-color-danger);  background-color: var(--hva-color-danger-soft); }

.alert__dismiss {
  flex-shrink: 0;
}

/* --- Spinner ---------------------------------------------------------------- */
.spinner {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid var(--hva-color-border-strong);
  border-top-color: var(--hva-color-primary);
  border-radius: var(--hva-radius-full);
  animation: hva-spin 0.7s linear infinite;
}

.spinner--sm { width: 1rem; height: 1rem; }
.spinner--lg { width: 2.5rem; height: 2.5rem; border-width: 3px; }

.spinner--overlay {
  display: grid;
  place-items: center;
  padding: var(--hva-space-8);
}

@keyframes hva-spin {
  to { transform: rotate(360deg); }
}

/* --- Empty state ------------------------------------------------------------ */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hva-space-3);
  padding: var(--hva-space-10) var(--hva-space-4);
  text-align: center;
}

.empty-state__icon {
  color: var(--hva-color-text-subtle);
}

.empty-state__title {
  font-size: var(--hva-font-size-lg);
}

.empty-state__description {
  max-width: 26rem;
  color: var(--hva-color-text-muted);
}

.empty-state__action {
  margin-top: var(--hva-space-2);
}

/* --- Skeleton ---------------------------------------------------------------- */
.skeleton {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--hva-radius-sm);
  background-color: var(--hva-color-surface-alt);
}

.skeleton::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background-image: linear-gradient(
    90deg,
    transparent,
    rgb(255 255 255 / 0.45),
    transparent
  );
  animation: hva-shimmer 1.4s infinite;
}

.skeleton--text { height: 0.85em; margin-block: var(--hva-space-1); }
.skeleton--block { height: 5rem; }

@keyframes hva-shimmer {
  100% { transform: translateX(100%); }
}

@media (prefers-reduced-motion: reduce) {
  .skeleton::after {
    animation: none;
  }
}

/* --- Dialog ------------------------------------------------------------------ */
.dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--hva-z-overlay);
  display: grid;
  place-items: center;
  padding: var(--hva-space-4);
  background-color: rgb(15 32 47 / 0.5);
}

.dialog {
  width: 100%;
  max-width: 32rem;
  max-height: min(85vh, 48rem);
  overflow: auto;
  background-color: var(--hva-color-surface);
  border-radius: var(--hva-radius-lg);
  box-shadow: var(--hva-shadow-lg);
}

.dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hva-space-3);
  padding: var(--hva-space-5);
  border-bottom: 1px solid var(--hva-color-border);
}

.dialog__title {
  font-size: var(--hva-font-size-xl);
}

.dialog__body {
  padding: var(--hva-space-5);
}

.dialog__footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--hva-space-2);
  padding: var(--hva-space-4) var(--hva-space-5);
  border-top: 1px solid var(--hva-color-border);
}

/* --- Toast -------------------------------------------------------------------- */
.toast-region {
  position: fixed;
  right: var(--hva-space-4);
  bottom: var(--hva-space-4);
  z-index: var(--hva-z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-2);
  width: min(22rem, calc(100vw - var(--hva-space-8)));
}

.toast {
  display: flex;
  align-items: flex-start;
  gap: var(--hva-space-3);
  padding: var(--hva-space-3) var(--hva-space-4);
  border-radius: var(--hva-radius-md);
  border: 1px solid var(--hva-color-border);
  background-color: var(--hva-color-surface);
  box-shadow: var(--hva-shadow-md);
}

.toast--success { border-left: 4px solid var(--hva-color-success); }
.toast--error   { border-left: 4px solid var(--hva-color-danger); }
.toast--info    { border-left: 4px solid var(--hva-color-info); }
.toast--warning { border-left: 4px solid var(--hva-color-warning); }

.toast__message {
  flex: 1 1 auto;
}

/* --- Form fields ---------------------------------------------------------------- */
.field {
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-1);
}

.field__label {
  font-weight: 600;
  font-size: var(--hva-font-size-sm);
}

.field__control {
  min-height: 2.5rem;
  width: 100%;
  padding: var(--hva-space-2) var(--hva-space-3);
  border: 1px solid var(--hva-color-border-strong);
  border-radius: var(--hva-radius-md);
  background-color: var(--hva-color-surface);
}

.field__control:hover {
  border-color: var(--hva-color-primary);
}

.field__control[aria-invalid="true"] {
  border-color: var(--hva-color-danger);
}

.field__hint {
  color: var(--hva-color-text-muted);
  font-size: var(--hva-font-size-sm);
}

.field__error {
  display: flex;
  align-items: center;
  gap: var(--hva-space-1);
  color: var(--hva-color-danger);
  font-size: var(--hva-font-size-sm);
}

.field__required {
  color: var(--hva-color-danger);
}

/* --- Login form ------------------------------------------------------------------ */
.login-form {
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-4);
}

.login-form__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hva-space-3);
  margin-bottom: var(--hva-space-2);
  text-align: center;
}

.login-form__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: var(--hva-radius-lg);
  background-color: var(--hva-color-primary);
  color: var(--hva-color-on-primary);
}

/* --- Stat card --------------------------------------------------------------------- */
.stat-card {
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-2);
}

.stat-card__label {
  color: var(--hva-color-text-muted);
  font-size: var(--hva-font-size-sm);
  font-weight: 600;
}

.stat-card__value {
  font-size: var(--hva-font-size-3xl);
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.stat-card__meta {
  display: flex;
  align-items: center;
  gap: var(--hva-space-2);
  color: var(--hva-color-text-subtle);
  font-size: var(--hva-font-size-sm);
}

.stat-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--hva-radius-md);
  background-color: var(--hva-color-primary-soft);
  color: var(--hva-color-primary);
}

/* --- Data table ---------------------------------------------------------------------- */
.data-table {
  width: 100%;
  font-size: var(--hva-font-size-md);
}

.data-table__caption {
  padding: var(--hva-space-3);
  text-align: left;
  font-weight: 600;
  color: var(--hva-color-text-muted);
}

.data-table th,
.data-table td {
  padding: var(--hva-space-3) var(--hva-space-4);
  text-align: left;
  border-bottom: 1px solid var(--hva-color-border);
  vertical-align: top;
}

.data-table th {
  font-size: var(--hva-font-size-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--hva-color-text-muted);
  background-color: var(--hva-color-surface-alt);
}

.data-table tbody tr:hover {
  background-color: var(--hva-color-surface-alt);
}

.data-table__sort {
  display: inline-flex;
  align-items: center;
  gap: var(--hva-space-1);
  border: 0;
  padding: 0;
  background: none;
  font: inherit;
  font-weight: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  color: inherit;
}

.data-table__sort:hover {
  color: var(--hva-color-primary);
}

.data-table__num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.data-table--responsive {
  display: block;
  overflow-x: auto;
  white-space: nowrap;
}

.data-table__row {
  cursor: pointer;
}

.data-table__row-link {
  font-weight: 600;
}

.data-table__muted {
  color: var(--hva-color-text-muted);
}

/* --- Navigation ------------------------------------------------------------------------ */
.nav-link {
  display: flex;
  align-items: center;
  gap: var(--hva-space-3);
  padding: var(--hva-space-2) var(--hva-space-3);
  border-radius: var(--hva-radius-md);
  color: var(--hva-color-text-muted);
  text-decoration: none;
  font-weight: 500;
}

.nav-link:hover {
  background-color: var(--hva-color-surface-alt);
  color: var(--hva-color-text);
}

.nav-link[aria-current="page"] {
  background-color: var(--hva-color-primary-soft);
  color: var(--hva-color-primary);
  font-weight: 600;
}

.nav-link__label {
  flex: 1 1 auto;
}

/* --- Workflow decision ------------------------------------------------------------------- */
.workflow-decision {
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-4);
  padding: var(--hva-space-4);
  border: 1px solid var(--hva-color-warning);
  border-radius: var(--hva-radius-lg);
  background-color: var(--hva-color-warning-soft);
}

.workflow-decision__heading {
  display: flex;
  gap: var(--hva-space-2);
  align-items: center;
  font-weight: 600;
}

.workflow-decision__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hva-space-2);
}

/* --- Ticket detail / form ---------------------------------------------------------------- */
.ticket-detail__subject {
  font-size: var(--hva-font-size-xl);
}

.ticket-detail__meta {
  margin-top: var(--hva-space-2);
  color: var(--hva-color-text-muted);
  font-size: var(--hva-font-size-sm);
}

.ticket-detail__description {
  margin-top: var(--hva-space-4);
  white-space: pre-wrap;
}

.ticket-form {
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-4);
}

.ticket-form__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--hva-space-2);
}

/* --- Timeline ----------------------------------------------------------------------------- */
.timeline {
  list-style: none;
  margin-top: var(--hva-space-3);
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: var(--hva-space-3);
}

.timeline__item {
  display: flex;
  align-items: center;
  gap: var(--hva-space-3);
}

.timeline__dot {
  flex-shrink: 0;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: var(--hva-radius-full);
  background-color: var(--hva-color-primary);
}

.timeline__type {
  font-weight: 600;
}

.timeline__time {
  margin-left: auto;
  color: var(--hva-color-text-subtle);
  font-size: var(--hva-font-size-sm);
}

/* --- Search -------------------------------------------------------------------------------- */
.search-input {
  position: relative;
  display: flex;
  align-items: center;
}

.search-input__icon {
  position: absolute;
  left: var(--hva-space-3);
  color: var(--hva-color-text-subtle);
  pointer-events: none;
}

.search-input__control {
  width: 100%;
  min-height: 2.5rem;
  padding: var(--hva-space-2) var(--hva-space-3) var(--hva-space-2) var(--hva-space-9);
  border: 1px solid var(--hva-color-border-strong);
  border-radius: var(--hva-radius-md);
  background-color: var(--hva-color-surface);
}

/* --- Custom-element host defaults ---------------------------------------- */
/* Custom elements default to `display: inline`; these rules give each host a
   sensible block/inline layout so it behaves like a normal element. */

hva-app-shell,
hva-data-table,
hva-ticket-list,
hva-ticket-detail,
hva-ticket-form,
hva-stat-card,
hva-alert,
hva-empty-state,
hva-dialog,
hva-login-form,
hva-search-input,
hva-workflow-decision,
hva-field,
hva-skip-link {
  display: block;
}

hva-button,
hva-icon {
  display: inline-flex;
}

hva-button[block] {
  display: flex;
  width: 100%;
}

hva-button[block] .btn {
  width: 100%;
}

/* Product-grade application polish */
.card { border-color:color-mix(in srgb,var(--hva-color-border) 82%,transparent); box-shadow:var(--hva-shadow-sm); }
.btn { min-height:2.65rem; border-radius:.75rem; font-weight:700; padding:.7rem 1rem; box-shadow:none; }
.btn--primary { box-shadow:0 6px 15px rgb(23 79 74 / .13); }
.btn--primary:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 9px 20px rgb(23 79 74 / .18); }
.btn--secondary { background:#fff; }
.btn--ghost { color:var(--hva-color-primary); }
.btn--lg { min-height:3.25rem; padding:.9rem 1.35rem; }
.nav-link { padding:.7rem .85rem; border-radius:.7rem; font-weight:620; }
.nav-link[aria-current="page"] { box-shadow:inset 3px 0 var(--hva-color-primary); }
.stat-card { min-height:8.2rem; padding:1.25rem; border:1px solid var(--hva-color-border); border-radius:1rem; background:white; box-shadow:var(--hva-shadow-sm); position:relative; }
.stat-card__icon { position:absolute; right:1.1rem; top:1.1rem; }
.stat-card__value { margin-top:auto; font-size:1.9rem; letter-spacing:-.04em; }
.data-table--responsive { border-radius:1rem; }
.data-table__caption { padding:1rem 1.2rem; color:var(--hva-color-text); font-size:1rem; }
.data-table th { background:#f6f7f3; font-size:.71rem; letter-spacing:.06em; }
.data-table th,.data-table td { padding:.9rem 1rem; }
.data-table tbody tr { transition:background var(--hva-duration-fast),transform var(--hva-duration-fast); }
.data-table tbody tr[tabindex]:hover { background:var(--hva-color-primary-soft); }
.field { gap:.42rem; }.field__label { color:#31443f; }.field__control,input:not([type="checkbox"]),select,textarea { min-height:2.85rem; border:1px solid var(--hva-color-border-strong); border-radius:.7rem; background:#fff; padding:.7rem .85rem; transition:border-color .15s,box-shadow .15s; }
textarea.field__control { min-height:8rem; resize:vertical; }
.field__control:focus,input:focus,select:focus,textarea:focus { border-color:var(--hva-color-primary); box-shadow:0 0 0 3px rgb(23 79 74 / .1); outline:none; }
.form-error { color:var(--hva-color-danger); font-weight:600; }
.eyebrow { display:inline-flex; align-items:center; gap:.5rem; color:var(--hva-color-primary); font-size:.72rem; font-weight:800; letter-spacing:.095em; text-transform:uppercase; }.eyebrow__dot { width:.45rem;height:.45rem;border-radius:50%;background:var(--hva-color-accent); }.eyebrow--light { color:#cfe4de; }
.dashboard-welcome { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; padding:.4rem 0 .2rem; }.dashboard-welcome h1 { margin:.35rem 0; font-size:clamp(1.85rem,4vw,2.65rem); letter-spacing:-.045em; }.dashboard-welcome p { color:var(--hva-color-text-muted); }.dashboard-date { display:flex; align-items:center; gap:.5rem; padding:.65rem .85rem; border-radius:.7rem; background:white; border:1px solid var(--hva-color-border); color:var(--hva-color-text-muted); text-transform:capitalize; }
.quick-actions { display:flex; flex-wrap:wrap; gap:.65rem; }.quick-actions .btn { background:white; }
.workspace-card { padding:1.25rem; }.section-title-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.section-title-row h2 { margin-top:.25rem; font-size:1.2rem; }
.work-list,.activity-list { display:flex; flex-direction:column; }.work-item { width:100%; display:flex; align-items:center; gap:.75rem; padding:.85rem .25rem; border:0; border-top:1px solid var(--hva-color-border); background:transparent; text-align:left; }.work-item:hover { background:var(--hva-color-surface-alt); }.work-item__main { min-width:0; flex:1; display:flex; flex-direction:column; }.work-item__main small { color:var(--hva-color-text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.priority-dot { width:.55rem;height:.55rem;border-radius:50%;background:#8c9995;flex:none; }.priority-dot--high,.priority-dot--urgent { background:#c04b50; }.priority-dot--normal { background:#db8b4b; }
.activity-item { display:flex; gap:.75rem; align-items:center; padding:.75rem 0; border-top:1px solid var(--hva-color-border); }.activity-icon { display:grid;place-items:center;width:2rem;height:2rem;border-radius:.65rem;background:var(--hva-color-primary-soft);color:var(--hva-color-primary);flex:none; }.activity-item div { display:flex; flex-direction:column; }.activity-item small { color:var(--hva-color-text-muted); }
.success-state { display:flex; align-items:center; gap:.8rem; padding:1.1rem; border-radius:.8rem; background:var(--hva-color-success-soft); color:var(--hva-color-success); }.success-state p { color:var(--hva-color-text-muted); }.insight-strip { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid var(--hva-color-border);border-radius:1rem;background:var(--hva-color-border); }.insight-strip>div { display:flex;align-items:center;gap:.7rem;padding:1rem;background:white;color:var(--hva-color-text-muted); }.insight-strip svg { color:var(--hva-color-primary); }
.search-box { max-width:28rem; display:flex; align-items:center; gap:.6rem; padding:0 .85rem; border:1px solid var(--hva-color-border); border-radius:.8rem; background:white; }.search-box input { width:100%;border:0;box-shadow:none!important;padding-inline:0; }
.table-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; }
.table-toolbar .search-box { flex:1 1 18rem; }
.table-toolbar__views { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.table-toolbar__views select { min-width:12rem; min-height:2.35rem; }
@media (max-width: 720px) { .table-toolbar, .table-toolbar__views { align-items:stretch; flex-direction:column; } .table-toolbar .search-box, .table-toolbar__views select, .table-toolbar__views .btn { width:100%; max-width:none; } }
.property-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem; }.property-card { display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--hva-color-border);border-radius:1rem;background:white;text-align:left;box-shadow:var(--hva-shadow-sm);transition:transform .16s,box-shadow .16s,border-color .16s; }.property-card:hover { transform:translateY(-2px);box-shadow:var(--hva-shadow-md);border-color:#b8c9c4; }.property-card__visual { width:4.2rem;height:4.2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;border-radius:.85rem;background:linear-gradient(145deg,#e4f0ec,#f3e6d8);color:var(--hva-color-primary);flex:none; }.property-card__visual span { font-size:.55rem;text-transform:uppercase;font-weight:800; }.property-card__content { min-width:0;flex:1;display:flex;flex-direction:column; }.property-card__content strong { font-size:1.05rem; }.property-card__content small { color:var(--hva-color-text-muted);margin-top:.25rem; }
.detail-hero { display:flex;gap:1rem;align-items:center; }.detail-hero__icon { display:grid;place-items:center;width:4rem;height:4rem;border-radius:1rem;background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }.detail-hero h2 { margin:.25rem 0; }.detail-hero p { color:var(--hva-color-text-muted); }.mini-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.1rem; }.mini-stats div { display:flex;flex-direction:column; }.mini-stats strong { font-size:1.55rem; }.mini-stats span { color:var(--hva-color-text-muted);font-size:.8rem; }.info-list { display:flex;flex-direction:column;gap:.1rem; }.info-list h2 { margin-bottom:.7rem;font-size:1.1rem; }.info-row { display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--hva-color-border); }.info-row>span:first-child { color:var(--hva-color-text-muted); }.info-row strong { text-align:right; }.compact-form { display:flex;flex-direction:column;gap:.9rem; }.muted { color:var(--hva-color-text-muted); }.empty-panel { text-align:center; }.empty-panel__action { display:flex;justify-content:center;margin:-1.5rem 0 2rem; }
.dialog { border-radius:1.2rem; }.login-form { padding:1rem; }.login-form__logo { border-radius:1rem;box-shadow:0 10px 25px rgb(23 79 74 / .2); }
@media (max-width:52rem) { .insight-strip { grid-template-columns:1fr; }.dashboard-welcome { align-items:flex-start;flex-direction:column; }.dashboard-date { display:none; } }
@media (max-width:35rem) { .quick-actions { display:grid;grid-template-columns:1fr 1fr; }.quick-actions .btn { white-space:normal; }.property-grid { grid-template-columns:1fr; }.app-shell__brand-text { max-width:8rem;overflow:hidden;text-overflow:ellipsis; }.data-table th,.data-table td { padding:.75rem; }.mini-stats { gap:.5rem; } }

/* Global command palette and cross-domain workspaces */
.app-shell__search { display:flex;align-items:center;gap:.55rem;min-width:min(21rem,28vw);padding:.55rem .65rem;border:1px solid var(--hva-color-border);border-radius:.75rem;background:#f8faf7;color:var(--hva-color-text-muted);text-align:left; }
.btn.btn--icon { width:2.65rem;min-width:2.65rem;padding:0; }
.app-shell__search:hover { border-color:var(--hva-color-border-strong);background:white;color:var(--hva-color-text); }
.app-shell__search span { flex:1; }
.app-shell__search kbd,.command-input kbd { padding:.15rem .38rem;border:1px solid var(--hva-color-border);border-bottom-width:2px;border-radius:.35rem;background:white;color:var(--hva-color-text-subtle);font:600 .68rem/1.3 var(--hva-font-family); }
.command-backdrop { position:fixed;inset:0;z-index:999;display:grid;place-items:start center;padding:10vh 1rem;background:rgb(14 31 29 / .42);backdrop-filter:blur(5px); }
.command-palette { width:min(42rem,100%);max-height:76vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgb(255 255 255 / .45);border-radius:1.15rem;background:white;box-shadow:0 30px 90px rgb(10 30 26 / .3); }
.command-input { display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border-bottom:1px solid var(--hva-color-border); }
.command-input input { flex:1;border:0!important;box-shadow:none!important;font-size:1.05rem;padding:.35rem 0; }
.command-results { min-height:12rem;overflow:auto;padding:.45rem; }
.command-empty { min-height:11rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:2rem;text-align:center;color:var(--hva-color-text-muted); }
.command-empty strong { color:var(--hva-color-text); }
.command-result { width:100%;display:flex;align-items:center;gap:.75rem;padding:.7rem;border:0;border-radius:.75rem;background:transparent;text-align:left; }
.command-result:hover,.command-result:focus-visible { background:var(--hva-color-primary-soft);outline:none; }
.command-result__icon { width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:.65rem;background:#f1f5f2;color:var(--hva-color-primary); }
.command-result__copy { min-width:0;flex:1;display:flex;flex-direction:column; }
.command-result__copy small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hva-color-text-muted); }
.command-footer { padding:.55rem 1rem;border-top:1px solid var(--hva-color-border);background:#fafbf9;color:var(--hva-color-text-subtle);font-size:.72rem; }
.module-tabs { position:sticky;top:calc(var(--hva-shell-topbar-height) + .5rem);z-index:2;display:flex;gap:.35rem;overflow:auto;padding:.4rem;border:1px solid var(--hva-color-border);border-radius:.85rem;background:rgb(255 255 255 / .92);backdrop-filter:blur(12px); }
.module-tabs a { padding:.55rem .8rem;border-radius:.6rem;color:var(--hva-color-text-muted);font-weight:700;text-decoration:none;white-space:nowrap; }
.module-tabs a:hover { background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }
.data-table__pagination { display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap;padding:.75rem 1rem;border-top:1px solid var(--hva-color-border);background:#fafbf9;color:var(--hva-color-text-muted);font-size:.8rem; }
.data-table__pagination label { display:flex;align-items:center;gap:.4rem; }.data-table__pagination select { min-height:2rem;padding:.25rem 1.8rem .25rem .5rem;border-radius:.5rem; }.data-table__pagination strong { color:var(--hva-color-text); }
@media (max-width:52rem) { .app-shell__search { min-width:2.65rem;width:2.65rem;justify-content:center; }.app-shell__search span,.app-shell__search kbd { display:none; } }
@media (max-width:35rem) { .command-backdrop { padding:0; }.command-palette { width:100%;max-height:100vh;height:100vh;border-radius:0; } }

/* Dashboard control center */
.dashboard-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(1.4rem,3vw,2rem);
  border:1px solid rgb(255 255 255 / .13);
  border-radius:1.4rem;
  background:linear-gradient(125deg,#123f3a 0%,#1e5952 62%,#2b6960 100%);
  color:white;
  box-shadow:0 20px 45px rgb(18 63 58 / .15);
}
.dashboard-hero::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:22rem;
  height:22rem;
  right:0;
  top:0;
  border-radius:50%;
  background:radial-gradient(circle,rgb(224 163 111 / .34),transparent 68%);
}
.dashboard-hero .dashboard-welcome { padding:0; }
.dashboard-hero h1 { margin:.45rem 0 .35rem;color:white;font-size:clamp(2rem,4vw,3rem); }
.dashboard-hero p { color:rgb(255 255 255 / .72);font-size:1rem; }
.dashboard-hero .dashboard-date { border-color:rgb(255 255 255 / .16);background:rgb(255 255 255 / .1);color:white;backdrop-filter:blur(10px); }
.dashboard-hero__status { width:max-content;max-width:100%;display:flex;align-items:center;gap:.7rem;margin-top:1.35rem;padding:.7rem .85rem;border:1px solid rgb(255 255 255 / .14);border-radius:.85rem;background:rgb(255 255 255 / .1); }
.dashboard-hero__status>span { display:flex;flex-direction:column; }
.dashboard-hero__status small { color:rgb(255 255 255 / .68); }
.dashboard-hero__status--attention { background:rgb(224 163 111 / .18);border-color:rgb(240 190 145 / .32); }

.dashboard-actions { display:flex;flex-direction:column;gap:.75rem; }
.dashboard-actions__heading { display:flex;align-items:baseline;gap:.7rem;padding-inline:.15rem; }
.dashboard-actions__heading>strong { font-size:1.05rem; }
.setup-guide { padding:1.35rem; }
.setup-guide__heading { display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem; }
.setup-guide__heading h2 { margin:.35rem 0 .25rem;font-size:1.25rem; }
.setup-guide__heading p { color:var(--hva-color-text-muted);font-size:.9rem; }
.setup-progress { flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:4.2rem;height:4.2rem;border-radius:50%;background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }
.setup-progress strong { font-size:1.05rem; }.setup-progress small { font-size:.62rem; }
.setup-steps { display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem; }
.setup-step { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;min-width:0;padding:.8rem;border:1px solid var(--hva-color-border);border-radius:.8rem;background:var(--hva-color-surface);text-align:left; }
.setup-step:hover { border-color:var(--hva-color-primary);background:var(--hva-color-primary-soft); }
.setup-step.is-done { background:#f7faf7; }
.setup-step__number { display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:.55rem;background:var(--hva-color-primary-soft);color:var(--hva-color-primary);font-size:.75rem;font-weight:800; }
.setup-step.is-done .setup-step__number { background:var(--hva-color-success-soft);color:var(--hva-color-success); }
.setup-step__copy { min-width:0; }.setup-step__copy strong,.setup-step__copy small { display:block; }.setup-step__copy strong { font-size:.78rem; }.setup-step__copy small { margin-top:.2rem;color:var(--hva-color-text-muted);font-size:.66rem;line-height:1.35; }
.quick-actions { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem; }
.quick-action { min-width:0;display:flex;align-items:center;gap:.7rem;padding:.9rem;border:1px solid var(--hva-color-border);border-radius:1rem;background:white;color:var(--hva-color-text);text-align:left;box-shadow:var(--hva-shadow-sm);transition:transform .16s,border-color .16s,box-shadow .16s; }
.quick-action:hover { transform:translateY(-2px);border-color:#adc7c1;box-shadow:0 12px 24px rgb(18 63 58 / .09); }
.quick-action__icon { width:2.4rem;height:2.4rem;display:grid;place-items:center;flex:none;border-radius:.75rem;background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }
.quick-action__copy { min-width:0;display:flex;flex:1;flex-direction:column; }
.quick-action__copy strong { white-space:normal;overflow-wrap:anywhere;font-size:.88rem; }
.quick-action__copy small { white-space:normal;overflow-wrap:anywhere;color:var(--hva-color-text-muted);font-size:.71rem; }
.quick-action>hva-icon { color:var(--hva-color-text-subtle); }

.dashboard-metrics .stat-card { overflow:hidden; }
.dashboard-metrics .stat-card::before { content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--hva-color-primary);opacity:.72; }
.dashboard-metrics hva-stat-card:nth-child(2) .stat-card::before { background:#4775a5; }
.dashboard-metrics hva-stat-card:nth-child(3) .stat-card::before { background:#d58b4c; }
.dashboard-metrics hva-stat-card:nth-child(4) .stat-card::before { background:#9c5d72; }
.dashboard-metrics .stat-card__meta { margin-top:.15rem; }
.dashboard-columns>* { min-width:0; }
.section-title-row { flex-wrap:wrap; }
.work-item { min-width:0; }
.work-item__main strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

.app-shell__identity { display:flex;align-items:center;gap:.65rem; }
.app-shell__avatar { width:2.35rem;height:2.35rem;display:grid;place-items:center;border-radius:.75rem;background:#e7f0ed;color:var(--hva-color-primary);font-size:.74rem;font-weight:850;letter-spacing:.03em; }
.app-shell__user { min-width:0;text-align:left;line-height:1.25; }
.app-shell__user-name { font-size:.82rem;font-weight:750; }
.app-shell__user-email { max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hva-color-text-muted);font-size:.72rem; }

@media (min-width:56rem) {
  .app-shell__nav { padding:1.35rem .85rem;background:linear-gradient(180deg,#fbfcf9,#f7f9f5); }
  .nav-link { min-height:2.7rem;gap:.75rem; }
  .nav-link[aria-current="page"] { background:#e2efeb;box-shadow:inset 3px 0 var(--hva-color-primary),0 4px 12px rgb(23 79 74 / .05); }
}
@media (max-width:70rem) { .quick-actions { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:64rem) { .setup-steps { grid-template-columns:repeat(2,1fr); } }
@media (max-width:52rem) {
  .dashboard-hero { border-radius:1.15rem; }
  .dashboard-hero .dashboard-welcome { align-items:flex-start; }
  .dashboard-actions__heading { align-items:flex-start;flex-direction:column;gap:.15rem; }
  .section-title-row .btn { margin-left:auto; }
}
@media (max-width:35rem) {
  .quick-actions { grid-template-columns:1fr; }
  .setup-guide__heading { align-items:flex-start; }.setup-progress { width:3.7rem;height:3.7rem; }.setup-steps { grid-template-columns:1fr; }
  .quick-action { min-height:4rem; }
  .dashboard-hero__status { width:100%; }
  .app-shell__identity { display:none; }
}
.document-preview { min-width:0;padding:1.35rem; }
.document-preview pre { max-height:22rem;overflow:auto;margin:0;padding:1rem;border:1px solid var(--hva-color-border);border-radius:.8rem;background:#f8faf7;color:var(--hva-color-text);font:500 .86rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere; }
.document-preview--empty { display:flex;min-height:10rem;align-items:center;justify-content:center;flex-direction:column;gap:.45rem;text-align:center;color:var(--hva-color-text-muted); }
.conversation { display:flex;flex-direction:column;gap:.9rem;padding:1.25rem; }
.message-bubble { width:min(78%,46rem);padding:1rem 1.1rem;border:1px solid var(--hva-color-border);border-radius:1rem;background:#f7f9f6; }
.message-bubble--outbound { align-self:flex-end;background:var(--hva-color-primary-soft);border-bottom-right-radius:.3rem; }
.message-bubble--inbound { align-self:flex-start;border-bottom-left-radius:.3rem; }
.message-bubble__meta,.message-bubble footer { display:flex;align-items:center;justify-content:space-between;gap:.6rem;color:var(--hva-color-text-muted);font-size:.75rem; }
.message-bubble p { margin:.75rem 0;white-space:pre-wrap; }
.reply-box { padding:1.25rem; }
@media (max-width:35rem) { .message-bubble { width:94%; } }
.portal-shell .app-shell__search { display:none; }
.portal-hero { display:flex;align-items:center;justify-content:space-between;gap:2rem;overflow:hidden;padding:clamp(1.5rem,4vw,2.5rem);border-radius:1.4rem;background:linear-gradient(125deg,#153f3b,#277167);color:white;box-shadow:0 20px 45px rgb(18 63 58 / .14); }
.portal-hero h1 { margin:.45rem 0;color:white;font-size:clamp(2rem,4vw,3rem); }.portal-hero p { color:rgb(255 255 255 / .74); }
.portal-hero__mark { width:5rem;height:5rem;display:grid;place-items:center;flex:none;border-radius:1.25rem;background:rgb(255 255 255 / .12); }
.portal-thread-list { display:flex;flex-direction:column; }.portal-thread { width:100%;display:flex;align-items:center;gap:.8rem;padding:.9rem .25rem;border:0;border-top:1px solid var(--hva-color-border);background:transparent;text-align:left; }.portal-thread:hover { background:var(--hva-color-primary-soft); }.portal-thread__icon { width:2.35rem;height:2.35rem;display:grid;place-items:center;border-radius:.7rem;background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }.portal-thread__copy { min-width:0;display:flex;flex:1;flex-direction:column; }.portal-thread__copy small { color:var(--hva-color-text-muted); }
.portal-actions { display:flex;flex-wrap:wrap;gap:.7rem; }
@media (max-width:35rem) { .portal-hero__mark { display:none; } }

/* Hauspilot 2026 — blue product system */
body {
  background:
    linear-gradient(rgb(11 99 216 / .025) 1px, transparent 1px),
    linear-gradient(90deg, rgb(11 99 216 / .025) 1px, transparent 1px),
    var(--hva-color-bg);
  background-size:32px 32px;
}

.card,
.workspace-card,
.form-card,
.property-card,
.data-table--responsive {
  border-color:var(--hva-color-border);
  border-radius:1rem;
  box-shadow:0 1px 2px rgb(10 27 54 / .04),0 10px 28px rgb(10 27 54 / .045);
}
.btn { min-height:2.75rem;border-radius:.7rem; }
.btn--primary { background:linear-gradient(180deg,#1472ed,#075bcf);border-color:#075bcf;box-shadow:0 7px 18px rgb(11 99 216 / .2); }
.btn--primary:hover:not(:disabled) { background:#0756c2;box-shadow:0 10px 24px rgb(11 99 216 / .25); }
.btn--secondary { color:var(--hva-color-primary-strong);border-color:#8eb7ec; }
.btn--secondary:hover:not(:disabled) { border-color:var(--hva-color-primary);background:var(--hva-color-primary-soft); }
.btn--ghost { color:var(--hva-color-primary); }
.eyebrow { color:var(--hva-color-primary); }.eyebrow__dot { background:var(--hva-color-primary); }
.eyebrow--light { color:#bdd7ff; }
input,select,textarea { border-radius:.7rem!important;border-color:var(--hva-color-border)!important;background:#fff; }
input:hover,select:hover,textarea:hover { border-color:var(--hva-color-border-strong)!important; }

/* Application shell */
.app-shell__topbar { background:rgb(255 255 255 / .94);border-bottom-color:#d9e0ea;box-shadow:0 1px 14px rgb(10 27 54 / .035); }
.app-shell__brand { color:#071a37;font-size:1.12rem;font-weight:820; }
.app-shell__brand-mark,.brand-symbol { background:#fff;color:var(--hva-color-primary);border:2px solid var(--hva-color-primary);border-radius:.62rem;box-shadow:none; }
.app-shell__search { border-color:#d9e1eb;background:#f7f9fc;color:#647083; }
.app-shell__avatar { border-radius:50%;background:#edf2f8;color:#26354a; }
.app-shell__main { background:linear-gradient(150deg,rgb(255 255 255 / .25),transparent 40%); }
.app-shell__nav-section { color:#83a2c7; }
.nav-link { border:1px solid transparent;color:#d7e4f5; }
.nav-link:hover { background:rgb(255 255 255 / .08);color:#fff; }
.nav-link[aria-current="page"] { color:#fff!important;background:linear-gradient(90deg,rgb(38 126 242 / .34),rgb(38 126 242 / .17))!important;border-color:rgb(133 185 255 / .16);box-shadow:inset 3px 0 #5ba3ff,0 6px 18px rgb(0 0 0 / .12)!important; }
@media (min-width:56rem) {
  .app-shell__nav { padding:1rem .7rem 1.5rem;background:linear-gradient(155deg,#071a39 0%,#092b55 62%,#083b70 100%);border-right:0;box-shadow:8px 0 30px rgb(7 26 57 / .08); }
  .nav-link { min-height:2.85rem;padding:.65rem .8rem;border-radius:.65rem; }
  .app-shell__nav-section:first-child { margin-top:.45rem; }
  .btn.btn--icon.app-shell__menu-toggle { display:none; }
}

.page-header { padding:.15rem 0 .4rem; }
.page-header__title { color:#091c39;font-weight:820; }
.page-header__subtitle { max-width:52rem; }
.stat-card { min-height:8.5rem;padding:1.2rem 1.25rem; }
.stat-card__icon { width:2.65rem;height:2.65rem;display:grid;place-items:center;border-radius:50%;background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }
.stat-card__value { color:#0a1c38;font-size:2rem;font-weight:820; }
.dashboard-metrics hva-stat-card:nth-child(2) .stat-card__icon { background:#e8f6f2;color:#268c7c; }
.dashboard-metrics hva-stat-card:nth-child(3) .stat-card__icon { background:#fff0df;color:#e27b2d; }
.dashboard-metrics hva-stat-card:nth-child(4) .stat-card__icon { background:#eaf5e9;color:#3d9457; }
.dashboard-metrics .stat-card::before { display:none; }
.data-table th { background:#f4f7fb;color:#4c5b70; }
.data-table tbody tr[tabindex]:hover { background:#eef5ff; }
.property-card__visual,.detail-hero__icon,.activity-icon,.quick-action__icon,.portal-thread__icon { background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }
.property-card:hover { border-color:#8eb7ec;box-shadow:0 14px 32px rgb(11 99 216 / .1); }

/* Dashboard — priorities first, actions always visible */
.dashboard-page { gap:1.15rem; }
.dashboard-hero { padding:.9rem .2rem .25rem;border:0;border-radius:0;background:transparent;color:var(--hva-color-text);box-shadow:none; }
.dashboard-hero::after { display:none; }
.dashboard-hero h1 { margin:.35rem 0 .3rem;color:#0a1c38;font-size:clamp(2rem,4vw,2.75rem); }
.dashboard-hero p { color:var(--hva-color-text-muted); }
.dashboard-hero .dashboard-date { border-color:var(--hva-color-border);background:rgb(255 255 255 / .75);color:var(--hva-color-text-muted); }
.dashboard-hero__status { margin-top:.9rem;padding:.65rem .8rem;border-color:#bed4f2;background:#edf5ff;color:#174f99; }
.dashboard-hero__status small { color:#60728b; }
.dashboard-hero__status--attention { border-color:#f0c6a8;background:#fff5ec;color:#9c511e; }
.dashboard-actions { padding:1.15rem;border:1px solid var(--hva-color-border);border-radius:1rem;background:rgb(255 255 255 / .88);box-shadow:var(--hva-shadow-sm); }
.quick-action { padding:.8rem;border-color:#d8e0ea;box-shadow:none; }
.quick-action:hover { border-color:#8eb7ec;background:#f8fbff;box-shadow:0 10px 22px rgb(11 99 216 / .08); }
.workspace-card { background:rgb(255 255 255 / .92); }
.dashboard-columns { grid-template-columns:minmax(0,1.45fr) minmax(19rem,.8fr); }
.work-item { padding:.95rem .35rem; }
.work-item:hover { background:#f4f8fe; }
.insight-strip { border-color:#d5deea;background:#d5deea; }

.dashboard-relation,.landing-relation { position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:.65rem 1.1rem;border:1px solid #cbd9eb;border-radius:1rem;background:rgb(255 255 255 / .9);box-shadow:var(--hva-shadow-sm); }
.dashboard-relation::before,.landing-relation::before { content:"";position:absolute;left:10%;right:10%;top:1.95rem;height:2px;background:#4c92eb; }
.dashboard-relation>div,.landing-relation>div { position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;min-width:0;padding:.35rem .5rem;text-align:center; }
.dashboard-relation>div>span,.landing-relation>div>span { width:2.5rem;height:2.5rem;display:grid;place-items:center;margin-bottom:.45rem;border:1px solid #b9d1ef;border-radius:50%;background:#fff;color:var(--hva-color-primary);box-shadow:0 3px 10px rgb(11 99 216 / .1); }
.dashboard-relation strong,.landing-relation strong { font-size:.78rem; }.dashboard-relation small,.landing-relation small { max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hva-color-text-muted);font-size:.66rem; }

/* Public product page */
.landing { background:
  linear-gradient(rgb(11 99 216 / .032) 1px, transparent 1px),
  linear-gradient(90deg,rgb(11 99 216 / .032) 1px,transparent 1px),
  #faf8f3;background-size:32px 32px;color:#0a1c38; }
.landing-nav { max-width:94rem;height:5rem;padding:0 2rem;border-bottom:1px solid rgb(31 58 91 / .1); }
.landing-brand { color:#091c39;font-size:1.45rem;letter-spacing:-.035em; }
.landing-nav__links { gap:2.3rem; }.landing-text-link { color:#16243b;font-weight:650; }
.landing-hero { max-width:94rem;grid-template-columns:minmax(21rem,.72fr) minmax(39rem,1.28fr);gap:clamp(2rem,4vw,4rem);padding:4rem 2rem 2.3rem; }
.landing-hero__copy { position:relative;z-index:2; }
.landing-hero__copy h1 { max-width:10.5ch;margin:1rem 0 1.3rem;color:#0a2146;font-size:clamp(3.2rem,5vw,5.2rem);line-height:1.02;letter-spacing:-.055em; }
.landing-lead { max-width:35rem;color:#445268;font-size:1.08rem;line-height:1.7; }
.landing-local-proof { margin:1.25rem 0 .8rem;color:#42526a;font-size:.68rem;font-weight:800;letter-spacing:.17em; }
.trust-row { gap:.8rem;color:#59677a; }
.landing-hero__visual::before { inset:-2rem -3rem auto auto;width:17rem;height:17rem;background:#a7cbfb;opacity:.24; }
.product-cockpit { border-color:#cbd5e2;border-radius:1rem;box-shadow:0 28px 70px rgb(9 35 70 / .17);transform:none; }
.product-cockpit__bar { min-height:3.4rem;padding:.65rem 1rem;background:#fff; }
.product-cockpit__brand { color:#0a2852; }.cockpit-toolbar { display:flex;align-items:center;gap:.75rem;color:#536276; }.cockpit-avatar { width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:50%;background:#eef1f5;color:#344256;font-size:.58rem;font-weight:800; }
.product-cockpit__body { grid-template-columns:8.5rem 1fr;min-height:30rem; }
.product-cockpit__nav { gap:.2rem;padding:.9rem .55rem;background:linear-gradient(155deg,#071a39,#0a3262);border:0; }
.product-cockpit__nav span { padding:.55rem .6rem;color:#d4e3f5;font-size:.62rem; }
.product-cockpit__nav span.is-active { color:#fff;background:rgb(58 138 242 / .3);box-shadow:inset 2px 0 #72b0ff; }
.product-cockpit__content { padding:1.15rem;background:#f8f9fb; }
.cockpit-heading strong { color:#0a1c38;font-size:1rem; }.cockpit-heading small { margin-top:.2rem;text-transform:none;letter-spacing:0;font-size:.67rem; }
.cockpit-stats { gap:.5rem;margin:.9rem 0; }
.cockpit-stats div { display:flex;align-items:center;gap:.5rem;padding:.65rem;border-color:#dce2ea;box-shadow:0 2px 5px rgb(10 27 54 / .06); }
.cockpit-stats div>span:last-child { min-width:0; }.cockpit-stats strong { color:#0a1c38;font-size:1.05rem;white-space:nowrap; }
.cockpit-stat-icon { width:1.9rem;height:1.9rem;display:grid;place-items:center;flex:none;border-radius:50%;background:#e9f2ff;color:#1870dd; }
.cockpit-stats div:nth-child(2) .cockpit-stat-icon { background:#e8f5f1;color:#25877a; }.cockpit-stats div:nth-child(3) .cockpit-stat-icon { background:#fff0df;color:#df7c2f; }.cockpit-stats div:nth-child(4) .cockpit-stat-icon { background:#e9f5ea;color:#3d9255; }
.cockpit-focus-grid { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:.55rem; }
.cockpit-work,.cockpit-inbox { min-width:0;padding:.75rem;border:1px solid #dce2ea;border-radius:.75rem;background:#fff;box-shadow:0 2px 5px rgb(10 27 54 / .05); }
.cockpit-card-title { display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.72rem; }
.cockpit-incident { display:flex;align-items:center;gap:.55rem;margin:.6rem 0 .8rem;padding:.55rem;border-radius:.6rem;background:#fff8f4; }
.cockpit-incident__icon { width:2rem;height:2rem;display:grid;place-items:center;flex:none;border-radius:50%;background:#ffe6dd;color:#df6448; }.cockpit-incident>span:last-child { min-width:0;display:flex;flex-direction:column; }.cockpit-incident strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.65rem; }.cockpit-incident small { color:#6c7786;font-size:.55rem; }
.cockpit-progress { display:grid;grid-template-columns:repeat(5,1fr);position:relative; }.cockpit-progress::before { content:"";position:absolute;left:9%;right:9%;top:.28rem;height:1px;background:#d7dde6; }.cockpit-progress span { position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;gap:.3rem;text-align:center; }.cockpit-progress i { width:.58rem;height:.58rem;border:2px solid #aeb8c6;border-radius:50%;background:#fff; }.cockpit-progress span.is-done i { border-color:#1770df;background:#1770df; }.cockpit-progress small { color:#6b7787;font-size:.45rem; }
.cockpit-message { display:grid;grid-template-columns:1.7rem 1fr auto;align-items:center;gap:.45rem;padding:.5rem 0;border-top:1px solid #e4e8ee; }.cockpit-message>i { width:1.55rem;height:1.55rem;display:grid;place-items:center;border-radius:50%;background:#e9f2ff;color:#1766c4;font-size:.48rem;font-style:normal;font-weight:800; }.cockpit-message>span { min-width:0;display:flex;flex-direction:column; }.cockpit-message strong,.cockpit-message small { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }.cockpit-message strong { font-size:.58rem; }.cockpit-message small { color:#697688;font-size:.5rem; }.cockpit-message>b { width:.35rem;height:.35rem;border-radius:50%;background:#1470e4; }
.cockpit-quick { display:grid;grid-template-columns:repeat(4,1fr);margin-top:.55rem;border:1px solid #dce2ea;border-radius:.75rem;background:#fff; }.cockpit-quick span { display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.3rem;padding:.65rem .25rem;border-left:1px solid #e3e7ed;color:#1467cd;text-align:center; }.cockpit-quick span:first-child { border:0; }.cockpit-quick small { color:#47556a;font-size:.5rem; }
.product-caption { color:#647185; }
.landing-relation { max-width:76rem;margin:.2rem auto 3rem; }
.landing-proof { max-width:none;margin:0;padding:0 2rem;background:linear-gradient(120deg,#061b3d,#083666); }
.landing-proof>div { min-height:7rem;border-block:0;border-right:1px solid rgb(255 255 255 / .15);color:#fff; }.landing-proof>div:last-child { border-right:0; }.landing-proof svg { color:#65a9ff; }
.landing-section { max-width:84rem; }.section-heading h2,.workflow-showcase h2,.security-copy h2,.landing-final h2 { color:#0a2146; }
.feature-card,.audience-grid article,.security-list article { border-color:#d7dfea;background:rgb(255 255 255 / .9); }
.feature-card { min-height:14rem!important;box-shadow:0 10px 30px rgb(10 27 54 / .05); }.feature-card:hover { transform:translateY(-3px);border-color:#94b9e9;box-shadow:0 16px 36px rgb(11 99 216 / .09); }
.feature-icon { border-radius:50%; }
.workflow-showcase,.landing-final { background:linear-gradient(125deg,#061b3d,#083667);box-shadow:0 22px 50px rgb(7 31 66 / .14); }
.workflow-showcase h2,.landing-final h2 { color:#fff; }.workflow-steps li span { background:#6aaeff;color:#07204a; }
.landing-final .btn { background:#fff;color:#075bcf; }
.auth-layout__visual { background:linear-gradient(140deg,rgba(6,27,61,.92),rgba(6,49,99,.62)),url('/assets/hero-property-management.png') center/cover; }

/* Portal uses the same trustworthy product language */
.portal-hero { border:1px solid rgb(255 255 255 / .13);background:linear-gradient(125deg,#071b3e,#0a3e78);box-shadow:0 20px 45px rgb(7 31 66 / .15); }
.portal-hero__mark { background:rgb(255 255 255 / .11); }
.portal-actions { padding:.85rem;border:1px solid var(--hva-color-border);border-radius:1rem;background:rgb(255 255 255 / .8); }

@media (max-width:70rem) {
  .landing-hero { grid-template-columns:1fr;padding-top:3rem; }.landing-hero__copy { max-width:48rem; }.landing-hero__copy h1 { max-width:13ch; }
  .product-cockpit { max-width:58rem;margin:auto; }.landing-relation { margin-inline:1.5rem; }
}
@media (max-width:55rem) {
  .landing-nav { padding-inline:1rem; }.landing-nav__actions .btn--ghost { display:none; }
  .landing-relation,.dashboard-relation { grid-template-columns:repeat(5,9rem);overflow:auto;justify-content:start; }.landing-relation::before,.dashboard-relation::before { display:none; }
  .landing-proof { grid-template-columns:repeat(2,1fr); }.landing-proof>div:nth-child(2) { border-right:0; }
}
@media (max-width:42rem) {
  .landing-hero { padding:2.5rem 1rem 2rem; }.landing-hero__copy h1 { font-size:clamp(2.7rem,13vw,4rem); }.landing-local-proof { line-height:1.8; }
  .product-cockpit__body { grid-template-columns:1fr;min-height:0; }.product-cockpit__nav { display:none; }.product-cockpit__content { padding:.8rem; }
  .cockpit-focus-grid { grid-template-columns:1fr; }.cockpit-inbox { display:none; }.cockpit-stats { grid-template-columns:repeat(2,1fr); }.cockpit-quick { grid-template-columns:repeat(2,1fr); }.cockpit-quick span:nth-child(3) { border-left:0;border-top:1px solid #e3e7ed; }.cockpit-quick span:nth-child(4) { border-top:1px solid #e3e7ed; }
  .landing-relation { margin-inline:1rem; }.landing-proof { padding-inline:1rem; }.landing-proof>div { min-height:5.5rem;justify-content:flex-start; }
  .dashboard-columns { grid-template-columns:1fr; }.dashboard-relation { margin-inline:0; }
}

/* Always-visible shortcut for the actions users need most. */
.app-shell__spacer { flex:1 1 auto; }
.portal-shell .app-shell__create { display:none; }
.app-shell__topbar { gap:.7rem; }
.dashboard-hero .eyebrow { color:var(--hva-color-primary-strong); }
.dashboard-actions { order:-1; }
.dashboard-hero { order:-2; }
@media (max-width:55.99rem) {
  .app-shell__nav { background:#09264d; }
  .app-shell__identity { display:none; }
  .app-shell__search { min-width:2.65rem;width:2.65rem; }
  .app-shell__search span,.app-shell__search kbd { display:none; }
}
@media (max-width:35rem) {
  .app-shell__topbar { padding-inline:.6rem;gap:.4rem; }
  .dashboard-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-metrics .stat-card { min-height:7rem;padding:.8rem; }
  .dashboard-metrics .stat-card__icon { display:none; }
  .dashboard-metrics .stat-card__value { font-size:1.45rem;overflow-wrap:anywhere; }
}
.app-shell__create { flex:none;gap:.45rem;padding-inline:.9rem; }
.quick-create-backdrop { position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:1rem;background:rgb(5 22 48 / .48);backdrop-filter:blur(6px); }
.quick-create { width:min(47rem,100%);max-height:calc(100vh - 2rem);overflow:auto;padding:1.4rem;border:1px solid rgb(255 255 255 / .5);border-radius:1.2rem;background:#fff;box-shadow:0 30px 90px rgb(4 23 52 / .3); }
.quick-create header { display:flex;align-items:flex-start;justify-content:space-between;gap:1rem; }.quick-create h2 { margin:.3rem 0 0;color:#0a1c38;font-size:1.45rem;letter-spacing:-.035em; }.quick-create__lead { margin:.85rem 0 1.15rem;color:var(--hva-color-text-muted);line-height:1.55; }
.quick-create__grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem; }
.quick-create__choice { display:grid;grid-template-columns:2.35rem minmax(0,1fr) auto;align-items:center;gap:.7rem;min-height:5.1rem;padding:.8rem;border:1px solid var(--hva-color-border);border-radius:.85rem;background:#fff;color:var(--hva-color-text);text-align:left;transition:background var(--hva-duration-fast),border-color var(--hva-duration-fast),transform var(--hva-duration-fast); }
.quick-create__choice:hover,.quick-create__choice:focus-visible { border-color:#8eb7ec;background:#f5f9ff;transform:translateY(-1px);outline:none; }
.quick-create__choice>span:first-child { width:2.35rem;height:2.35rem;display:grid;place-items:center;border-radius:.7rem;background:var(--hva-color-primary-soft);color:var(--hva-color-primary); }.quick-create__choice>span:nth-child(2) { min-width:0;display:flex;flex-direction:column;gap:.18rem; }.quick-create__choice small { color:var(--hva-color-text-muted);font-size:.72rem;line-height:1.3; }.quick-create__choice>hva-icon { color:var(--hva-color-text-subtle); }
@media (max-width:52rem) { .app-shell__create { width:2.7rem;min-width:2.7rem;padding:0; }.app-shell__create span { display:none; } }
@media (max-width:35rem) { .quick-create-backdrop { padding:0;align-items:end; }.quick-create { max-height:88vh;border-radius:1.25rem 1.25rem 0 0; }.quick-create__grid { grid-template-columns:1fr; } }
.account-page { max-width:34rem;margin:3rem auto;padding:2rem;background:#fff;border:1px solid #dbe2ec;border-radius:1rem; }
.account-page h1 { font-size:2rem;line-height:1.2; }
.account-page>p { color:#455870; }
.account-brand { font-size:1.4rem;font-weight:800; }
.account-links { display:flex;flex-wrap:wrap;gap:1rem; }
.account-message { padding:1rem;background:#fff4e5;color:#74390c;border-radius:.5rem; }
@media(max-width:40rem){.account-page{margin:1rem;padding:1.25rem}}
.read-only-shell .app-shell__create, .read-only-shell .dashboard-actions { display:none; }
.landing-footer__links { flex-wrap:wrap; }
