:root[data-theme="light"] {
  color-scheme: light;
  --ehc-page: #f2ede4;
  --ehc-panel: #fffdf9;
  --ehc-panel-soft: #e8e1d7;
  --ehc-field: #fffdf9;
  --ehc-ink: #202327;
  --ehc-muted: #51575b;
  --ehc-line: #c9c3ba;
  --ehc-accent: #202327;
  --ehc-accent-ink: #f2ede4;
  --ehc-hover: #dcd5cb;
  --ehc-focus: #6c7580;
  --ehc-success-bg: #e0e9de;
  --ehc-success-ink: #254435;
  --ehc-error-bg: #f9e4df;
  --ehc-error-ink: #893c31;
  --ehc-warning-bg: #f7ebd2;
  --ehc-warning-ink: #735624;
  --ehc-active-bg: #e2e9ef;
  --ehc-active-ink: #344e66;
  --wp-green: #4c9c74;
  --wp-blue: #6c94c2;
  --wp-yellow: #c3974f;
  --wp-red: #c87873;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --ehc-page: #202327;
  --ehc-panel: #2b3034;
  --ehc-panel-soft: #363c40;
  --ehc-field: #252a2e;
  --ehc-ink: #f2ede4;
  --ehc-muted: #c9c4bb;
  --ehc-line: #596064;
  --ehc-accent: #f2ede4;
  --ehc-accent-ink: #202327;
  --ehc-hover: #41484c;
  --ehc-focus: #c5d3dd;
  --ehc-success-bg: #263a30;
  --ehc-success-ink: #d1ebd5;
  --ehc-error-bg: #4b302e;
  --ehc-error-ink: #ffd8cf;
  --ehc-warning-bg: #4d422c;
  --ehc-warning-ink: #f5dfa9;
  --ehc-active-bg: #303e50;
  --ehc-active-ink: #d9e9fa;
  --wp-green: #6bb990;
  --wp-blue: #83addc;
  --wp-yellow: #d3ae6b;
  --wp-red: #e2938b;
}

