:root{font-family:"Segoe UI",Arial,sans-serif;color:#243735;background:#f5f7f8;font-synthesis:none;--green:#167466;--dark:#143d38;--muted:#72817f;--line:#e4eae8;--light:#eaf5f0;--amber:#aa741c}
.working-month {display:grid;gap:2px;min-width:0;margin:0;padding:0;border:0;font-size:14px;font-weight:700;white-space:nowrap;color:var(--dark)}
.working-month legend {padding:0;margin-bottom:2px}
.working-month-controls {display:flex;align-items:center;width:300px;min-height:48px;border:2px solid var(--green);border-radius:8px;background:var(--light)}
.working-month select,.working-month input {min-width:0;min-height:44px;padding:4px 6px;font:inherit;font-size:24px;font-weight:800;border:0;border-radius:6px;background:transparent;color:var(--dark)}
.working-month select {flex:1}
.working-month input {flex:0 0 6ch;width:6ch;border-left:1px solid var(--line)}
.working-month:disabled .working-month-controls {opacity:.65}
.month-start {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px;margin-bottom:20px;border:1px solid #b9d8cd}
.month-start p {margin:6px 0;color:var(--muted);max-width:900px}
@media(max-width:900px) {.topbar-right #current-date,.topbar-right .pill {display:none}}
@media(max-width:560px) {#workspace .topbar>span:first-child {display:none}}
body.dashboard-active #main .button,body.dashboard-active #main .table-button {font-size:14px;min-height:36px;line-height:1.35}
body.dashboard-active .plan-workspace {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
body.dashboard-active .plan-workspace.has-selection {grid-template-columns:minmax(0,1fr) 360px}
body.dashboard-active .plan-map {min-width:0;border-color:#dce3df;box-shadow:none;overflow:clip}
body.dashboard-active .plan-toolbar {display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #dce3df;background:#fff}
body.dashboard-active .plan-views {display:flex;gap:3px;padding:3px;background:#f0f4f1;border:1px solid #dce3df;border-radius:8px}
body.dashboard-active #main .plan-views button {font-size:14px;min-height:38px;padding:6px 12px;border:0;border-radius:5px;color:#485e54;background:transparent}
body.dashboard-active #main .plan-views button[aria-pressed="true"] {background:#12675c;color:#fff}
body.dashboard-active .plan-zoom {display:flex;align-items:center;gap:6px;font-size:14px;font-variant-numeric:tabular-nums}
body.dashboard-active .plan-zoom output {min-width:52px;text-align:center}
body.dashboard-active .plan-guide {font-size:14px;line-height:1.5;padding:10px 16px;color:#53685d;background:#fafcfb}
body.dashboard-active .plan-guide strong {display:block;font-weight:500}
body.dashboard-active .plan-context {display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:14px;margin:12px 0;color:#52675c}
body.dashboard-active .plan-alerts {font-size:14px;margin-bottom:14px}
body.dashboard-active .plan-alerts summary,body.dashboard-active .plan-listings>summary,body.dashboard-active .plan-compact>summary {cursor:pointer;padding:10px 0;font-weight:600}
body.dashboard-active .dashboard-map .map-container.industrial-plan {position:relative;height:clamp(380px,65vh,680px);min-height:380px;max-height:none;max-width:100%;width:100%;padding:16px;overflow:auto;background:#f0f3f1;background-image:none;overscroll-behavior:auto;touch-action:pan-x pan-y}
body.dashboard-active .dashboard-map .industrial-plan svg {display:block;min-width:0;max-width:none;max-height:none;margin:0 auto;touch-action:pan-x pan-y}
body.dashboard-active .dashboard-map .industrial-plan.is-editing svg {touch-action:none}
body.dashboard-active .industrial-plan .plan-room {cursor:grab;outline:none}
body.dashboard-active .industrial-plan .plan-room:active {cursor:grabbing}
body.dashboard-active .industrial-plan .plan-walls,body.dashboard-active .industrial-plan .plan-labels,body.dashboard-active .industrial-plan .plan-selection,body.dashboard-active .industrial-plan .plan-occupancy-band,body.dashboard-active .industrial-plan .plan-grid {pointer-events:none}
body.dashboard-active .industrial-plan .plan-wall {fill:#ccd6d2}
body.dashboard-active .industrial-plan .plan-floor {fill:#fcfdfc}
body.dashboard-active .industrial-plan .plan-floor.corridor,body.dashboard-active .industrial-plan .plan-floor.service {fill:#e8eeea}
body.dashboard-active .industrial-plan .plan-wall-light {fill:none;stroke:#fff;stroke-width:1;opacity:.8}
body.dashboard-active .industrial-plan .plan-room {fill:#243b35}
body.dashboard-active .industrial-plan text {font-family:"Segoe UI",Arial,sans-serif;font-variant-numeric:tabular-nums;pointer-events:none}
body.dashboard-active .industrial-plan .plan-module {cursor:pointer;outline:none}
body.dashboard-active .industrial-plan .plan-module.rented rect {fill:var(--occupancy-rented-bg);stroke:var(--occupancy-rented);stroke-width:.8;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .plan-module.free rect {fill:var(--occupancy-free-bg);stroke:var(--occupancy-free);stroke-width:.8;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .plan-module.rented text {fill:var(--occupancy-rented-text)}
body.dashboard-active .industrial-plan .plan-module.free text {fill:var(--occupancy-free-text)}
body.dashboard-active .industrial-plan .plan-occupancy-band .rented {fill:var(--occupancy-rented-bg);stroke:var(--occupancy-rented);stroke-width:.8;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .plan-occupancy-band .free {fill:var(--occupancy-free-bg);stroke:var(--occupancy-free);stroke-width:.8;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .plan-selection {fill:none;stroke:#12675c;stroke-width:2.5;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .plan-room:focus-visible>.plan-walls>.plan-wall {fill:#12675c}
body.dashboard-active .industrial-plan .plan-module.selected rect,body.dashboard-active .industrial-plan .plan-module:focus-visible rect {stroke:#12675c;stroke-width:2.5;stroke-dasharray:4 2}
body.dashboard-active .industrial-plan .resize-hit {fill:transparent;pointer-events:all}
body.dashboard-active .industrial-plan .resize-grip {fill:#fff;stroke:#12675c;stroke-width:1.5;pointer-events:none;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .resize-hit:focus-visible {fill:#12675c33;stroke:#12675c;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan.is-editing .plan-room {cursor:move}
body.dashboard-active .industrial-plan .plan-labels .plan-name,
body.dashboard-active .industrial-plan .plan-name text {pointer-events:all;cursor:text}
body.dashboard-active .industrial-plan .plan-name:hover text,
body.dashboard-active .industrial-plan .plan-name:focus-visible text {text-decoration:underline}
body.dashboard-active .plan-edit-actions {padding:8px 16px;border-bottom:1px solid var(--line)}
body.dashboard-active .plan-name-editor {position:absolute;z-index:3;padding:12px;border:2px solid #12675c;border-radius:8px;background:#fff;box-shadow:0 6px 24px #143d3826;color:#243b35;font-size:14px}
body.dashboard-active .plan-name-editor label {display:grid;gap:6px}
body.dashboard-active .plan-name-editor input {width:100%;min-height:42px;padding:8px;border:1px solid #a8b9b0;border-radius:5px;font:inherit}
body.dashboard-active .plan-name-editor .actions {margin-top:8px}
body.dashboard-active .plan-name-error {margin:6px 0;color:#a52c24;font-size:14px}
body.dashboard-active .plan-legend {display:flex;flex-wrap:wrap;gap:10px 18px;padding:12px 16px;font-size:14px;color:#51665b}
body.dashboard-active .plan-legend span {display:flex;align-items:center;gap:6px}
body.dashboard-active .plan-legend i {display:inline-block;width:12px;height:12px;border-radius:2px}
body.dashboard-active .plan-legend .rented {background:var(--occupancy-rented)}
body.dashboard-active .plan-legend .free {background:var(--occupancy-free)}
body.dashboard-active .plan-legend .selection {border:2px dashed #12675c}
body.dashboard-active .plan-compact {padding:0 16px 12px;font-size:14px}
body.dashboard-active .plan-listings {margin:16px 0;font-size:14px}
body.dashboard-active .plan-inspector {position:sticky;top:90px;bottom:auto;right:auto;width:auto;max-width:none;max-height:calc(100dvh - 110px);overflow:auto;box-shadow:none;border:1px solid #dce3df;border-radius:9px;z-index:1;background:#fff}
body.dashboard-active .plan-inspector .inspector-title {position:sticky;top:0;background:#fff;z-index:1;padding:16px;border-bottom:1px solid #dce3df}
body.dashboard-active #main .plan-inspector h2 {font-size:18px;line-height:1.4;overflow-wrap:anywhere}
body.dashboard-active #main .plan-inspector h3 {font-size:16px}
body.dashboard-active #main .plan-inspector p,body.dashboard-active #main .plan-inspector .small-text,body.dashboard-active #main .plan-inspector .tag,body.dashboard-active #main .plan-inspector .value-pair,body.dashboard-active #main .plan-inspector .camera-finance {font-size:14px;line-height:1.5}
body.dashboard-active .plan-inspector .card-body {padding:16px}
body.dashboard-active .plan-inspector .camera-finance {background:#f5f8f6;padding:12px}
body.dashboard-active .plan-inspector .camera-finance strong {font-size:18px;font-variant-numeric:tabular-nums}
body.dashboard-active .plan-inspector .module-detail {padding:12px;margin:10px 0;border:1px solid #dde6e0;border-left:3px solid var(--occupancy-free);border-radius:6px}
body.dashboard-active .plan-inspector .module-detail[data-occupancy="rented"] {border-left-color:var(--occupancy-rented)}
body.dashboard-active .plan-inspector .module-detail.selected {outline:2px dashed #12675c;outline-offset:2px}
body.dashboard-active .plan-inspector .module-detail summary {cursor:pointer;font-size:14px;font-weight:600;overflow-wrap:anywhere}
body.dashboard-active .plan-mobile-detail {display:none}
body.dashboard-active #main:fullscreen {overflow:auto;background:#f5f7f8;padding:16px}
body.dashboard-active #main:fullscreen>.page-head,body.dashboard-active #main:fullscreen>.plan-alerts,body.dashboard-active #main:fullscreen>.stats,body.dashboard-active #main:fullscreen>.plan-context {display:none}
body.dashboard-active #main:fullscreen .dashboard-map .map-container.industrial-plan {height:80vh;max-height:none}
@media(max-width:1000px){body.dashboard-active .plan-workspace.has-selection{grid-template-columns:minmax(0,1fr)}body.dashboard-active .plan-inspector{position:static;max-height:none}body.dashboard-active .plan-mobile-detail{display:block;padding:10px 16px;font-size:15px}}
@media(max-width:620px){body.dashboard-active .page-head{grid-template-columns:minmax(0,1fr)}body.dashboard-active .plan-toolbar{padding:10px;gap:10px}body.dashboard-active .plan-views{width:100%;justify-content:space-between}body.dashboard-active .plan-views button{flex:1}body.dashboard-active .plan-guide{padding:10px}body.dashboard-active .dashboard-map .map-container.industrial-plan{padding:12px;height:52vh;min-height:380px}}
body.dashboard-active .plan-workspace.has-selection {grid-template-columns:minmax(0,1fr)}
body.dashboard-active .plan-inspector {position:static;max-height:650px}
body.dashboard-active .plan-view-label {font-size:14px;color:#12675c}
body.dashboard-active .flat-floor {fill:#fff;stroke:#a8b9b0;stroke-width:1.5;vector-effect:non-scaling-stroke}
body.dashboard-active .flat-room.corridor .flat-floor,
body.dashboard-active .flat-room.service .flat-floor {fill:#e8eeea}
body.dashboard-active .flat-room:focus-visible>.flat-floor {stroke:#12675c;stroke-width:3;stroke-dasharray:5 3}
body.dashboard-active .plan-room-summary {fill:#edf1f4;pointer-events:none}
body.dashboard-active .flat-room.camera.rented>.flat-floor {stroke:var(--occupancy-rented);stroke-width:2}
body.dashboard-active .flat-room.camera.free>.flat-floor {stroke:var(--occupancy-free);stroke-width:2}
body.dashboard-active .flat-room.rented>.plan-room-summary {fill:var(--occupancy-rented-bg)}
body.dashboard-active .flat-room.free>.plan-room-summary {fill:var(--occupancy-free-bg)}
body.dashboard-active .plan-fact-title,body.dashboard-active .plan-fact-gross {fill:#143d38}
body.dashboard-active .plan-fact-status {fill:#355e50}
body.dashboard-active .flat-room.rented .plan-fact-status {fill:var(--occupancy-rented-text)}
body.dashboard-active .flat-room.free .plan-fact-status {fill:var(--occupancy-free-text)}
body.dashboard-active .plan-focus-status {padding:8px 16px;font-size:14px;color:var(--muted);background:#fafcfb}
body.dashboard-active #main .plan-views button[data-id="rented"][aria-pressed="true"] {background:var(--occupancy-rented);color:#fff}
body.dashboard-active #main .plan-views button[data-id="free"][aria-pressed="true"] {background:var(--occupancy-free);color:#fff}
body.dashboard-active .industrial-plan .flat-room.occupancy-muted>.flat-floor,
body.dashboard-active .industrial-plan .flat-room.occupancy-muted>.plan-room-summary,
body.dashboard-active .industrial-plan .flat-room.occupancy-muted>.plan-labels,
body.dashboard-active .industrial-plan .flat-room.occupancy-muted>[class$="-highlight"] {opacity:.45}
body.dashboard-active .industrial-plan .plan-module.occupancy-muted {opacity:.45}
body.dashboard-active .industrial-plan .flat-room.occupancy-rented>.flat-floor {stroke:var(--occupancy-rented);stroke-width:5}
body.dashboard-active .industrial-plan .flat-room.occupancy-free>.flat-floor {stroke:var(--occupancy-free);stroke-width:5}
body.dashboard-active .industrial-plan .flat-room .plan-module.occupancy-rented>rect:first-child {fill:var(--occupancy-rented-bg);stroke:var(--occupancy-rented);stroke-width:3;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .flat-room .plan-module.occupancy-free>rect:first-child {fill:var(--occupancy-free-bg);stroke:var(--occupancy-free);stroke-width:3;vector-effect:non-scaling-stroke}
body.dashboard-active .industrial-plan .flat-room .plan-module>rect:first-child {fill:#fff}
body.dashboard-active .industrial-plan .plan-state-highlight {fill:#edf1f4;stroke:none;pointer-events:none}
body.dashboard-active .industrial-plan .flat-room>.plan-state-highlight {fill:#fff}
body.dashboard-active .industrial-plan .plan-module.rented .plan-state-highlight {fill:var(--occupancy-rented-bg);stroke:none}
body.dashboard-active .industrial-plan .plan-module.free .plan-state-highlight {fill:var(--occupancy-free-bg);stroke:none}
body.dashboard-active .industrial-plan .plan-rent-highlight,
body.dashboard-active .industrial-plan .flat-room .plan-module rect.plan-rent-highlight {fill:#edf1f4;stroke:none;pointer-events:none}
body.dashboard-active .industrial-plan .flat-room text.plan-fact-status,
body.dashboard-active .industrial-plan .flat-room .plan-module text.plan-fact-unit-client,
body.dashboard-active .industrial-plan .flat-room .plan-module text.plan-fact-unit-status {fill:#4c5c68;font-weight:800}
body.dashboard-active .industrial-plan .flat-room.rented text.plan-fact-status,
body.dashboard-active .industrial-plan .flat-room .plan-module.rented text.plan-fact-unit-client {fill:var(--occupancy-rented-text)}
body.dashboard-active .industrial-plan .flat-room.free text.plan-fact-status,
body.dashboard-active .industrial-plan .flat-room .plan-module.free text.plan-fact-unit-status {fill:var(--occupancy-free-text)}
body.dashboard-active .industrial-plan .flat-room text.plan-fact-gross,
body.dashboard-active .industrial-plan .flat-room .plan-module text.plan-fact-unit-rent {fill:var(--dark);font-weight:800}
body.dashboard-active .industrial-plan .flat-room .plan-module text.plan-fact-unit-reference {fill:#52665b;font-weight:600}
body.dashboard-active .industrial-plan .flat-room .plan-module text.plan-fact-unit {fill:#52665b}
@media(max-width:620px){body.dashboard-active .plan-inspector{max-height:none}}
.workspace[hidden],#session-loading[hidden],#working-period[hidden],[data-action][hidden],a[hidden] {display:none!important}
.session-loading {max-width:620px;margin:12vh auto;padding:24px;color:var(--dark);text-align:center}
.session-user {max-width:240px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--dark)}
body #workspace .topbar-right {min-width:0}
.client-filters {display:flex;flex-wrap:wrap;gap:16px;align-items:end}
.client-filters>label:first-child {display:grid;gap:6px;flex:1;min-width:220px}
.client-filters input[type=search] {width:100%;padding:10px;border:1px solid var(--line);border-radius:6px;background:white}
.client-count {padding:0 20px;font-size:15px;color:var(--muted)}
.client-select-field {min-width:0}
.client-select-field input[type=search],.client-select-field select {min-width:0;width:100%}
.client-select-field>label:not(.sr-only) {font-weight:600}
[data-client-import-row] {max-width:320px;min-width:180px;padding:8px;font-size:15px}
#client-import-overwrite {margin:16px 8px 0 0}
body .topbar #logout {font-size:14px;min-height:40px;white-space:nowrap}
body.login-page {display:grid;place-items:center;min-height:100vh;margin:0;padding:24px;box-sizing:border-box}
.login-card {width:min(100%,440px);padding:32px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px #143d3810;box-sizing:border-box}
.login-card .brand {font-size:26px;font-weight:800;color:var(--green);margin-bottom:20px}
.login-card h1 {margin:0 0 8px}
.login-card p {margin:8px 0 20px;color:var(--muted)}
.login-card form {display:grid;gap:10px}
.login-card label {font-weight:600}
.login-card input {width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;box-sizing:border-box;font:inherit;color:var(--dark);background:white}
.login-card input:focus-visible {outline:3px solid #16746644;border-color:var(--green)}
.login-card .button {font-size:18px;min-height:48px;width:100%}
.login-card p.error {color:#9e3434;margin:0;min-height:24px}
.login-card .login-help {font-size:15px;line-height:1.5;margin:20px 0 0}
.login-fields {display:grid;gap:10px}
.login-fields[hidden] {display:none!important}
.login-card .mfa-trust-choice {display:flex;align-items:flex-start;gap:10px;font-size:15px}
.login-card .mfa-trust-choice input {width:20px;min-height:20px;flex-shrink:0;margin-top:3px}
.security-panel {max-width:980px}
.security-panel h2 {margin-top:20px}
.security-panel h2:first-child {margin-top:0}
.security-panel form {display:grid;gap:16px;max-width:580px;margin:20px 0}
.security-panel label {display:grid;gap:6px}
.security-panel input {padding:10px;border:1px solid var(--line);border-radius:6px;width:100%;font:inherit}
.mfa-qr {display:block;width:240px;max-width:100%;height:auto;margin:20px 0;background:#fff}
.mfa-secret {display:block;overflow-wrap:anywhere;margin:12px 0}
.security-devices {display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:20px 0}
.security-devices article {display:grid;gap:6px;padding:16px;border:1px solid var(--line);border-radius:8px;min-width:0}
.security-devices span {font-size:15px;overflow-wrap:anywhere}
.recovery-codes {display:block;width:100%;min-height:350px;margin:20px 0;padding:16px;font-family:monospace;font-size:16px;border:1px solid var(--line);border-radius:6px;resize:vertical;white-space:pre}
@media(max-width:1100px) {body #workspace header.topbar>span:first-child{display:none}}
@media(max-width:720px) {body #workspace header.topbar{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;height:132px;padding-top:8px;padding-bottom:8px;padding-right:12px}body #workspace .working-month{font-size:14px;min-width:0}body #workspace .working-month-controls{width:100%;max-width:300px}body #workspace .working-month select,body #workspace .working-month input{font-size:20px}body #workspace .topbar-right{justify-content:space-between;gap:8px;min-width:0}.session-user{max-width:140px}.login-card{padding:24px}}
@media(max-width:460px) {.session-user{max-width:100px;font-size:12px}body .topbar #logout{font-size:12px;padding:6px}}
@media(max-width:360px) {body #workspace header.topbar{padding-left:76px;padding-right:8px;gap:4px}.session-user{max-width:85px}}
body {
  font-size:18px;
  line-height:1.45;
  --muted:#586961;
  --line:#dce4e0;
  --occupancy-rented:#2563EB;
  --occupancy-rented-bg:#EFF6FF;
  --occupancy-rented-text:#1E40AF;
  --occupancy-free:#16A34A;
  --occupancy-free-bg:#F0FDF4;
  --occupancy-free-text:#166534;
}
body #workspace .topbar {
  position:sticky;
  top:0;
  z-index:5;
  height:88px;
  padding:0 24px 0 84px;
  font-size:14px;
  color:var(--muted);
}
body #workspace .topbar>span:first-child {font-size:14px}
body .topbar .pill,
body .topbar .avatar {font-size:12px;color:#36574b}
body #navigation-toggle {top:10px;left:24px;width:44px;height:44px;box-shadow:none}
body #main {width:100%;min-width:0;padding:24px}
body .page-head {gap:16px;margin-bottom:16px;align-items:flex-start;min-width:0}
body .eyebrow {display:none}
body h1 {font-size:26px;line-height:1.2;letter-spacing:-.4px;margin-bottom:4px}
body h2 {font-size:22px;line-height:1.4}
body h3 {font-size:18px;line-height:1.4}
body .page-head p {font-size:15px;line-height:1.5;color:var(--muted)}
body .button,
body .button.small,
body .lab-group .button,
body .motor-detail .button {min-height:42px;padding:8px 12px;font-size:15px;line-height:1.35;white-space:normal}
body .button.secondary {color:#36574b;border-color:#ccd9d2}
body.dashboard-page .page-head{align-items:center}
body.dashboard-page .page-head p{margin:0}
body.dashboard-page .dashboard-status{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:18px}
body.dashboard-page .dashboard-section{margin:0 0 16px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px #18352d08}
body.dashboard-page .dashboard-section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
body.dashboard-page .dashboard-section-heading h2{margin:0;font-size:22px}
body.dashboard-page .dashboard-section-heading p,body.dashboard-page .dashboard-note{margin:4px 0 0;color:var(--muted);font-size:16px}
body.dashboard-page .dashboard-section-heading>a,body.dashboard-page .dashboard-source a,body.dashboard-page .dashboard-motors a{font-size:18px;color:var(--green);font-weight:600}
body.dashboard-page .dashboard-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
body.dashboard-page .dashboard-kpi{min-width:0;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:#fbfcfc;display:grid;gap:4px}
body.dashboard-page .dashboard-kpi>span,body.dashboard-page .dashboard-capacity-overview>div>span,body.dashboard-page .dashboard-energy-summary>div>span{font-size:18px;color:var(--muted)}
body.dashboard-page .dashboard-kpi>strong{font-size:28px;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
body.dashboard-page .dashboard-kpi>small,body.dashboard-page .dashboard-energy-summary small{font-size:16px;color:var(--muted);line-height:1.45}
body.dashboard-page .dashboard-kpi.dashboard-result{border-color:#b9d8cd;background:#f3faf7}
body.dashboard-page .dashboard-kpi.dashboard-forecast{border-style:dashed}
body.dashboard-page .dashboard-compare{display:grid;gap:10px;margin:18px 0}
body.dashboard-page .dashboard-compare>div{display:grid;grid-template-columns:minmax(180px,1fr) minmax(100px,3fr) minmax(120px,auto);align-items:center;gap:12px;font-size:18px}
body.dashboard-page .dashboard-compare>div>strong,body.dashboard-page .dashboard-category>div>span{font-variant-numeric:tabular-nums;text-align:right}
body.dashboard-page .dashboard-compare i,body.dashboard-page .dashboard-bar{display:block;height:9px;overflow:hidden;border-radius:20px;background:#edf1ef}
body.dashboard-page .dashboard-compare i b,body.dashboard-page .dashboard-bar>span{display:block;height:100%;border-radius:inherit;background:#167466}
body.dashboard-page .dashboard-compare i.cost b{background:#a66b32}
body.dashboard-page .dashboard-detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:22px}
body.dashboard-page .dashboard-detail-grid h3{margin:0 0 8px;font-size:18px}
body.dashboard-page .dashboard-category-list,body.dashboard-page .dashboard-room-list{list-style:none;padding:0;margin:0}
body.dashboard-page .dashboard-category{display:grid;gap:5px;margin:10px 0}
body.dashboard-page .dashboard-category>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:18px}
body.dashboard-page .dashboard-category .dashboard-bar>span{background:#718c84}
body.dashboard-page .dashboard-notice,body.dashboard-page .dashboard-note{padding:9px 11px;border-radius:6px;background:#f5f8f6;font-size:16px;line-height:1.5}
body.dashboard-page .dashboard-notice{margin:6px 0;border-left:3px solid #bb8b37;color:#5a4a2d}
body.dashboard-page .dashboard-capacity-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
body.dashboard-page .dashboard-capacity-overview>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;display:grid;align-content:start;gap:7px}
body.dashboard-page .dashboard-capacity-overview strong{font-size:24px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
body.dashboard-page .dashboard-room-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body.dashboard-page .dashboard-room{padding:12px;border:1px solid var(--line);border-radius:8px}
body.dashboard-page .dashboard-room-title,body.dashboard-page .dashboard-room-values{display:flex;justify-content:space-between;gap:8px;font-size:18px}
body.dashboard-page .dashboard-room-title span,body.dashboard-page .dashboard-room-values{color:var(--muted)}
body.dashboard-page .dashboard-room-values{margin-top:5px;font-size:16px}
body.dashboard-page .dashboard-energy-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
body.dashboard-page .dashboard-energy-summary>div{padding:13px;border:1px solid var(--line);border-radius:8px;display:grid;gap:4px}
body.dashboard-page .dashboard-energy-summary strong{font-size:24px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
body.dashboard-page .dashboard-charge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;border-top:1px solid var(--line)}
body.dashboard-page .dashboard-charge{min-width:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line)}
body.dashboard-page .dashboard-charge>span{display:grid;font-size:18px}
body.dashboard-page .dashboard-charge small{font-size:16px;color:var(--muted);line-height:1.4}
body.dashboard-page .dashboard-charge strong{font-size:18px;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
body.dashboard-page .dashboard-source{margin-top:14px;padding:12px;background:#f6f8f7;border-radius:7px;font-size:16px}
body.dashboard-page .dashboard-source p{margin:0}
body.dashboard-page .dashboard-motors{margin-top:14px}
body.dashboard-page .dashboard-motors>summary{cursor:pointer;font-size:18px;font-weight:600}
body.dashboard-page .dashboard-motors .table-wrap{margin-top:10px}
body.dashboard-page .dashboard-motors table{font-size:18px}
body.dashboard-page .dashboard-motors th,body.dashboard-page .dashboard-motors td{padding:14px 12px}
@media(max-width:900px){body.dashboard-page .dashboard-kpis,body.dashboard-page .dashboard-capacity-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){body.dashboard-page #main{padding:14px}body.dashboard-page .dashboard-section{padding:14px}body.dashboard-page .dashboard-section-heading{display:grid;gap:6px}body.dashboard-page .dashboard-kpis,body.dashboard-page .dashboard-detail-grid,body.dashboard-page .dashboard-room-list,body.dashboard-page .dashboard-energy-summary,body.dashboard-page .dashboard-charge-list{grid-template-columns:1fr}body.dashboard-page .dashboard-capacity-overview{grid-template-columns:repeat(2,minmax(0,1fr))}body.dashboard-page .dashboard-compare>div{grid-template-columns:1fr auto;gap:5px 10px}body.dashboard-page .dashboard-compare i{grid-column:1/-1;grid-row:2}body.dashboard-page .dashboard-status{align-items:flex-start;flex-direction:column}body.dashboard-page .dashboard-room-values{flex-wrap:wrap}}
body #main .stats {gap:12px;margin-bottom:16px}
body.invoicing-active .stats.invoice-stats {grid-template-columns:repeat(3,minmax(0,1fr))}
body #main .stat {padding:12px 16px;border-radius:8px;box-shadow:none;min-width:0}
body .stat-icon {display:none}
body #main .stat-label {font-size:16px;line-height:1.4;margin-bottom:4px;color:var(--muted)}
body #main .stat-value,
body #main .stat-value.money {font-size:28px;line-height:1.2;letter-spacing:-.4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
body #main .stat-note {font-size:15px;line-height:1.4;margin-top:4px;color:var(--muted)}
body .card-body {padding:16px}
body .page-head>.actions {min-width:0}
body .filter-bar {flex-wrap:wrap;align-items:center}
body .filter-bar input,
body .filter-bar select,
body .inline-input {min-height:44px;font-size:16px}
body .filter-bar input {min-width:0}
body .module-filters {display:flex;flex-wrap:wrap;align-items:end;gap:16px}
body .module-filters label {display:grid;gap:6px;flex:1 1 220px;font-size:18px}
body .module-filters input,body .module-filters select,body .user-form input:not([type="checkbox"]),body .user-form select {width:100%;min-width:0;min-height:48px;padding:8px 12px;border:1px solid #9fb7aa;border-radius:6px;background:#fff;color:#1d3a2e;font:inherit;font-size:18px}
body .user-form {display:grid;gap:16px;max-width:640px}
body .user-form label {display:grid;gap:6px;font-size:18px}
body .user-form label.check {display:flex;align-items:center;gap:10px}
body .user-form small {font-size:16px;color:var(--muted)}
body .receivables-summary {display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--line);background:#f5f8f6}
body .receivables-client-total th,body .receivables-client-total td {background:#f5f8f6;border-top:2px solid var(--line);font-size:18px}
body .receivables-client-total .small-text {display:block;margin-top:4px;font-weight:400}
body .icon-button {min-width:44px;min-height:44px}
body .empty {font-size:16px;line-height:1.5}
body .error {font-size:14px}
body .text-link {font-size:16px;line-height:1.5}
body summary {font-size:16px;line-height:1.5}
body .doc-row {font-size:18px;line-height:1.5;flex-wrap:wrap;align-items:flex-start;padding:16px}
body .doc-row>div {min-width:0;flex:1 1 240px;overflow-wrap:anywhere}
body .value-pair {font-size:16px;line-height:1.5;flex-wrap:wrap}
body .value-pair strong {margin-left:auto;max-width:100%;overflow-wrap:anywhere}
body .balance-net-info,
body .balance-flow-notes p,
body .balance-flow-toolbar span,
body .balance-flow-data,
body .balance-results article>small,
body .expense-preview,
body .dashboard-context,
body .dashboard-context p,
body .drawing-guide,
body .plan-intro,
body .plan-meta,
body .lab-motor>div:first-child span,
body .motor-detail .value-pair strong small {font-size:15.5px;line-height:1.5}
body .balance-results article>span,
body .plan-tenants>div,
body .plan-money,
body .list-unit,
body .lab-motor,
body .lab-tariffs summary,
body .operation-details>summary,
body .dashboard-pending summary {font-size:16px;line-height:1.5}
body .balance-results article>strong {font-size:28px;line-height:1.2;overflow-wrap:anywhere}
body .expense-preview strong,
body .camera-title {font-size:20px;line-height:1.4}
body .plan-tenants strong,
body .plan-money strong {font-size:18px;line-height:1.4}
body .list-unit strong,
body .lab-motor strong {font-size:17px}
body .plan-unit,
body .plan-camera>footer {font-size:14px;line-height:1.5;color:var(--muted)}
body .schedule-row label {font-size:15px;line-height:1.4}
body .schedule-row button {min-width:44px;min-height:44px}
body .inspector-title small {font-size:13px;letter-spacing:1px}
body .camera-finance {grid-template-columns:repeat(2,minmax(0,1fr))}
body .camera-finance span {font-size:15px;line-height:1.4}
body .camera-finance strong {font-size:20px;overflow-wrap:anywhere}
body.invoicing-active .invoice-toolbar {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px;
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
body.invoicing-active .invoice-toolbar>label {display:grid;grid-template-columns:auto 210px;gap:12px;align-items:center;font-size:18px;font-weight:600}
body.invoicing-active .invoice-toolbar small {display:block;margin-top:4px;font-size:15px;font-weight:400;color:var(--muted)}
body.invoicing-active .invoice-reports {padding:0;border-bottom:1px solid var(--line)}
body.invoicing-active .invoice-report-title {min-height:48px;padding:10px 0;font-size:18px;width:fit-content;cursor:pointer}
body.invoicing-active .invoice-report-title span {margin-left:8px;font-size:15px;color:var(--muted)}
body.invoicing-active .invoice-reports>.actions {padding-bottom:12px}
body.invoicing-active .invoice-reports .button {font-size:17px;min-height:48px}
body.invoicing-active .invoice-help {margin:8px 0 16px;font-size:16px;color:#36574b}
body.invoicing-active .invoice-help summary {width:fit-content;cursor:pointer}
body.invoicing-active .invoice-help[open]>div {margin-top:8px;padding:8px 16px;background:#eef3f0;border:1px solid var(--line);border-radius:8px;color:#41594e;line-height:1.6}
body.invoicing-active .invoice-help p {margin:8px 0}
body .card {min-width:0;margin-bottom:24px;border-radius:8px;box-shadow:none}
body .card-header {padding:12px 16px;gap:12px;flex-wrap:wrap}
body .card-header h2 {min-width:0;font-size:22px;line-height:1.4}
body .card-header p {font-size:16px;line-height:1.5;color:var(--muted)}
body.invoicing-active .invoice-workbench>.card-header {flex-wrap:nowrap;padding-top:8px;padding-bottom:8px}
body.invoicing-active .invoice-workbench>.card-header .button {flex-shrink:0;min-height:46px;font-size:16px}
body.invoicing-active .invoice-filters {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  align-items:end;
  margin:0;
  padding:12px 16px;
  border-bottom:1px solid var(--line);
}
body.invoicing-active .invoice-filters label {display:grid;gap:4px;min-width:0;font-size:16px;font-weight:600;line-height:1.4;color:#2f4d41}
body.invoicing-active .invoice-filters input,
body.invoicing-active .invoice-filters select,
body.invoicing-active #invoicing-period,
body.invoicing-active .collection-filters select {
  width:100%;
  min-width:0;
  height:52px;
  padding:8px 12px;
  border:1px solid #9fb7aa;
  border-radius:6px;
  background:#fff;
  color:#1d3a2e;
  font-size:18px;
  line-height:1.4;
}
body input::placeholder {color:#66776e;opacity:1}
body :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible {outline:3px solid var(--green);outline-offset:2px}
body.invoicing-active #invoicing-table {min-width:0}
body.invoicing-active .invoice-result-count {padding:8px 16px;font-size:16px;line-height:1.4;color:var(--muted);background:#fafcfb}
body.invoicing-active .invoice-workbench .invoice-result-count {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 16px}
body.invoicing-active .invoice-result-count .button {min-height:46px;font-size:16px}
body.invoicing-active .invoice-table-scroll {width:100%;max-width:100%;max-height:min(76vh,1000px);overflow:auto;overscroll-behavior:contain;scroll-padding:12px 360px 12px 12px}
body.invoicing-active .invoice-table-scroll:focus-visible {outline-offset:-3px}
body table {font-size:18px;line-height:1.45}
body th {padding:14px 12px;background:#e9f1ec;color:#2d4a3c;font-size:16px;font-weight:700;letter-spacing:0;white-space:normal}
body td {padding:16px 12px;line-height:1.5;overflow-wrap:anywhere}
body.invoicing-active .invoicing-grid {border-collapse:separate;border-spacing:0}
body.invoicing-active .invoicing-grid th {position:sticky;top:0;z-index:2;padding:14px 24px 14px 12px;background:#e9f1ec;color:#2d4a3c;font-size:16px;font-weight:700;letter-spacing:0;white-space:normal}
body.invoicing-active .invoicing-grid td {padding:16px 12px;font-size:18px;line-height:1.5;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}
body.invoicing-active .invoicing-grid td:first-child>strong {display:block}
body.invoicing-active .invoicing-grid td.numeric {white-space:nowrap;font-variant-numeric:tabular-nums}
body.invoicing-active .invoicing-grid td:nth-child(2),
body.invoicing-active .invoicing-grid time {font-variant-numeric:tabular-nums}
body.invoicing-active .invoicing-grid time {display:block}
body.invoicing-active .invoicing-grid th:last-child {right:0;z-index:4}
body.invoicing-active .invoicing-grid td:last-child {position:sticky;right:0;z-index:1;background:#fff;box-shadow:-1px 0 0 var(--line)}
body.invoicing-active .invoicing-grid tr:hover td {background:#f7faf8}
body.invoicing-active .invoicing-grid td:nth-child(2) {overflow-wrap:normal}
body.invoicing-active .invoicing-grid td:nth-child(2) .invoice-copy-cell>span {white-space:nowrap}
body.invoicing-active .invoicing-grid td:last-child .actions {gap:4px}
body.invoicing-active .invoicing-grid .billing-state {margin-top:8px}
body.invoicing-active .row-actions:first-child {margin-top:0}
body.invoicing-active .row-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
body.invoicing-active .row-actions:empty {display:none}
body.invoicing-active .row-actions-rental {margin-top:10px;padding-top:10px;border-top:1px dashed #c9d7cf}
body.invoicing-active .row-note {grid-column:1/-1}
body.invoicing-active .row-action {display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:8px 10px;border:2px solid #9fb7aa;border-radius:8px;background:#fff;color:#1d3a2e;font-size:17px;font-weight:600;line-height:1.25;text-align:center;white-space:normal}
body.invoicing-active .row-action:hover {background:#e7f2ec;border-color:var(--green)}
body.invoicing-active .row-action.primary {background:var(--green);border-color:var(--green);color:#fff}
body.invoicing-active .row-action.primary:hover {background:#0f5a4f;border-color:#0f5a4f}
body.invoicing-active .row-action.danger {border-color:#c2564a;color:#8a2a20;background:#fff7f5}
body.invoicing-active .row-action.danger:hover {background:#fbe1dc}
body.invoicing-active .row-action.quiet {min-height:46px;border-width:1px;border-color:#c9d7cf;background:#f6f9f7;color:#365648;font-weight:500}
body.invoicing-active .row-action.quiet:hover {background:#e7f2ec}
body.invoicing-active .invoice-more {margin-top:10px;font-size:17px}
body.invoicing-active .invoice-more summary {width:fit-content;min-height:46px;display:flex;align-items:center;cursor:pointer;color:var(--green);font-weight:600}
body.invoicing-active .invoice-more .row-actions {margin-top:4px}
body.invoicing-active .invoice-month-summary {padding:10px 16px;font-size:18px;color:#3f564b}
body.invoicing-active .invoice-collection-summary {display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);color:#3f564b}
body.invoicing-active .invoice-collection-summary>div {display:grid;gap:2px;padding:10px 16px;border:1px solid var(--line);border-left:5px solid #9fb7aa;border-radius:8px;background:#fafcfb}
body.invoicing-active .invoice-collection-summary .cs-label {font-size:17px;font-weight:600;line-height:1.3}
body.invoicing-active .invoice-collection-summary .cs-value {font-size:28px;font-weight:700;line-height:1.25;letter-spacing:-.3px;color:#1d3a2e;font-variant-numeric:tabular-nums}
body.invoicing-active .invoice-collection-summary .cs-note {font-size:15px;color:var(--muted)}
body.invoicing-active .invoice-collection-summary .paid {border-left-color:#1c8b6c}
body.invoicing-active .invoice-collection-summary .paid .cs-value {color:#0f5a46}
body.invoicing-active .invoice-collection-summary .pending {border-left-color:#d49a1f}
body.invoicing-active .invoice-collection-summary .pending .cs-value {color:#7a520b}
body.invoicing-active .invoice-collection-summary .overdue {border-left-color:#b3382c}
body.invoicing-active .invoice-collection-summary .overdue .cs-value {color:#8a2a20}
body .table-button {min-height:46px;padding:6px 10px;border:1px solid transparent;border-radius:6px;font-size:17px;line-height:1.35}
body .table-button:hover {background:#eaf4ef;border-color:#d1e1d7;text-decoration:none}
body.invoicing-active .invoice-copy {width:42px;height:42px;border-color:#9fb7aa}
body.invoicing-active .invoice-copy-cell>span {line-height:1.5}
body .small-text {font-size:15.5px;line-height:1.5}
body .tag {min-height:30px;padding:3px 10px;font-size:15px;font-weight:600;line-height:1.3}
body.invoicing-active .tag.billing-paid {background:#d8efe2;color:#0f4a34;border:1px solid #a9d3bc}
body .tag.occupied,body .tag.rented {background:var(--occupancy-rented-bg);color:var(--occupancy-rented-text);border:1px solid var(--occupancy-rented)}
body .tag.free,body .tag.vacant {background:var(--occupancy-free-bg);color:var(--occupancy-free-text);border:1px solid var(--occupancy-free)}
body .tag.success {background:#f5f8f6;color:#476157;border:1px solid #d4dfd9}
body .tag.neutral {background:#edf1f4;color:#4c5c68}
body .tag.warning {background:#fff2d5;color:#79520e}
body.invoicing-active #collections-section {margin-top:24px;scroll-margin-top:80px}
body.invoicing-active .collection-filters {flex-wrap:wrap;align-items:center;padding:12px 16px}
body.invoicing-active .collection-filters label {display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}
body.invoicing-active .collection-filters select {width:auto}
body.invoicing-active #collection-table table {min-width:1040px}
body.invoicing-active .invoice-history summary {padding:16px;font-size:16px;font-weight:600;cursor:pointer}
body.invoicing-active .invoice-history summary span {margin-left:8px;font-size:13px;font-weight:400;color:var(--muted)}
body.invoicing-active .invoice-history>p {margin:0;padding:0 16px 12px;font-size:13px;color:var(--muted)}
body.invoicing-active .invoice-history table {min-width:920px}
body #modal {font-size:16px}
body #modal h2 {font-size:22px}
body .field {font-size:15px}
body .field small,
body .info-box {font-size:13px;line-height:1.55;color:#41594e}
body .field input:not([type=checkbox]),
body .field select:not([multiple]) {min-height:44px;font-size:16px}
.date-input-wrap {position:relative;display:flex;align-items:center}
.date-input-wrap>input[data-date-input] {width:100%;padding-right:42px}
.date-picker-native {position:absolute;right:8px;width:28px;height:28px;opacity:0;pointer-events:none}
.date-picker-button {position:absolute;right:6px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:5px;background:transparent;color:#36574b}
.date-picker-button:hover {background:var(--light);color:var(--green)}
.date-picker-button svg {fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body .field textarea,
body .field select[multiple] {font-size:16px}
body .warning-box {font-size:14px;line-height:1.5}
body #notice {max-width:calc(100vw - 32px);font-size:14px}
body footer {font-size:12px;color:var(--muted)}
.sr-only {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body.invoicing-active .invoice-sort {display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:32px;padding:4px 6px;margin:-4px -6px;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit;font-weight:600;text-align:left;line-height:1.3}
body.invoicing-active th.numeric .invoice-sort {margin-left:auto;text-align:right}
body.invoicing-active .invoice-sort:hover {background:#e3ede7;border-color:#c9d9cf}
body.invoicing-active .invoice-sort .sort-mark {flex-shrink:0;font-size:12px;color:#6a7d73}
body.invoicing-active .invoice-sort.active {color:var(--dark)}
body.invoicing-active .invoice-sort.active .sort-mark {color:var(--green)}
body.invoicing-active .billing-control .card-header {padding-bottom:8px}
body.invoicing-active .billing-chips {display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px 12px;border-bottom:1px solid var(--line)}
body.invoicing-active .billing-chip {position:relative;display:inline-flex;align-items:center;gap:8px;min-height:50px;padding:6px 16px;border:1px solid #9fb7aa;border-radius:8px;background:#fff;color:#2f4d41;font-size:18px;font-weight:600}
body.invoicing-active .billing-chip strong {min-width:28px;padding:1px 9px;border-radius:10px;background:#eef3f0;font-size:17px;text-align:center;font-variant-numeric:tabular-nums}
body.invoicing-active .billing-chip:hover {background:#f1f6f3}
body.invoicing-active .billing-chip[aria-pressed="true"] {background:var(--dark);border-color:var(--dark);color:#fff}
body.invoicing-active .billing-chip[aria-pressed="true"] strong {background:#ffffff26;color:#fff}
body.invoicing-active .billing-chip.billing-overdue strong {background:#fde5e1;color:#8a2a20}
body.invoicing-active .billing-chip.billing-today strong {background:#ffe9b8;color:#6d4a05}
body.invoicing-active .billing-chip[aria-pressed="true"].billing-overdue strong,
body.invoicing-active .billing-chip[aria-pressed="true"].billing-today strong {background:#fff;color:var(--dark)}
body.invoicing-active .billing-control-scroll {max-height:min(52vh,460px);overflow:auto;overscroll-behavior:contain}
body.invoicing-active .billing-control-scroll:focus-visible {outline-offset:-3px}
body.invoicing-active .billing-grid {min-width:880px;font-size:14.5px}
body.invoicing-active .billing-grid th {position:sticky;top:0;z-index:2;padding:10px 12px;background:#f1f5f2;color:#405a4c;font-size:13px;font-weight:600;letter-spacing:0;white-space:nowrap}
body.invoicing-active .billing-grid td {padding:10px 12px;font-size:14.5px;line-height:1.45;vertical-align:top}
body.invoicing-active .billing-grid th.numeric,
body.invoicing-active .billing-grid td.numeric {text-align:right;font-variant-numeric:tabular-nums}
body.invoicing-active .billing-grid .billing-group-row th {position:sticky;top:41px;z-index:1;padding:8px 12px;border-top:1px solid var(--line);background:#e9f0ec;color:#243f33;font-size:14px;text-align:left}
body.invoicing-active .billing-group-row th span {margin-left:8px;font-weight:400;color:#41594e}
body.invoicing-active .billing-group-row.overdue th {background:#fbe9e6;color:#6e1f17;border-left:4px solid #b3382c}
body.invoicing-active .billing-group-row.today th {background:#fff1cf;color:#5a3d04;border-left:4px solid #c68a10}
body.invoicing-active .billing-group-row.issued th {border-left:4px solid var(--green)}
body.invoicing-active .billing-group-row.credited th {background:#ece9f4;color:#3f3764;border-left:4px solid #6a5ca8}
body.invoicing-active .billing-state {display:flex;flex-wrap:wrap;gap:4px 6px;align-items:flex-start}
body.invoicing-active .billing-state .small-text {flex-basis:100%;margin:0}
body.invoicing-active .invoice-dates .invoice-billing-date {display:block;font-size:18px;font-weight:700;line-height:1.4;color:var(--dark)}
body.invoicing-active .invoice-dates .invoice-due-date {display:block;margin-top:4px;font-size:14px;font-weight:400;line-height:1.5;color:var(--muted)}
body.invoicing-active .tag.billing-overdue {background:#fbe9e6;color:#8a2a20;border:1px solid #efc2bb}
body.invoicing-active .tag.billing-today {background:#fff1cf;color:#6d4a05;border:1px solid #efd58f}
body.invoicing-active .tag.billing-upcoming {background:#eef1f5;color:#44525d;border:1px solid #d4dbe2}
body.invoicing-active .tag.billing-undefined {background:#f5f5f5;color:#51575c;border:1px solid #d6d9db}
body.invoicing-active .tag.billing-issued {background:#dfede7;color:#174c3b;border:1px solid #bdd8cb}
body.invoicing-active .tag.billing-credited {background:#ece9f4;color:#3f3764;border:1px solid #cdc7e2}
body.invoicing-active .billing-issue {min-height:40px;font-size:14px;white-space:nowrap}
body.invoicing-active .credited-row td {background:#faf9fc}
body.invoicing-active .credited-row s {color:#6c6a78}
.billing-alert {display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin:0 0 16px;padding:12px 16px;border:1px solid #cfdad4;border-left:4px solid var(--green);border-radius:8px;background:#fff;color:#243f33;font-size:15px;text-decoration:none}
.billing-alert.urgent {border-left-color:#b3382c;background:#fff8f6}
.billing-alert:hover {background:#f4f8f6}
.billing-alert.urgent:hover {background:#fff1ee}
.billing-alert:focus-visible {outline:3px solid var(--green);outline-offset:2px}
.billing-alert-count {font-size:14px;color:#41594e}
.billing-alert-count b {font-size:17px;font-variant-numeric:tabular-nums;color:#243f33}
.billing-alert-count.overdue b {color:#8a2a20}
.billing-alert-count.today b {color:#6d4a05}
.billing-alert-go {margin-left:auto;font-size:14px;font-weight:600;color:var(--green)}
@media(max-width:1100px) {
  body .stats {grid-template-columns:repeat(2,minmax(0,1fr))}
  body.invoicing-active .invoice-filters {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px) {
  body.invoicing-active .stats.invoice-stats {grid-template-columns:1fr}
  body #main {padding:16px}
  body #workspace .topbar {padding-right:16px;padding-left:72px}
  body #workspace .topbar>span:first-child {font-size:13px}
  body #navigation-toggle {left:16px}
  body .page-head {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  body h1 {font-size:24px}
  body #main .stats {gap:8px}
  body #main .stat {padding:8px 12px}
  body #main .stat-value,
  body #main .stat-value.money {font-size:22px}
  body .balance-results article>strong {font-size:24px}
  body .camera-finance strong {font-size:18px}
  body.invoicing-active .invoice-toolbar {padding:12px}
  body.invoicing-active .invoice-toolbar>label {grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:8px;flex:1 1 100%;min-width:0}
  body.invoicing-active .invoice-toolbar>.actions {display:grid;grid-template-columns:1fr 1fr;flex:1 1 100%}
  body.invoicing-active .invoice-reports>.actions {flex:1 1 100%}
  body.invoicing-active .billing-chips {flex-wrap:nowrap;overflow-x:auto;padding-right:12px;padding-left:12px;scrollbar-width:thin}
  body.invoicing-active .billing-chip {flex:0 0 auto}
  body.invoicing-active .billing-control-scroll {max-height:60vh}
  body.invoicing-active .invoice-reports .button {flex:1 1 140px}
  body.invoicing-active .invoice-filters {gap:12px 8px;padding:12px}
  body.invoicing-active .invoice-workbench>.card-header {padding:12px}
  body.invoicing-active .invoice-table-scroll {max-height:74vh;scroll-padding-right:360px}
  body.invoicing-active .table-button {min-height:46px}
}
@media(max-width:620px){body.dashboard-page .page-head{grid-template-columns:minmax(0,1fr)}}
.collection-filters{padding:16px 20px;margin:0}
#collections-section{scroll-margin-top:20px}
html{scrollbar-gutter:stable}
body.navigation-open{overflow:hidden}
#workspace{margin-left:0;width:100%;min-width:0}
#workspace main{max-width:none}
#workspace .topbar{padding-left:82px}
#workspace .topbar>span:first-child{min-width:0}
#navigation-toggle{position:fixed;left:16px;top:16px;z-index:6;display:grid;place-items:center;width:44px;height:44px;padding:8px;border:1px solid #42665d;border-radius:10px;background:var(--dark);color:#fff;box-shadow:0 4px 16px #143d3830}
#navigation-toggle svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
#navigation-toggle:hover{background:#28594f}
#navigation.sidebar{position:fixed;inset:12px auto 12px 12px;margin:0;width:340px;max-width:calc(100vw - 24px);height:calc(100vh - 24px);height:calc(100dvh - 24px);max-height:none;padding:20px;border:1px solid #42665d;border-radius:14px;overflow-y:auto;overscroll-behavior:contain;box-shadow:8px 0 40px #112e3040}
#navigation.sidebar:not([open]){display:none}
#navigation.sidebar[open]{display:flex;flex-direction:column}
#navigation::backdrop{background:#143d3860;backdrop-filter:blur(2px)}
#navigation .sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;background:var(--dark);padding-bottom:16px;flex-shrink:0}
#navigation .brand{margin:0;font-size:26px;gap:12px}
#navigation .brand-mark{font-size:34px}
#navigation .brand small{font-size:12px;letter-spacing:1.5px}
#navigation-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid #648279;border-radius:7px;background:transparent;color:#fff;font-size:25px;line-height:1}
#navigation-close:hover{background:#2b5b4f}
#navigation .nav-caption{display:block;flex-shrink:0;font-size:13px;line-height:1.4;letter-spacing:1.2px;color:#b5cfc4}
#navigation nav{display:grid;overflow:visible;gap:8px;flex-shrink:0}
#navigation nav a{padding:12px 14px;min-height:52px;font-size:18px;line-height:1.4;white-space:normal}
#navigation nav a>span{display:block}
#navigation .sidebar-bottom{display:block;flex-shrink:0;font-size:16px;line-height:1.5;padding:20px 10px 0}
#navigation .sidebar-bottom small{font-size:14px;line-height:1.5;color:#b5cfc4;margin:8px 0 12px}
#navigation .backup-link{display:inline-flex;align-items:center;min-height:44px;font-size:16px;line-height:1.4}
@media(max-width:760px){#navigation-toggle{top:7px;left:12px;width:40px;height:40px}#workspace .topbar{padding-left:66px;gap:10px}#workspace .topbar>span:first-child{font-size:11px}#workspace .topbar .muted{padding:0 5px}}
.balance-results.gross-balance-result{grid-template-columns:1fr}
.balance-net-info{padding:16px 22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.balance-net-info summary{cursor:pointer;font-weight:600}
.balance-flow-notes{padding:16px 22px;background:#f7fafb;border-bottom:1px solid var(--line)}
.balance-flow-notes p{margin:0;font-size:12px;color:#617584}
.balance-flow-notes .warning-box{margin-bottom:12px}
.balance-flow-viewport{overflow:auto;max-height:800px;background:#f7fafb;overscroll-behavior:contain}
.balance-flow-svg{display:block;width:100%;height:auto;max-height:none}
.balance-flow-viewport.is-readable .balance-flow-svg{min-width:1150px}
.balance-flow-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 22px;border-bottom:1px solid var(--line)}
.balance-flow-toolbar span{font-size:11px;color:var(--muted)}
.balance-flow-data{padding:16px 22px;border-top:1px solid var(--line);font-size:12px}
.balance-flow-data summary{cursor:pointer;color:var(--green);font-weight:600}
.balance-flow-tables{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}
.balance-flow-tables section{min-width:0}
@media(max-width:900px){.balance-flow-tables{grid-template-columns:1fr}}
.invoice-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:22px}
.invoice-filters label{display:grid;gap:6px;flex:1 1 170px;font-size:11px;color:var(--muted);min-width:0}
.invoice-filters input,.invoice-filters select{width:100%;min-width:0}
.invoice-result-count{padding:10px 16px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}
.invoicing-grid{table-layout:fixed;max-width:none}
.invoicing-grid th,.invoicing-grid td{padding:12px;white-space:normal;overflow-wrap:anywhere}
.invoicing-grid th{position:relative;padding-right:22px;border-right:1px solid var(--line)}
.invoicing-grid td.numeric{white-space:normal}
.invoicing-grid td>.tag{margin-top:6px}
.invoice-copy-cell{display:flex;gap:8px;align-items:flex-start}
.invoice-copy-cell>span{flex:1;min-width:0;line-height:1.6}
.invoice-copy{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;padding:5px;border:1px solid #d8e3dd;border-radius:5px;background:#fff;color:var(--green)}
.invoice-copy:hover{background:var(--light)}
.invoice-copy svg{fill:none;stroke:currentColor;stroke-width:1.6}
.invoice-column-resizer{position:absolute;right:0;top:0;bottom:0;width:12px;cursor:col-resize;touch-action:none;user-select:none}
.invoice-column-resizer:after{content:"";position:absolute;right:4px;top:25%;height:50%;width:3px;border-radius:2px;background:#c1d6ce}
.invoice-column-resizer:hover:after,.invoice-column-resizer:focus:after{background:var(--green)}
.invoice-column-resizer:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.resizing-invoice-column,.resizing-invoice-column *{cursor:col-resize!important;user-select:none!important}
.balance-results{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}
.balance-results article{background:#eef6f2;border:1px solid #d4e6dc;border-radius:10px;padding:22px;display:grid;gap:10px;color:#315f49}
.balance-results article>span{font-size:13px;font-weight:600}
.balance-results article>strong{font-size:32px;letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.balance-results article>small{font-size:11px;line-height:1.6;color:#7d9385}
.balance-results article.negative{background:#fff4f2;border-color:#edccc8;color:#aa463c}
.expense-preview{display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;background:#f0f7f3;border:1px solid #dcebe1;border-radius:7px;padding:15px;margin:2px 0 22px;font-size:12px;line-height:1.6;color:#517660}
.expense-preview strong{display:block;color:#275c41;font-size:17px}
.expense-preview.negative{background:#fff4f2;color:#ab483d;border-color:#ebcec9}
.field input:disabled{background:#f1f4f2;color:#9ca9a1}
@media(max-width:760px){.balance-results{grid-template-columns:1fr}.balance-results article>strong{font-size:28px}.expense-preview{gap:12px}}
.drawing-guide{padding:14px 22px;border-bottom:1px solid #dce4ec;background:#f5f8fb;color:#53697d;font-size:12px;line-height:1.7}
.drawing-guide strong{display:block;font-size:10px;font-weight:500;color:#8b98a5}
.diagram-motors{display:grid;gap:3px;max-height:92px;overflow:auto;scrollbar-width:thin;flex-shrink:0}
.diagram-motor{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;font-size:10px;line-height:1.4;color:#64798b;padding-top:3px;border-top:1px solid #e4eaf0}
.diagram-motor strong{font-weight:600;color:#355b76;white-space:nowrap}
.diagram-motor-name{min-width:0;overflow-wrap:anywhere}
.diagram-motor-name b{font-size:10px;color:#365b76}
.tile-net-total{display:flex;justify-content:space-between;gap:6px;font-size:10px;color:#637a8a;flex-shrink:0}
.tile-net-total strong{color:#294a60;white-space:nowrap}
.camera-tile.narrow .diagram-motors{max-height:90px}
.camera-tile.narrow .diagram-motor{grid-template-columns:minmax(0,1fr);gap:1px;font-size:9px}
.camera-tile.narrow .motor-full-name{display:none}
.camera-tile.narrow .tile-net-total{display:grid;gap:2px;font-size:9px}
.architectural-map .camera-tile.compact{display:grid;grid-template-columns:57px minmax(0,1fr);grid-template-rows:minmax(20px,1fr) auto auto auto;gap:1px 8px;padding:2px 4px}
.architectural-map .camera-tile.compact .tile-heading{grid-column:1;grid-row:1/-1;display:flex;flex-direction:column;justify-content:center;position:relative;gap:4px;min-height:0}
.architectural-map .camera-tile.compact .tile-number{font-size:26px}
.architectural-map .camera-tile.compact .tile-capacity{font-size:9px;text-align:center;flex:0}
.architectural-map .camera-tile.compact .rental-light{position:absolute;right:0;top:0;width:6px;height:6px;margin:0;box-shadow:none}
.architectural-map .camera-tile.compact .tile-tenants{grid-column:2;min-height:0}
.architectural-map .camera-tile.compact .tile-tenant{grid-template-columns:minmax(0,1fr) auto;gap:0;min-height:0;padding:0}
.architectural-map .camera-tile.compact .tile-client{grid-column:1/-1;font-size:11px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.architectural-map .camera-tile.compact .tile-rent{font-size:10px;line-height:1.2;text-align:left}
.architectural-map .camera-tile.compact .tile-date{font-size:9px;line-height:1.2}
.architectural-map .camera-tile.compact .diagram-motors{grid-column:2;max-height:25px;gap:0}
.architectural-map .camera-tile.compact .diagram-motor{grid-template-columns:20px minmax(0,1fr) auto;font-size:9px;padding-top:1px;line-height:1.25}
.architectural-map .camera-tile.compact .motor-full-name{display:none}
.architectural-map .camera-tile.compact .tile-net-total{grid-column:2;font-size:9px;line-height:1.1}
.architectural-map .camera-tile.compact .tile-financials{grid-column:2;padding-top:1px;gap:8px}
.architectural-map .camera-tile.compact .tile-energy,.architectural-map .camera-tile.compact .tile-margin{font-size:9px;line-height:1.1}
.dashboard-map .map-container.architectural-map{background:#e8edf2;background-image:none;padding:26px;min-height:700px;height:calc(100vh - 310px)}
.map-container.architectural-map:not(.is-editing) svg{touch-action:pan-x pan-y}
.drawing-paper{fill:#fff;stroke:#d5dde5;stroke-width:1}
.drawing-grid{stroke:none;pointer-events:none}
.drawing-title{font:600 20px "Segoe UI",Arial,sans-serif;letter-spacing:3px;fill:#34485b}
.drawing-subtitle{font:11px "Segoe UI",Arial,sans-serif;letter-spacing:1px;fill:#8b98a4}
.drawing-stamp{fill:#708293;font:11px "Segoe UI",Arial,sans-serif;letter-spacing:.8px;pointer-events:none}
.drawing-stamp path{fill:none;stroke:#b8c4cf;stroke-width:1}
.dashboard-map .architectural-map .map-zone>.room-shell{fill:#fbfcfd;stroke:#364d60;stroke-width:4;rx:0;filter:none}
.dashboard-map .architectural-map .map-zone>.room-inner{fill:none;stroke:#aebdc9;stroke-width:.8;rx:0;filter:none;pointer-events:none}
.dashboard-map .architectural-map .map-zone.corridor>.room-shell{fill:#f0f4f7;stroke:#b6c4cf;stroke-width:1;stroke-dasharray:7 5}
.dashboard-map .architectural-map .map-zone.service>.room-shell{fill:#f2f4f6;stroke:#8394a3;stroke-width:2}
.dashboard-map .architectural-map .map-zone.selected>.room-shell{fill:#edf5ff;stroke:#287ec1;stroke-width:4}
.architectural-map .architecture-labels{pointer-events:none}
.architectural-map .arch-number{font-weight:650;fill:#2b4459;letter-spacing:.5px}
.architectural-map .arch-note{font-weight:400;fill:#718293}
.architectural-map .arch-service{font-size:16px;font-weight:500;fill:#7b8c9b;letter-spacing:.7px;pointer-events:none}
.arch-occupancy{fill:#a6b5ad;stroke:#fff;stroke-width:2;pointer-events:none}
.arch-occupancy.rented{fill:var(--occupancy-rented)}
.arch-occupancy.vacant{fill:var(--occupancy-free)}
.architectural-map .room-dimensions{pointer-events:none}
.architectural-map .room-dimensions path{fill:none;stroke:#4b91c8;stroke-width:1}
.architectural-map .room-dimensions text{fill:#377cac;font-size:12px;font-weight:500}
.architectural-map .resize-hit{fill:transparent;stroke:none;pointer-events:all}
.architectural-map .resize-grip{fill:#fff;stroke:#287ec1;stroke-width:1.5;pointer-events:none;rx:1}
.resize-control.nw,.resize-control.se{cursor:nwse-resize}
.resize-control.ne,.resize-control.sw{cursor:nesw-resize}
.resize-control.n,.resize-control.s{cursor:ns-resize}
.resize-control.e,.resize-control.w{cursor:ew-resize}
.resize-hit:focus-visible{outline:none;stroke:#287ec1;stroke-width:1;stroke-dasharray:3 2}
@media(max-width:760px){.dashboard-map .map-container.architectural-map{padding:10px;min-height:600px}.drawing-guide{padding:12px;font-size:11px}}
.rental-light{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0;vertical-align:middle;margin:0 4px;background:#a6b5ad}
.rental-light.rented{background:var(--occupancy-rented);box-shadow:0 0 0 4px var(--occupancy-rented-bg)}
.rental-light.vacant{background:var(--occupancy-free);box-shadow:0 0 0 4px var(--occupancy-free-bg)}
.occupancy-unit[data-occupancy=rented]{--unit-occupancy-color:var(--occupancy-rented);--unit-occupancy-bg:var(--occupancy-rented-bg)}
.occupancy-unit[data-occupancy=free]{--unit-occupancy-color:var(--occupancy-free);--unit-occupancy-bg:var(--occupancy-free-bg)}
body .occupancy-unit{border-left:3px solid var(--unit-occupancy-color);padding-left:8px;background:var(--unit-occupancy-bg)}
.occupancy-unit>.tag{justify-self:start;width:fit-content}
.plan-intro{margin:0;padding:15px 23px;font-size:12px;color:#718879;background:#f9fbfd;border-bottom:1px solid #e5edf2}
.readable-plan{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;padding:24px;background:#f2f6fa}
.plan-camera{background:#fff;border:1px solid #dce6ef;border-top:4px solid #a6b5ad;border-radius:12px;box-shadow:0 4px 15px #344e6610;display:flex;flex-direction:column;overflow:hidden}
.plan-camera.rented{border-top-color:var(--occupancy-rented)}
.plan-camera.vacant{border-top-color:var(--occupancy-free)}
.plan-camera>header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;gap:10px;background:#fbfdff}
.camera-title{font-weight:700;font-size:17px;text-align:left;line-height:1.4;border:0;background:transparent;color:#243d54;padding:0}
.camera-title:hover{text-decoration:underline}
.plan-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:0 20px 13px;font-size:11px;color:#7b8b99}
.plan-tenants{padding:0 20px;flex:1}
.plan-tenants>div{padding:12px 0;border-top:1px solid #edf1f5;display:grid;gap:5px;font-size:12px;color:#63778a}
.plan-tenants strong{font-size:14px;line-height:1.4;color:#30485e;overflow-wrap:anywhere}
.plan-unit{font-size:10px;color:#8a9aab}
.plan-money{background:#f7fafd;padding:15px 20px;display:grid;gap:9px;margin-top:10px;font-size:12px}
.plan-money>div{display:flex;justify-content:space-between;align-items:center;gap:12px}
.plan-money>div:last-child{border-top:1px solid #e0e8f0;padding-top:10px;font-weight:600}
.plan-money strong{font-size:15px;font-variant-numeric:tabular-nums}
.plan-camera>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 20px;border:0;font-size:10px;color:#8a9aaa}
.negative{color:#b44149}
.list-unit{display:grid;gap:4px;margin:5px 0 10px;font-size:11px;line-height:1.5}
.list-unit strong{font-size:12px}
.list-unit span{color:#7c8c97}
#camera-lists .card-header{background:#f7fafc}
#camera-lists td{vertical-align:top}
.lab-top{display:flex;gap:24px;align-items:center;margin:20px 0}
.lab-top .field{min-width:190px;margin-bottom:0}
.lab-tariffs{background:#f5f8fb;border:1px solid #e0e8ef;border-radius:8px;margin-bottom:18px}
.lab-tariffs summary,.operation-details>summary{padding:18px 22px;cursor:pointer;font-size:13px;color:#3c5970}
.lab-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px;padding:10px 22px}
.lab-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.lab-group{border:1px solid #e1e8ee;border-radius:9px;overflow:hidden}
.lab-group header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 16px;background:#f4f8fb}
.lab-group h3{margin:0;line-height:1.5}
.lab-group .button{font-size:10px;padding:7px 9px}
.lab-motor{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:15px 16px;border-top:1px solid #e8edf1;font-size:11px;line-height:1.65}
.lab-motor strong{font-size:12px}
.lab-motor>div:first-child{display:grid;gap:5px}
.lab-motor>div:first-child span{color:#8999a5;font-size:10px}
.lab-comparison{border:1px solid #d9e7f1;background:#fbfdff;border-radius:9px;padding:20px}
.lab-comparison .stat-value{font-size:23px}
.operation-details{margin-top:25px}
.operation-details>summary{background:#f5f8fa}
.operation-details>.card{margin:16px}
@media(max-width:1150px){.lab-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-groups{grid-template-columns:1fr}}
@media(max-width:760px){.readable-plan{padding:14px;gap:15px;grid-template-columns:minmax(0,1fr)}.lab-fields{grid-template-columns:1fr}.lab-top{display:block}.lab-motor{grid-template-columns:minmax(0,1fr);gap:7px}.lab-group header{flex-wrap:wrap}.lab-comparison{padding:12px}.plan-camera>footer{display:flex}}
body.dashboard-active main{max-width:none;padding:24px}
body.dashboard-active .layout-grid.operational-layout{display:block}
body.dashboard-active .dashboard-stats{gap:12px;margin-bottom:16px}
body.dashboard-active .dashboard-stats .stat{padding:14px 18px}
body.dashboard-active .dashboard-stats .stat-value{font-size:25px}
body.dashboard-active .dashboard-stats .stat-note{margin-top:5px}
body.dashboard-active .dashboard-stats .stat-label{margin-bottom:7px}
.dashboard-context{display:flex;gap:24px;align-items:center;margin-bottom:18px;font-size:12px;color:#5d786d}
.dashboard-context label{flex-shrink:0;display:grid;gap:6px}
.dashboard-context p{font-size:11px;margin:0;max-width:750px}
.dashboard-map .card-header{background:linear-gradient(110deg,#fff,#edf6f2);padding:16px 20px}
.dashboard-map .map-container.operational-map{height:calc(100vh - 390px);min-height:550px;max-height:none;background-color:#f1f6f3;background-image:radial-gradient(#cadbd2 .7px,transparent .7px);background-size:16px 16px;padding:22px}
.dashboard-map .map-container.operational-map svg{min-width:calc(1440px * var(--map-zoom))}
.dashboard-map .map-container.operational-map.fit-map svg{min-width:0}
.dashboard-map .map-zone>rect{filter:drop-shadow(0 2px 3px #1b49321a);stroke-width:1.5;fill:#fff;rx:8}
.dashboard-map .map-zone.occupied>rect{fill:var(--occupancy-rented-bg);stroke:var(--occupancy-rented)}
.dashboard-map .map-zone.free>rect{fill:var(--occupancy-free-bg);stroke:var(--occupancy-free)}
.dashboard-map .map-zone.selected>rect{stroke:#167466;stroke-width:4}
.dashboard-map .map-zone.corridor>rect{fill:#e7efea;stroke:#d5e1d9;filter:none}
.dashboard-map .map-zone.service>rect{fill:#e9eef2;stroke:#cbd5df}
.camera-tile{height:100%;display:flex;flex-direction:column;padding:3px 5px;gap:3px;font-family:"Segoe UI",Arial,sans-serif;color:#294b3b;font-size:12px;line-height:1.2;cursor:pointer}
.tile-heading{display:flex;align-items:center;gap:8px;min-height:24px}
.tile-number{font-size:23px;letter-spacing:-.6px;line-height:1.05;flex-shrink:0}
.tile-capacity{font-size:11px;color:#779080;flex:1}
.tile-light{width:7px;height:7px;border-radius:50%;background:#a6b5ad;flex-shrink:0}
.tile-light.on{background:#e3a330;box-shadow:0 0 0 3px #f8ebca}
.tile-light.off{background:#627e96}
.tile-tenants{min-height:0;flex:1;overflow:auto;scrollbar-width:thin;scrollbar-color:#bad2c4 transparent}
.tile-tenant{display:grid;grid-template-columns:minmax(0,1fr) 92px 69px;gap:5px;align-items:center;border-bottom:1px solid #e3ece6;padding:2px 0;min-height:20px}
.tile-tenant:last-child{border-bottom:0}
.tile-client{font-weight:600;overflow-wrap:anywhere}
.tile-client small{display:block;font-weight:400;font-size:9px;color:#82968a}
.tile-rent{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.tile-rent small{font-size:9px;color:#81998a}
.tile-date{font-size:10px;color:#718879;text-align:right}
.tile-energy{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#718879;border-top:1px solid #dbe8df;padding-top:3px}
.tile-energy strong{color:#167466;font-weight:650;white-space:nowrap}
.tile-financials{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid #dbe8df;padding-top:3px;flex-shrink:0}
.tile-financials .tile-energy{border:0;padding-top:0}
.tile-margin{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#718879}
.tile-margin strong{color:#167466;font-weight:700;white-space:nowrap}
.tile-margin.negative strong,.margin-value.negative{color:#af493d}
.camera-tile.narrow .tile-financials{grid-template-columns:1fr;gap:4px}
.camera-tile.narrow .tile-margin{display:grid;font-size:9px;gap:2px}
.camera-finance .margin-line{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #d8e5dc;padding-top:12px}
.camera-finance .margin-line span{margin:0}
.margin-value{color:#167466}
.tile-empty{font-size:11px;color:#8a9b90}
.camera-tile.narrow{font-size:11px;padding:3px;gap:6px}
.camera-tile.narrow .tile-heading{flex-wrap:wrap;gap:3px}
.camera-tile.narrow .tile-capacity{flex-basis:100%;font-size:10px;order:3}
.camera-tile.narrow .tile-light{margin-left:auto}
.camera-tile.narrow .tile-tenant{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:5px 0}
.camera-tile.narrow .tile-client{font-size:11px}
.camera-tile.narrow .tile-energy{display:grid;font-size:9px;gap:2px}
.camera-tile.compact{gap:1px}
.camera-tile.compact .tile-heading{min-height:21px}
.camera-tile.compact .tile-number{font-size:21px}
.camera-tile.compact .tile-tenants{flex:1}
.map-zone text.service-label{font-size:17px;font-weight:500;fill:#6f877a}
.camera-inspector{position:fixed;right:16px;top:88px;bottom:20px;width:460px;max-width:calc(100vw - 28px);background:#fff;box-shadow:0 12px 70px #143d383d;border:1px solid #c9dfd2;border-radius:12px;z-index:5;overflow:auto}
.inspector-title{position:sticky;top:0;background:#f4faf7;border-bottom:1px solid #e1ece4;display:flex;gap:12px;justify-content:space-between;align-items:center;padding:18px 22px;z-index:1}
.inspector-title small{display:block;font-size:9px;letter-spacing:1.7px;color:#7c9788;margin-bottom:6px}
.camera-finance{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#f1f7f3;border-radius:7px;margin-top:20px;padding:15px}
.camera-finance span{display:block;font-size:10px;color:#6e897a;margin-bottom:6px}
.camera-finance strong{font-size:18px;font-weight:650}
.module-detail{border:1px solid #e3ebe5;border-radius:7px;margin:12px 0;padding:14px}
.module-detail h3{line-height:1.5}
.dashboard-pending summary{padding:18px 22px;cursor:pointer;font-size:12px;color:#698271}
.workspace:fullscreen{margin-left:0;background:#f5f7f8;overflow:auto;width:100%;height:100%}
@media(max-width:900px){.dashboard-context{flex-direction:column;align-items:flex-start;gap:10px}.camera-inspector{top:20px;bottom:15px}.camera-finance strong{font-size:16px}}
@media(max-width:760px){body.dashboard-active main{padding:20px 12px}.dashboard-map .map-container.operational-map{min-height:570px}.dashboard-map .card-header{padding:13px}.camera-inspector .card-body{padding:16px}}
.layout-grid.operational-layout{grid-template-columns:minmax(0,1fr) 340px}
.map-container.operational-map{max-height:1000px;max-width:100%;padding:18px;overscroll-behavior:contain}
.map-container.operational-map svg{width:calc(100% * var(--map-zoom));min-width:calc(960px * var(--map-zoom));max-height:none;height:auto}
.map-container.operational-map.fit-map svg{width:100%;min-width:0}
.map-zone text.map-number{font-weight:750;fill:#173f30}
.map-zone text.map-detail{font-weight:500;fill:#345746}
.motor-indicator{stroke:#fff;stroke-width:2;fill:#9daaa4;pointer-events:none}
.motor-indicator.on{fill:#e6a725}
.motor-indicator.off{fill:#526c86}
.motor-detail{padding:18px 0;border-bottom:1px solid #e4eae8}
.motor-detail:last-child{border-bottom:0}
.motor-detail h3{line-height:1.5}
.motor-detail .button{font-size:11px;padding:8px 10px}
.motor-detail .value-pair strong small{font-size:10px;font-weight:400;color:#72817f}
.window-editor{border:1px solid #dce5df;border-radius:6px;padding:12px}
.window-rows{display:grid;gap:10px;margin-bottom:12px}
.schedule-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:9px;align-items:end}
.schedule-row label{display:grid;gap:6px;font-size:11px}
.schedule-row input{min-width:0}
.schedule-row button{height:39px;min-width:34px}
.card #projection-summary .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1250px){.layout-grid.operational-layout{grid-template-columns:1fr}.layout-grid.operational-layout>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}}
@media(max-width:760px){.layout-grid.operational-layout>div{display:block}.card #projection-summary .stats{grid-template-columns:1fr}.map-container.operational-map{max-height:740px;padding:10px}}
*{box-sizing:border-box}body{margin:0}a{color:var(--green)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #9dcaba}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;background:var(--dark);color:#d1e1dc;padding:34px 20px;display:flex;flex-direction:column;z-index:4}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:white;font-size:27px;letter-spacing:3px;font-weight:700;margin:0 10px 48px}.brand-mark{font-size:34px;color:#a1d9c9;letter-spacing:0}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:4px;color:#a6bfb8}.nav-caption{font-size:10px;letter-spacing:1.7px;color:#90afa5;padding:0 15px;margin:16px 0 10px}nav{display:grid;gap:5px}nav a{color:#c1d6ce;text-decoration:none;padding:13px 14px;border-radius:7px;font-size:13px;display:flex;align-items:center;gap:12px}nav a>span{width:21px;font-size:20px;text-align:center;color:#94b6aa}nav a:hover{background:#204d45}nav a.active{background:#2b5b4f;color:#fff}nav a.active>span{color:#b1e5c8}.sidebar-bottom{margin-top:auto;padding:24px 10px 0;border-top:1px solid #31534a;font-size:12px}.sidebar-bottom small{display:block;color:#8eafa3;margin:8px 0 20px;font-size:11px}.local-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#91cdae;margin-right:7px}.backup-link{color:#c7e0d4;text-decoration:none;font-size:12px}.workspace{margin-left:246px;min-height:100vh}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:12px;color:#7c8a86}.topbar strong{font-weight:500;color:#334c43}.topbar .muted{padding:0 12px}.topbar-right{display:flex;align-items:center;gap:20px}.pill{font-size:9px;letter-spacing:1.2px;padding:6px 9px;background:#f0f5f2;border:1px solid #e3ece7;border-radius:4px;color:#607d70}.avatar{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#e8f0eb;color:#527161;font-size:11px;font-weight:600}main{max-width:1660px;margin:0 auto;padding:36px 38px 45px;min-height:calc(100vh - 130px)}h1{font-size:28px;letter-spacing:-.7px;font-weight:650;margin:0 0 9px}h2{font-size:16px;font-weight:600;margin:0}h3{font-size:13px;margin:0 0 9px}p{line-height:1.6}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.page-head p{color:var(--muted);font-size:13px;margin:0}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.7px;color:#658a79;margin-bottom:11px}.button{border:1px solid var(--green);background:var(--green);color:#fff;padding:10px 15px;border-radius:6px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;min-height:37px;white-space:nowrap}.button:hover{filter:brightness(.95)}.button.secondary{background:#fff;border-color:#d8e3dd;color:#496354}.button.danger{background:#fff;border-color:#e6c4be;color:#a44837}.button.small{padding:6px 10px;min-height:29px;font-size:11px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:25px}.stat{background:white;border:1px solid var(--line);border-radius:9px;padding:20px 22px;position:relative}.stat-label{font-size:12px;color:var(--muted);margin-bottom:13px}.stat-value{font-size:29px;font-weight:650;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stat-value.money{font-size:24px}.stat-note{font-size:11px;color:#81908a;margin-top:9px}.stat-icon{float:right;font-size:18px;color:#7b9d8b;background:#f0f6f2;border-radius:7px;padding:5px 9px}.card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:22px}.card-header{padding:21px 23px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.card-header p{font-size:11px;margin:6px 0 0;color:var(--muted)}.card-body{padding:23px}.grid-two{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:23px;align-items:start}.muted{color:var(--muted)}.small-text{font-size:11px;line-height:1.6}.tag{display:inline-flex;gap:5px;align-items:center;border-radius:4px;padding:4px 8px;font-size:10px;font-weight:600;white-space:nowrap}.tag.occupied{background:#ecf2ef;color:#4c7560}.tag.free{background:#e9f6ef;color:#208257}.tag.warning{background:#fcf3e0;color:#a57524}.tag.neutral{background:#eef1f5;color:#72818e}.tag.dot:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;align-self:center}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#fafcfb;color:#7c8d84;font-weight:500;font-size:10px;letter-spacing:.4px;padding:13px 20px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:15px 20px;border-bottom:1px solid #eef2ef;vertical-align:middle}tr:last-child td{border-bottom:0}td strong{font-weight:600}td .small-text{display:block;margin-top:4px;color:var(--muted)}td.numeric,th.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}tr:hover td{background:#fcfdfc}.table-button{border:0;background:transparent;color:var(--green);padding:5px;font-size:11px}.table-button:hover{text-decoration:underline}.progress-track{height:8px;background:#edf1ed;border-radius:4px;overflow:hidden;margin-top:12px}.progress-bar{height:100%;background:#4f9477;border-radius:4px}.occupancy-total{font-size:45px;letter-spacing:-2px;font-weight:600;color:#2a5a46}.legend{display:flex;gap:18px;font-size:11px;color:#7c8c82;align-items:center;flex-wrap:wrap}.swatch{display:inline-block;width:8px;height:8px;background:#8ec9ac;border-radius:2px;margin-right:5px}.swatch.dark{background:#497d67}.swatch.gray{background:#e8ece8}.swatch.amber{background:#e7bd67}.warning-box,.info-box{border:1px solid #efe0bb;background:#fffbf1;color:#8b6b31;font-size:12px;padding:14px 17px;border-radius:7px;line-height:1.65;margin-bottom:22px}.info-box{background:#f0f7f4;border-color:#dcebe3;color:#507563}.issue-list{padding:0;margin:0;list-style:none}.issue-list li{padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.6}.issue-list li:last-child{border:0}.issue-list strong{display:block;font-size:12px;margin-bottom:3px}.text-link{font-size:12px;text-decoration:none;color:var(--green)}.chart{width:100%;height:auto;display:block}.chart-label{font-family:"Segoe UI",Arial,sans-serif;font-size:10px;fill:#819086}.chart-grid{stroke:#ecf0ed;stroke-width:1}.chart-bar{fill:#84b89e}.chart-bar:last-of-type{fill:#367c5b}.filter-bar{display:flex;gap:12px;margin-bottom:20px}.filter-bar input{flex:1;max-width:400px}.filter-bar input,.filter-bar select,.inline-input{border:1px solid #dce5df;border-radius:6px;padding:10px 12px;background:#fff;color:#3b5649;font-size:12px}.empty{padding:45px 25px;text-align:center;color:var(--muted);font-size:13px}.section-gap{margin-top:28px}footer{border-top:1px solid var(--line);padding:18px 38px;font-size:10px;color:#8b9791;display:flex;justify-content:space-between;gap:10px}.layout-grid{display:grid;grid-template-columns:minmax(400px,1.7fr) minmax(280px,1fr);gap:22px;align-items:start}.map-container{padding:22px;background:#f9fbfa;overflow:auto}.map-container svg{width:100%;max-height:820px;display:block;touch-action:pan-y}.map-zone{cursor:pointer;outline-offset:0}.map-zone rect{stroke-width:2;stroke:#b9d4c5;fill:#ebf5ef}.map-zone.occupied rect{fill:#cde3d5;stroke:#88b09b}.map-zone.free rect{fill:#f0f9f3;stroke:#a0c9ae}.map-zone.corridor rect{fill:#f3f5f3;stroke:#e3e9e3;stroke-dasharray:7 6}.map-zone.service rect{fill:#e8edf0;stroke:#cbd5dc}.map-zone.selected rect{stroke:#195c44;stroke-width:5}.map-zone text{fill:#3b5e4a;font-size:18px;font-weight:600;pointer-events:none}.map-zone .map-sub{font-size:12px;font-weight:400;fill:#708b7a}.map-zone.editing{cursor:move}.map-container.is-editing svg{touch-action:none}.mini-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.mini-unit{border:1px solid #dce8e0;border-radius:4px;padding:12px 5px;text-align:center;background:#eff6f1;color:#688c73;font-size:11px;text-decoration:none}.mini-unit.taken{background:#cde2d3;border-color:#b5d3be;color:#356345}.field{display:block;margin-bottom:17px;font-size:12px;color:#526b5b}.field>span{display:block;margin-bottom:7px;font-weight:600}.field input:not([type=checkbox]),.field select,.field textarea{width:100%;padding:10px 11px;border:1px solid #d6e1d9;border-radius:5px;background:#fff;color:#2c4936}.field textarea{min-height:85px;resize:vertical}.field select[multiple]{min-height:170px}.field small{display:block;margin-top:6px;font-size:11px;color:#87968b;line-height:1.5}.field.check{display:flex;gap:9px;align-items:flex-start;line-height:1.5}.field.check>span{margin:0}.field input[type=checkbox]{margin-top:2px;accent-color:var(--green)}dialog{border:1px solid #dce5dd;border-radius:11px;padding:0;width:min(590px,calc(100vw - 28px));max-height:90vh;box-shadow:0 20px 90px #112e3030}dialog::backdrop{background:#143d3866;backdrop-filter:blur(2px)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.icon-button{background:transparent;border:0;font-size:26px;color:#778f7d;padding:0 4px}#modal-fields{padding:22px 25px 0}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:20px 25px;border-top:1px solid var(--line)}.error{color:#a44235;font-size:12px;margin:0;padding:0 25px 14px;line-height:1.5}.error:empty{display:none}#notice{position:fixed;bottom:24px;right:26px;background:#174d3a;color:#fff;box-shadow:0 8px 30px #143d3830;border-radius:7px;padding:16px 22px;max-width:520px;font-size:13px;z-index:20;line-height:1.5}#notice.failure{background:#973b2c}.doc-list{display:grid;gap:0}.doc-row{padding:17px 22px;display:flex;gap:12px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);font-size:12px}.doc-row:last-child{border:0}.doc-row a{font-weight:500;text-decoration:none}.source-preview{display:block;width:100%;border:1px solid var(--line);border-radius:5px;margin-top:16px}.timeline{overflow-x:auto}.timeline-row{display:grid;grid-template-columns:180px 1fr;gap:12px;min-width:650px;align-items:center;margin:9px 0;font-size:10px}.timeline-track{display:grid;grid-template-columns:repeat(96,1fr);height:18px;background:#f0f2f0;gap:1px}.timeline-slot.on{background:#518d70}.timeline-times{display:flex;justify-content:space-between;margin-left:192px;font-size:10px;color:#8b998e}.value-pair{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #eef1ee;font-size:12px}.value-pair:last-child{border:0}.value-pair span{color:var(--muted)}.value-pair strong{font-weight:600;text-align:right}.nowrap{white-space:nowrap}
@media(min-width:1500px){main{padding-top:45px}.stats{gap:24px}.stat{padding:25px}}@media(max-width:1150px){.sidebar{width:215px;padding-left:13px;padding-right:13px}.workspace{margin-left:215px}main{padding:28px 24px}.topbar{padding:0 24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-two{grid-template-columns:1fr}.layout-grid{grid-template-columns:minmax(330px,1.4fr) minmax(250px,1fr)}.topbar-right time{display:none}}@media(max-width:760px){.sidebar{position:static;width:100%;padding:15px;display:block}.brand{font-size:20px;margin:0 0 17px;gap:10px}.brand-mark{font-size:27px}.brand small{font-size:8px}.nav-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto;gap:4px}.sidebar nav a{padding:8px 10px;white-space:nowrap;font-size:11px}.sidebar nav a>span{display:none}.workspace{margin-left:0}.topbar{height:55px;padding:0 18px}.topbar-right .pill{display:none}main{padding:25px 16px}.page-head{align-items:flex-start;flex-direction:column;gap:15px}h1{font-size:24px}.stats{gap:10px}.stat{padding:16px}.stat-value{font-size:26px}.stat-value.money{font-size:20px}.stat-icon{display:none}.layout-grid{grid-template-columns:1fr}.map-container svg{max-height:none}.filter-bar{flex-wrap:wrap}.filter-bar input{min-width:200px}.card-header{padding:17px;flex-wrap:wrap}th,td{padding:12px 15px}footer{padding:15px 18px;display:block;line-height:1.8}footer span{display:block}.topbar-right{gap:8px}}
