/* Shared visual contract: portal, rental operations, documents and chat. */
html:root,html:root[data-theme=light]{color-scheme:light;--bg:#f5f4ef;--surface:#fff;--surface-2:#f7f8f4;--surface-3:#eaf1ec;--ink:#203830;--text:#203830;--muted:#5b6962;--line:#dce2dc;--line-soft:#e8ece6;--accent:#285c48;--on-accent:#fff;--soft:#eaf1ec;--accent-soft:#eaf1ec;--accent-line:#a7c5b5;--gold:#8a651f;--gold-soft:#f4eddd;--warn:#8a651f;--warn-soft:#f4eddd;--error:#9e362c;--danger:#9e362c;--danger-soft:#fbeae7;--ok:#1b7051;--ok-soft:#e8f3eb;--glass:var(--bg);--glass-strong:var(--surface);--radius:16px;--radius-sm:10px;--t-body:14px;--t-base:16px;--shadow:0 0 0 1px #2038300c,0 2px 4px #20383006;--shadow-lift:0 0 0 1px #20383014,0 8px 24px #20383008;--glow:none}
html:root[data-theme=dark]{color-scheme:dark;--bg:#111a17;--surface:#1a2621;--surface-2:#21322a;--surface-3:#293d31;--ink:#e6eee8;--text:#e6eee8;--muted:#b1bfb6;--line:#394a40;--line-soft:#2e4036;--accent:#95c4aa;--on-accent:#12291c;--soft:#293d31;--accent-soft:#293d31;--accent-line:#52775f;--gold:#e4c78b;--gold-soft:#3a3120;--warn:#e4c78b;--warn-soft:#3a3120;--error:#ffb2a5;--danger:#ffb2a5;--danger-soft:#3c2926;--ok:#91d8b1;--ok-soft:#243c2d;--glass:var(--bg);--glass-strong:var(--surface);--shadow:0 0 0 1px #ffffff14;--shadow-lift:0 0 0 1px #ffffff21}
@media(prefers-color-scheme:dark){html:root:not([data-theme=light]){color-scheme:dark;--bg:#111a17;--surface:#1a2621;--surface-2:#21322a;--surface-3:#293d31;--ink:#e6eee8;--text:#e6eee8;--muted:#b1bfb6;--line:#394a40;--line-soft:#2e4036;--accent:#95c4aa;--on-accent:#12291c;--soft:#293d31;--accent-soft:#293d31;--accent-line:#52775f;--gold:#e4c78b;--gold-soft:#3a3120;--warn:#e4c78b;--warn-soft:#3a3120;--error:#ffb2a5;--danger:#ffb2a5;--danger-soft:#3c2926;--ok:#91d8b1;--ok-soft:#243c2d;--glass:var(--bg);--glass-strong:var(--surface);--shadow:0 0 0 1px #ffffff14;--shadow-lift:0 0 0 1px #ffffff21}}
html,body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--text)}
html h1,html h2,html h3,html .page-title,html .obj-name,html .dash-hero-title,html .tenant-hero h2{font-family:inherit;letter-spacing:-.025em;text-wrap:balance}
html:root .topbar,html:root .rail,html:root .sidebar{background:var(--surface);border-color:var(--line)}
html:root .rail{--text:inherit;--muted:inherit;--surface:inherit;--surface-2:inherit;--line:inherit;--line-soft:inherit;--accent:inherit;--accent-soft:inherit;--on-accent:inherit}
html:root .rail-label{color:var(--muted)}html:root .rail button.active{color:var(--accent);background:var(--soft)}html:root .rail-badge{color:var(--on-accent)}
html .rail .brand,html .bc-work-chat{text-decoration:none}
html .primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);box-shadow:none}html .primary:hover{filter:none}
html .tenant-kpi,html .obj-block,html .an-card,html .tenant-block{border-radius:var(--radius);box-shadow:var(--shadow)}
html button,html a,html input,html textarea,html select{touch-action:manipulation}html button,html .link{min-height:44px}html :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--accent);outline-offset:3px}
html :is(.amount,.sum,.value,.tenant-kpi,.object-owed,td){font-variant-numeric:tabular-nums}html p{line-height:1.55;text-wrap:pretty}
.bc-work-chat{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;min-height:44px;color:var(--text);background:var(--soft);font-size:14px}.bc-work-chat svg{width:20px;height:20px;flex-shrink:0}
.chat-grants{margin-top:16px}.chat-grants label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.chat-grants input{width:20px;height:20px;accent-color:var(--accent)}
.access-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0}.access-actions button{font-size:.85rem}
@media(prefers-reduced-motion:reduce){html *,html *::before,html *::after{animation:none!important;transition-duration:0s!important;scroll-behavior:auto!important}}