:root { background: var(--ehc-page); }
body { background: var(--ehc-page); color: var(--ehc-ink); }
.landing-site .brand .brand-title,
.app-site .brand .brand-title { display: block; margin: 0; color: var(--ehc-ink); font: 700 21px/1.1 Arial, Helvetica, sans-serif; letter-spacing: .16em; white-space: nowrap; }
.landing-site .brand .brand-credit,
.app-site .brand .brand-credit { display: inline-flex; align-self: center; align-items: center; gap: 6px; margin: 8px 0 0; }
.landing-site .brand .brand-by,
.app-site .brand .brand-by { display: inline; margin: 0; color: var(--ehc-muted); font-size: 10px; font-weight: 400; letter-spacing: .02em; line-height: 1; }
.landing-site .brand .brand-logo,
.app-site .brand .brand-logo { display: block; width: 78px; height: 14px; margin: 0; object-fit: contain; }
.landing-site .brand .brand-logo-on-dark,
.app-site .brand .brand-logo-on-dark { display: none; }
:root[data-theme="dark"] .landing-site .brand .brand-logo-on-light,
:root[data-theme="dark"] .app-site .brand .brand-logo-on-light { display: none; }
:root[data-theme="dark"] .landing-site .brand .brand-logo-on-dark,
:root[data-theme="dark"] .app-site .brand .brand-logo-on-dark { display: block; }
.theme-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: none; min-height: 44px; padding: 9px 12px; border: 1px solid var(--ehc-line); border-radius: 8px; background: var(--ehc-panel); color: var(--ehc-ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.theme-toggle:hover { background: var(--ehc-hover); }
.theme-toggle svg { display: block; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
:root[data-theme="light"] .theme-toggle .icon-sun,
:root[data-theme="dark"] .theme-toggle .icon-moon { display: none; }
.theme-toggle:focus-visible { outline: 3px solid var(--ehc-focus); outline-offset: 3px; }

/* Public site */
.landing-site { --green: var(--ehc-ink); --line: var(--ehc-line); --muted: var(--ehc-muted); }
.landing-site p { color: var(--ehc-muted); }
.landing-site .site-header { border-bottom: 1px solid var(--ehc-line); }
.landing-site .site-header nav a:hover,
.landing-site footer > a:last-child:hover,
.landing-site .text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.landing-site .brand { display: inline-flex; flex-direction: column; align-items: flex-start; font-size: inherit; letter-spacing: normal; }
.landing-site .header-controls { display: flex; align-items: center; gap: 10px; }
.landing-site .language-picker select { background: var(--ehc-panel); border-color: var(--ehc-line); color: var(--ehc-ink); }
.landing-site .language-picker select:focus-visible,
.landing-site a:focus-visible { outline-color: var(--ehc-focus); }
.landing-site .eyebrow { color: var(--ehc-ink); }
.landing-site .eyebrow::before { content: ''; display: inline-block; width: 17px; height: 2px; margin: 0 9px 3px 0; background: currentColor; }
.landing-site .button { background: var(--ehc-accent); color: var(--ehc-accent-ink); }
.landing-site .button:hover { background: var(--ehc-hover); color: var(--ehc-ink); }
.landing-site .team-link,
.landing-site .property-types li { border-color: var(--ehc-line); }
.landing-site .team-link:hover { background: var(--ehc-panel-soft); text-decoration: none; }
.landing-site .text-link { color: var(--ehc-ink); }
.landing-site .hero-image { background: var(--ehc-panel-soft); border: 1px solid var(--ehc-line); }
.landing-site .hero-image figcaption { color: #fffdf9; background: linear-gradient(transparent, rgba(16, 19, 21, .88)); }
.landing-site .section { border-color: var(--ehc-line); }
.landing-site .system { background: var(--ehc-panel); border: 1px solid var(--ehc-line); }
.landing-site .features article,
.landing-site .team-note,
.landing-site .contact-person,
.landing-site footer { border-color: var(--ehc-line); }
.landing-site .feature-number,
.landing-site .team-note strong { color: var(--ehc-ink); }
.landing-site .outline { background: transparent; border-color: var(--ehc-ink); color: var(--ehc-ink); }
.landing-site .outline:hover { background: var(--ehc-hover); }
.landing-site .skip-link { background: var(--ehc-panel); color: var(--ehc-ink); }
:root[data-theme="dark"] .landing-site .hero-image img { filter: brightness(.76) saturate(.7); }

/* Operational app, including login, caretaker, dashboard and admin. */
.app-site { --border: var(--ehc-line); }
.app-site.login-route { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.app-site.login-route main { width: 100%; flex: 1; display: flex; flex-direction: column; padding-top: clamp(28px, 5vh, 70px); padding-bottom: clamp(24px, 4vh, 50px); }
.login-route .login { width: 100%; margin: auto auto; }
.login-flow { display: flex; align-items: baseline; justify-content: space-between; gap: 34px; width: 100%; border-top: 1px solid var(--ehc-line); padding-top: 22px; margin-top: 42px; }
.app-site .login-flow p { flex: 0 0 245px; color: var(--ehc-ink); font: 400 20px/1.3 Georgia, serif; margin: 0; }
.login-flow ol { flex: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; list-style: none; margin: 0; padding: 0; }
.login-flow li { color: var(--ehc-muted); font-size: 12px; font-weight: 600; line-height: 1.5; }
.login-flow li span { color: var(--ehc-ink); font-size: 10px; letter-spacing: .12em; margin-right: 9px; }
.app-site header { border-color: var(--ehc-line); }
.app-site .brand { display: inline-flex; flex-direction: column; align-items: flex-start; font-size: inherit; letter-spacing: normal; }
.app-site .app-header-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px; }
.app-site #account { min-width: 0; }
.app-site .account-menu { position: relative; min-width: 0; }
.app-site .account-menu summary { display: flex; align-items: center; gap: 8px; min-height: 44px; max-width: 100%; padding: 8px 12px; border: 1px solid var(--ehc-line); border-radius: 8px; color: var(--ehc-ink); cursor: pointer; list-style: none; }
.app-site .account-menu summary::-webkit-details-marker { display: none; }
.app-site .account-menu summary:focus-visible { outline: 3px solid var(--ehc-focus); outline-offset: 3px; }
.app-site .account-menu .account-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; }
.app-site .account-menu summary svg { display: block; width: 14px; height: 14px; flex: none; transition: transform .15s ease; }
.app-site .account-menu[open] summary svg { transform: rotate(180deg); }
.app-site .account-menu-panel { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; min-width: 190px; padding: 6px; border: 1px solid var(--ehc-line); border-radius: 10px; background: var(--ehc-panel); box-shadow: 0 12px 30px rgba(0,0,0,.15); }
.app-site .account-menu-panel a,
.app-site .account-menu-panel button { display: flex; align-items: center; justify-content: flex-start; width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--ehc-ink); font-size: 14px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.app-site .account-menu-panel a:hover,
.app-site .account-menu-panel button:hover:not(:disabled) { background: var(--ehc-hover); filter: none; }
.app-site .session-panel h2 { margin: 0; }
.app-site .session-heading { align-items: flex-start; margin-bottom: 18px; }
.app-site .session-heading p { max-width: 680px; margin: 7px 0 0; font-size: 14px; }
.app-site .session-heading button { flex: none; }
.app-site .session-card { display: grid; grid-template-columns: minmax(150px,1.2fr) minmax(200px,1.2fr) minmax(150px,1fr) auto; align-items: center; gap: 12px 18px; padding: 16px 0; border-top: 1px solid var(--ehc-line); }
.app-site .session-identity strong,
.app-site .session-device strong { display: block; overflow-wrap: anywhere; }
.app-site .session-identity span,
.app-site .session-device span,
.app-site .session-state small,
.app-site .session-self { display: block; color: var(--ehc-muted); font-size: 12px; line-height: 1.5; }
.app-site .session-device span { font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.app-site .session-device:empty { display: none; }
.app-site .session-state small { margin-top: 6px; }
.app-site .session-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 9px; border: 1px solid var(--ehc-line); border-radius: 999px; color: var(--ehc-muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
.app-site .session-badge.session-active { border-color: var(--ehc-ink); background: var(--ehc-ink); color: var(--ehc-page); }
.app-site .session-action button { white-space: nowrap; }
.app-site .session-confirm { grid-column: 1 / -1; padding: 14px; border: 1px solid var(--ehc-line); border-radius: 10px; background: var(--ehc-panel-soft); }
.app-site .session-confirm[hidden],
.app-site .session-action button[hidden] { display: none; }
.app-site .session-confirm p { margin: 0 0 10px; font-size: 14px; }
.app-site .session-confirm .row { gap: 8px; }
.app-site .session-error:empty { display: none; }
.app-site .wp-grid { align-items: stretch; }
.app-site .panel.workplace-card { --wp-border: transparent; display: flex; flex-direction: column; border-color: var(--ehc-line); transition: border-color .25s ease, box-shadow .25s ease; }
.app-site .wp-brand { display: grid; justify-items: center; gap: 7px; margin-top: auto; padding-top: 19px; border-top: 1px solid var(--ehc-line); text-align: center; }
.app-site .workplace-card .villa-editor:empty { min-height: 18px; }
.app-site .wp-brand-title { color: var(--ehc-ink); font: 700 13px/1.1 Arial, Helvetica, sans-serif; letter-spacing: .18em; }
.app-site .wp-brand-credit { display: inline-flex; align-items: center; gap: 6px; color: var(--ehc-muted); font-size: 10px; line-height: 1; }
.app-site .wp-brand-logo { display: block; width: 78px; height: 14px; object-fit: contain; }
.app-site .wp-brand-logo-dark { display: none; }
:root[data-theme="dark"] .app-site .wp-brand-logo-light { display: none; }
:root[data-theme="dark"] .app-site .wp-brand-logo-dark { display: block; }
.app-site .workplace-card.wp-in-progress { --wp-border: var(--wp-green); }
.app-site .workplace-card.wp-done { --wp-border: var(--wp-blue); }
.app-site .workplace-card.wp-issues-low { --wp-border: var(--wp-yellow); }
.app-site .workplace-card.wp-issues-high { --wp-border: var(--wp-red); }
.app-site .panel.workplace-card:not(.wp-idle):not(.wp-occupied) { border-color: var(--wp-border); box-shadow: 0 0 0 1px color-mix(in srgb, var(--wp-border) 40%, transparent), 0 0 19px color-mix(in srgb, var(--wp-border) 17%, transparent); }
.app-site .panel.workplace-card.wp-occupied { border: 1.5px solid transparent; background: linear-gradient(var(--ehc-panel),var(--ehc-panel)) padding-box, linear-gradient(125deg,#a288bd,#e4e7f0,#8dbab0,#d2b0cf,#93b2d4) border-box; box-shadow: 0 0 20px color-mix(in srgb, #ad9ed6 17%, transparent); }
.app-site .wp-meta { display: flex; flex-wrap: wrap; gap: 7px 10px; align-items: center; margin: 12px 0 2px; }
.app-site .wp-status { display: inline-flex; min-height: 27px; align-items: center; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--ehc-line); font-size: 12px; font-weight: 700; }
.app-site .wp-in-progress .wp-status { border-color: var(--wp-green); color: var(--wp-green); }
.app-site .wp-done .wp-status { border-color: var(--wp-blue); color: var(--wp-blue); }
.app-site .wp-issues-low .wp-status { border-color: var(--wp-yellow); color: var(--wp-yellow); }
.app-site .wp-issues-high .wp-status { border-color: var(--wp-red); color: var(--wp-red); }
.app-site .wp-occupied .wp-status { border-color: #aa96c5; color: var(--ehc-ink); }
.app-site .wp-occupancy { font-size: 12px; color: var(--ehc-muted); }
.app-site .wp-filter-area { flex:1; min-width:min(100%,520px); }
.app-site .wp-legend { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.app-site .wp-legend-item,
.app-site .wp-filter-all { display:inline-flex; gap:7px; align-items:center; min-height:36px; padding:7px 10px; border:1px solid transparent; border-radius:999px; background:transparent; color:var(--ehc-muted); font-size:12px; font-weight:600; }
.app-site .wp-legend-item:hover,
.app-site .wp-filter-all:hover { border-color:var(--ehc-line); background:var(--ehc-hover); color:var(--ehc-ink); filter:none; }
.app-site .wp-legend-item[aria-pressed="true"],
.app-site .wp-filter-all[aria-pressed="true"] { border-color:var(--ehc-ink); background:var(--ehc-ink); color:var(--ehc-page); }
.app-site .wp-legend-item i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; border: 1px solid var(--ehc-line); }
.app-site .wp-legend-item.wp-in-progress i { background: var(--wp-green); border-color: var(--wp-green); }
.app-site .wp-legend-item.wp-done i { background: var(--wp-blue); border-color: var(--wp-blue); }
.app-site .wp-legend-item.wp-issues-low i { background: var(--wp-yellow); border-color: var(--wp-yellow); }
.app-site .wp-legend-item.wp-issues-high i { background: var(--wp-red); border-color: var(--wp-red); }
.app-site .wp-legend-item.wp-occupied i { border-color: #aa96c5; background: linear-gradient(135deg,#a288bd,#e4e7f0,#8dbab0); }
.app-site .wp-filter-summary { min-height:18px; margin:8px 0 0; color:var(--ehc-muted); font-size:12px; line-height:1.4; }
.app-site .wp-filter-empty { margin:18px 0 0; padding:22px; border:1px dashed var(--ehc-line); border-radius:12px; color:var(--ehc-muted); text-align:center; }
.app-site .workplace-card[hidden],
.app-site .wp-filter-empty[hidden] { display:none; }
.app-site .occupancy-control { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin: 14px 0; }
.app-site .occupancy-control p { margin: 4px 0 0; }
.app-site .occupancy-switch { position: relative; display: inline-flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; }
.app-site .occupancy-switch input { position: absolute; inset: 0 auto auto 0; z-index: 1; width: 48px; height: 28px; opacity: 0; cursor: pointer; }
.app-site .switch-track { display: inline-flex; align-items: center; width: 48px; height: 28px; padding: 3px; border: 1px solid var(--ehc-line); border-radius: 99px; background: var(--ehc-panel-soft); transition: background .2s; }
.app-site .switch-track::before { content: ''; width: 20px; height: 20px; border-radius: 50%; background: var(--ehc-panel); box-shadow: 0 1px 4px #0003; transition: transform .2s; }
.app-site .occupancy-switch input:checked + .switch-track { background: var(--ehc-ink); }
.app-site .occupancy-switch input:checked + .switch-track::before { transform: translateX(20px); }
.app-site .occupancy-switch input:focus-visible + .switch-track { outline: 3px solid var(--ehc-focus); outline-offset: 3px; }
.app-site .occupancy-switch input:disabled + .switch-track { opacity: .5; }
.app-site .occupancy-choice { min-width: 105px; font-size: 13px; }
.app-site .close-villa-editor { margin-top: 3px; }
.app-site p,
.app-site .muted,
.app-site .saved,
.app-site .eyebrow,
.app-site th,
.app-site .empty-state,
.app-site .password-mask,
.app-site .account-help { color: var(--ehc-muted); }
.app-site a { color: var(--ehc-ink); }
.app-site .login,
.app-site .panel,
.app-site .worklink,
.app-site .active-visit,
.app-site .scanner,
.app-site .dashboard-detail { background: var(--ehc-panel); border-color: var(--ehc-line); color: var(--ehc-ink); }
.app-site input,
.app-site textarea,
.app-site select { background: var(--ehc-field); border-color: var(--ehc-line); color: var(--ehc-ink); }
.app-site input::placeholder,
.app-site textarea::placeholder { color: var(--ehc-muted); opacity: 1; }
.app-site button,
.app-site .button { background: var(--ehc-accent); color: var(--ehc-accent-ink); }
.app-site button:hover:not(:disabled),
.app-site .button:hover { filter: brightness(.9); }
.app-site button.secondary,
.app-site .button.secondary,
.app-site .tabs button:not(.active) { background: var(--ehc-panel-soft); color: var(--ehc-ink); }
.app-site .tabs button.active { background: var(--ehc-accent); color: var(--ehc-accent-ink); }
.app-site .theme-toggle,
.app-site .edit-villa,
.app-site .account-edit,
.app-site .account-delete,
.app-site .password-toggle { background: transparent; color: var(--ehc-ink); }
.app-site .theme-toggle { border-color: var(--ehc-line); }
.app-site .edit-villa:hover,
.app-site .edit-villa[aria-expanded="true"],
.app-site .account-edit:hover,
.app-site .account-edit[aria-expanded="true"],
.app-site .account-delete:hover,
.app-site .password-toggle:hover { background: var(--ehc-hover); color: var(--ehc-ink); filter: none; }
.app-site .account-editor-row td { background: var(--ehc-panel-soft); }
.app-site .task,
.app-site td,
.app-site th,
.app-site .villa-editor:not(:empty),
.app-site .property-inspection { border-color: var(--ehc-line); }
.app-site .check input,
.app-site .property-inspection .check input[type=radio],
.app-site .active-visit progress { accent-color: var(--ehc-ink); }
.app-site .status { background: var(--ehc-panel-soft); color: var(--ehc-ink); }
.app-site .status-completed,
.app-site .success { background: var(--ehc-success-bg); color: var(--ehc-success-ink); }
.app-site .status-issues { background: var(--ehc-warning-bg); color: var(--ehc-warning-ink); }
.app-site .status-active { background: var(--ehc-active-bg); color: var(--ehc-active-ink); }
.app-site .status-cancelled { background: var(--ehc-panel-soft); color: var(--ehc-muted); }
.app-site .error { background: var(--ehc-error-bg); color: var(--ehc-error-ink); }
.app-site .scanner video { background: var(--ehc-page); }
.app-site button:focus-visible,
.app-site input:focus-visible,
.app-site textarea:focus-visible,
.app-site select:focus-visible,
.app-site a:focus-visible { outline-color: var(--ehc-focus); }

@media (max-width: 800px) {
  .landing-site .header-controls { margin-left: auto; }
  .landing-site .site-header nav { order: 3; width: 100%; }
}
@media (max-width: 700px) {
  .app-site .session-card { grid-template-columns: minmax(0,1fr) auto; gap: 9px 12px; }
  .app-site .session-identity { grid-column: 1; grid-row: 1; }
  .app-site .session-state { grid-column: 1 / -1; grid-row: 2; }
  .app-site .session-device { grid-column: 1 / -1; grid-row: 3; }
  .app-site .session-action { grid-column: 2; grid-row: 1; }
  .app-site .session-heading { align-items: stretch; }
  .login-flow { display: block; margin-top: 32px; padding-top: 18px; }
  .app-site .login-flow p { margin-bottom: 14px; font-size: 18px; }
  .login-flow ol { grid-template-columns: 1fr; gap: 8px; }
  .landing-site .header-controls { order: 1; }
  .landing-site .site-header nav { order: 2; }
  .landing-site .brand .brand-title,
  .app-site .brand .brand-title { font-size: 18px; }
  .landing-site .brand .brand-logo,
  .app-site .brand .brand-logo { width: 72px; height: 13px; }
  .landing-site .language-picker select { max-width: 110px; }
  .landing-site .theme-toggle [data-theme-label] { display: none; }
  .app-site header { flex-wrap: nowrap; gap: 8px; padding: 14px 16px; }
  .app-site .brand { flex: none; }
  .app-site .app-header-actions { flex: 1; min-width: 0; flex-wrap: nowrap; gap: 8px; margin-left: auto; }
  .app-site .account-menu summary { padding: 8px 9px; }
  .app-site .theme-toggle [data-theme-label] { display: none; }
}
@media (max-width: 360px) {
  .app-site .brand .brand-title { font-size: 16px; }
  .app-site .brand .brand-logo { width: 62px; height: 11px; }
  .app-site .theme-toggle { width: 44px; padding: 9px; }
}

/* Workplace views and restrained status light. The mask uses the locked Ethera lockup. */
:root[data-theme="light"] { --wp-green:#397d57; --wp-blue:#3d6fa8; --wp-yellow:#9b6b20; --wp-red:#aa4d48; }
.app-site .wp-toolbar { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.app-site .wp-toolbar .wp-legend { flex:1; }
.app-site .wp-view-controls { display:inline-flex; gap:4px; padding:4px; border:1px solid var(--ehc-line); border-radius:10px; background:var(--ehc-panel-soft); }
.app-site .wp-view-controls button { min-height:38px; padding:7px 13px; border:0; border-radius:7px; font-size:13px; }
.app-site .wp-view-controls button[aria-pressed="true"] { background:var(--ehc-accent); color:var(--ehc-accent-ink); }
.app-site .panel.workplace-card { --wp-indicator:var(--ehc-ink); isolation:isolate; }
.app-site .workplace-card .wp-actions { position:absolute; z-index:2; top:10px; right:10px; display:flex; gap:2px; }
.app-site .workplace-card .edit-villa,
.app-site .workplace-card .delete-workplace { position:static; display:grid; place-items:center; width:44px; height:44px; padding:0; border-radius:9px; background:transparent; color:var(--ehc-ink); }
.app-site .workplace-card .delete-workplace:hover { background:var(--ehc-error-bg); color:var(--ehc-error-ink); filter:none; }
.app-site .workplace-card.wp-admin > .eyebrow,
.app-site .workplace-card.wp-admin > .villa-name { padding-right:92px; }
.app-site .workplace-card.wp-in-progress { --wp-indicator:var(--wp-green); }
.app-site .workplace-card.wp-done { --wp-indicator:var(--wp-blue); }
.app-site .workplace-card.wp-issues-low { --wp-indicator:var(--wp-yellow); }
.app-site .workplace-card.wp-issues-high { --wp-indicator:var(--wp-red); }
.app-site .panel.workplace-card:not(.wp-idle):not(.wp-occupied) { border:2px solid transparent; background:linear-gradient(var(--ehc-panel),var(--ehc-panel)) padding-box,linear-gradient(110deg,var(--wp-indicator),color-mix(in srgb,var(--wp-indicator) 28%,var(--ehc-panel)),var(--wp-indicator),color-mix(in srgb,var(--wp-indicator) 45%,white),var(--wp-indicator)) border-box; background-size:100% 100%,260% 100%; box-shadow:0 0 0 1px color-mix(in srgb,var(--wp-indicator) 25%,transparent),0 0 20px color-mix(in srgb,var(--wp-indicator) 25%,transparent); animation:wp-light-wave 8s linear infinite; }
.app-site .panel.workplace-card.wp-occupied { --wp-indicator:#80649d; border:2px solid transparent; background:linear-gradient(var(--ehc-panel),var(--ehc-panel)) padding-box,linear-gradient(110deg,#8f72b5,#c9bbdf,#7ca5b2,#b48dc1,#d0c8ec,#8f72b5) border-box; background-size:100% 100%,260% 100%; box-shadow:0 0 0 1px #a990be55,0 0 20px #9d81b044; animation:wp-light-wave 8s linear infinite; }
.app-site .workplace-card .wp-brand { border-color:color-mix(in srgb,var(--wp-indicator) 38%,var(--ehc-line)); }
.app-site .workplace-card .wp-brand-title,
.app-site .workplace-card .wp-brand-logo { color:var(--wp-indicator); }
.app-site .workplace-card .wp-brand-logo { display:block; width:78px; height:14px; background:currentColor; -webkit-mask:url('/brand/ethera-lockup-dark.svg') center/contain no-repeat; mask:url('/brand/ethera-lockup-dark.svg') center/contain no-repeat; }
.app-site .workplace-card:not(.wp-idle) .wp-brand-title,
.app-site .workplace-card:not(.wp-idle) .wp-brand-logo { filter:drop-shadow(0 0 5px color-mix(in srgb,var(--wp-indicator) 36%,transparent)); }
.app-site .workplace-card:not(.wp-idle):not(.wp-occupied) .wp-brand-title { color:transparent; background:linear-gradient(95deg,var(--wp-indicator),color-mix(in srgb,var(--wp-indicator) 48%,var(--ehc-ink)),var(--wp-indicator)); background-size:240% 100%; background-clip:text; -webkit-background-clip:text; animation:wp-brand-wave 8s linear infinite; }
.app-site .workplace-card:not(.wp-idle):not(.wp-occupied) .wp-brand-logo { background:linear-gradient(95deg,var(--wp-indicator),color-mix(in srgb,var(--wp-indicator) 48%,var(--ehc-ink)),var(--wp-indicator)); background-size:240% 100%; animation:wp-brand-wave 8s linear infinite; }
.app-site .workplace-card.wp-occupied .wp-brand-title { color:transparent; background:linear-gradient(95deg,#856aab,#a79bbb,#568b9a,#a47ab1,#856aab); background-size:240% 100%; background-clip:text; -webkit-background-clip:text; animation:wp-brand-wave 8s linear infinite; }
.app-site .workplace-card.wp-occupied .wp-brand-logo { background:linear-gradient(95deg,#856aab,#a79bbb,#568b9a,#a47ab1,#856aab); background-size:240% 100%; animation:wp-brand-wave 8s linear infinite; }
@keyframes wp-light-wave { to { background-position:0 0,100% 0; } }
@keyframes wp-brand-wave { to { background-position:100% 0; } }

.app-site .wp-grid.wp-list { grid-template-columns:minmax(0,1fr); gap:12px; }
.app-site .wp-grid.wp-list .workplace-card[hidden] { display:none; }
.app-site .wp-list .workplace-card { display:grid; grid-template-columns:76px minmax(130px,1.2fr) minmax(180px,1.2fr) minmax(135px,auto); align-items:center; gap:10px 18px; min-height:128px; margin:0; padding:18px 112px 18px 22px; }
.app-site .wp-list .workplace-card > .eyebrow { grid-column:1; grid-row:1; padding:0; }
.app-site .wp-list .workplace-card > .villa-name { grid-column:2; grid-row:1; margin:0; padding:0; }
.app-site .wp-list .workplace-card > .wp-meta { grid-column:3; grid-row:1; margin:0; }
.app-site .wp-list .workplace-card > .wp-task-count { grid-column:4; grid-row:1; margin:0; white-space:nowrap; }
.app-site .wp-list .workplace-card > .wp-card-tools { grid-column:1 / 4; grid-row:2; margin:0; gap:8px; }
.app-site .wp-list .workplace-card > .wp-brand { grid-column:4; grid-row:2; display:flex; align-items:center; justify-self:end; gap:6px; margin:0; padding:0; border:0; }
.app-site .wp-list .workplace-card > .wp-brand .wp-brand-title { font-size:10px; }
.app-site .wp-list .workplace-card > .wp-brand .wp-brand-credit { gap:4px; }
.app-site .wp-list .workplace-card > .wp-brand .wp-brand-logo { width:65px; height:12px; }
.app-site .wp-list .workplace-card > .villa-editor:not(:empty) { grid-column:1 / -1; grid-row:3; }
.app-site .wp-list .workplace-card > .villa-editor:empty { display:none; }
.app-site .wp-list .workplace-card:not(.wp-admin) > .wp-brand { grid-column:2 / 5; }

.app-site .confirm-delete { width:min(92vw,480px); padding:26px; border:1px solid var(--ehc-line); border-radius:14px; background:var(--ehc-panel); color:var(--ehc-ink); box-shadow:0 25px 80px #0005; }
.app-site .confirm-delete::backdrop { background:#1119; }
.app-site .confirm-delete h2 { margin:0 0 10px; font-size:22px; }
.app-site .confirm-delete p { margin:0 0 20px; line-height:1.5; }
.app-site .confirm-delete .row { gap:10px; }
.app-site .confirm-delete .delete-confirm { background:var(--ehc-error-bg); color:var(--ehc-error-ink); }
.app-site .confirm-delete .confirm-delete-error:empty { display:none; }
.app-site .confirm-delete .confirm-delete-error:not(:empty) { margin-bottom:14px; }

@media (max-width:900px) {
 .app-site .wp-list .workplace-card { grid-template-columns:64px minmax(0,1fr) minmax(125px,auto); padding-right:104px; }
 .app-site .wp-list .workplace-card > .wp-meta { grid-column:1 / 3; grid-row:2; }
 .app-site .wp-list .workplace-card > .wp-task-count { grid-column:3; grid-row:2; }
 .app-site .wp-list .workplace-card > .wp-card-tools { grid-column:1 / 3; grid-row:3; }
 .app-site .wp-list .workplace-card > .wp-brand { grid-column:3; grid-row:3; }
 .app-site .wp-list .workplace-card:not(.wp-admin) > .wp-brand { grid-column:2 / 4; grid-row:3; }
 .app-site .wp-list .workplace-card > .villa-editor:not(:empty) { grid-row:4; }
}
@media (max-width:600px) {
 .app-site .wp-toolbar .wp-legend { flex-basis:100%; }
 .app-site .wp-legend { gap:6px; }
 .app-site .wp-legend-item,
 .app-site .wp-filter-all { min-height:40px; padding:8px 11px; }
 .app-site .wp-view-controls { margin-left:auto; }
 .app-site .wp-list .workplace-card { grid-template-columns:55px minmax(0,1fr); gap:8px 12px; padding:15px 15px 17px; }
 .app-site .wp-list .workplace-card > .villa-name { padding-right:90px; }
 .app-site .wp-list .workplace-card > .wp-meta { grid-column:1 / -1; grid-row:2; }
 .app-site .wp-list .workplace-card > .wp-task-count { grid-column:1 / -1; grid-row:3; }
 .app-site .wp-list .workplace-card > .wp-card-tools { grid-column:1 / -1; grid-row:4; }
 .app-site .wp-list .workplace-card > .wp-brand { grid-column:1 / -1; grid-row:5; justify-self:start; }
 .app-site .wp-list .workplace-card:not(.wp-admin) > .wp-brand { grid-column:1 / -1; grid-row:4; }
 .app-site .wp-list .workplace-card > .villa-editor:not(:empty) { grid-row:6; }
}
@media (prefers-reduced-motion:reduce) {
 .app-site .panel.workplace-card,
 .app-site .workplace-card .wp-brand-title,
 .app-site .workplace-card .wp-brand-logo { animation:none !important; }
}

/* Finance workspace */
.app-site .finance-heading h2,
.app-site .finance-records h2,
.app-site .finance-breakdown h2,
.app-site .finance-dialog h2 { margin:7px 0; }
.app-site .finance-heading p { margin:5px 0 0; }
.app-site .finance-filters { display:grid; grid-template-columns:minmax(150px,.75fr) minmax(150px,.75fr) minmax(210px,1fr) auto; align-items:end; gap:12px; margin-top:22px; padding-top:18px; border-top:1px solid var(--ehc-line); }
.app-site .finance-filters label { margin:0 0 7px; }
.app-site .finance-filters button { margin:0; }
.app-site .finance-notice:empty { display:none; }
.app-site .finance-notice .success { margin:16px 0 0; }
.app-site .finance-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.app-site .finance-kpi { position:relative; display:grid; gap:10px; min-height:150px; margin:0; overflow:hidden; }
.app-site .finance-kpi::before { content:''; position:absolute; inset:0 auto 0 0; width:4px; background:var(--ehc-line); }
.app-site .finance-kpi.finance-income::before { background:var(--wp-green); }
.app-site .finance-kpi.finance-expense::before,
.app-site .finance-kpi.finance-negative::before { background:var(--wp-red); }
.app-site .finance-kpi.finance-balance::before { background:var(--wp-blue); }
.app-site .finance-kpi span { color:var(--ehc-muted); font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.app-site .finance-kpi strong { align-self:center; color:var(--ehc-ink); font-size:clamp(22px,2.1vw,31px); line-height:1.1; overflow-wrap:anywhere; }
.app-site .finance-kpi small { color:var(--ehc-muted); font-size:12px; }
.app-site .finance-layout { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(0,2fr); gap:15px; align-items:start; }
.app-site .finance-layout > * { min-width:0; }
.app-site .finance-layout > .panel { margin:18px 0 0; }
.app-site .finance-breakdown-list article { padding:15px 0; border-top:1px solid var(--ehc-line); }
.app-site .finance-breakdown-list article:first-child { margin-top:12px; }
.app-site .finance-breakdown-list progress { width:100%; height:9px; margin:11px 0 0; accent-color:var(--wp-yellow); }
.app-site .finance-breakdown-list p { margin:3px 0 0; }
.app-site .finance-records .tablewrap { margin-top:14px; }
.app-site .finance-table { min-width:680px; }
.app-site .finance-table td { white-space:normal; vertical-align:middle; }
.app-site .finance-table td:first-child { min-width:102px; white-space:nowrap; }
.app-site .finance-table td:nth-child(2) { min-width:190px; }
.app-site .finance-table td:nth-child(3) { min-width:160px; }
.app-site .finance-table td:nth-child(4) { min-width:145px; white-space:nowrap; }
.app-site .finance-amount { font-weight:750; }
.app-site .finance-income { color:var(--wp-green); }
.app-site .finance-expense { color:var(--wp-red); }
.app-site .finance-row-actions { display:flex; gap:3px; }
.app-site .finance-row-actions button { display:grid; place-items:center; width:40px; height:40px; min-height:40px; padding:0; background:transparent; color:var(--ehc-ink); }
.app-site .finance-row-actions button:hover { background:var(--ehc-hover); filter:none; }
.app-site .finance-row-actions .finance-remove:hover { background:var(--ehc-error-bg); color:var(--ehc-error-ink); }
.app-site .finance-dialog { width:min(92vw,760px); max-height:90vh; overflow:auto; padding:26px; border:1px solid var(--ehc-line); border-radius:16px; background:var(--ehc-panel); color:var(--ehc-ink); box-shadow:0 25px 80px #0005; }
.app-site .finance-dialog::backdrop { background:#111a; }
.app-site .finance-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
.app-site .finance-note-field { grid-column:1 / -1; }
.app-site .finance-caretaker-field[hidden] { display:none; }
.app-site .finance-form-actions { margin-top:18px; }
.app-site .finance-form-error:empty,
.app-site .finance-delete-error:empty { display:none; }
.app-site .finance-form-error:not(:empty),
.app-site .finance-delete-error:not(:empty) { margin-top:14px; }
@media(max-width:900px){
 .app-site .finance-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .app-site .finance-layout { grid-template-columns:1fr; }
 .app-site .finance-breakdown-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
}
@media(max-width:650px){
 .app-site .tabs { flex-wrap:nowrap; max-width:100%; overflow-x:auto; padding-bottom:3px; }
 .app-site .tabs button { flex:none; }
 .app-site .finance-heading > .row { align-items:flex-start; }
 .app-site .finance-heading > .row > button { width:100%; }
 .app-site .finance-filters,
 .app-site .finance-kpis,
 .app-site .finance-form-grid { grid-template-columns:1fr; }
 .app-site .finance-kpi { min-height:125px; }
 .app-site .finance-breakdown-list { grid-template-columns:1fr; }
 .app-site .finance-dialog { padding:20px; }
 .app-site .finance-dialog > .row { align-items:flex-start; }
 .app-site .finance-form-actions button { flex:1; }
 .app-site .finance-records .tablewrap { overflow:visible; }
 .app-site .finance-table { display:block; min-width:0; }
 .app-site .finance-table thead { display:none; }
 .app-site .finance-table tbody { display:block; }
 .app-site .finance-table tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px 12px; padding:16px 0; border-top:1px solid var(--ehc-line); }
 .app-site .finance-table td { display:block; min-width:0 !important; padding:0; border:0; white-space:normal !important; }
 .app-site .finance-table td:nth-child(1) { grid-column:1; grid-row:1; color:var(--ehc-muted); }
 .app-site .finance-table td:nth-child(2) { grid-column:1 / -1; grid-row:2; }
 .app-site .finance-table td:nth-child(3) { grid-column:1 / -1; grid-row:3; color:var(--ehc-muted); }
 .app-site .finance-table td:nth-child(4) { grid-column:2; grid-row:1; text-align:right; }
 .app-site .finance-table td:nth-child(5) { grid-column:1 / -1; grid-row:4; }
 .app-site .finance-row-actions { justify-content:flex-end; }
}
