*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--color-bg: #f8f8f8;--color-surface: #ffffff;--color-border: #e5e5e5;--color-border-hover: #d0d0d0;--color-text: #111111;--color-text-muted: #666666;--color-text-hint: #999999;--color-accent: #2563eb;--color-accent-bg: #eff6ff;--brand-primary: var(--color-accent);--brand-primary-bg: var(--color-accent-bg);--brand-text-emphasis: var(--color-text);--brand-mark: var(--color-accent);--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-danger: #dc2626;--color-danger-bg: #fef2f2;--color-warning-bg: #fffbeb;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--bp-tablet: 1024px;--bp-mobile: 768px;--bp-mobile-sm: 480px;--sidebar-width: 220px;--chat-shell-height: 100vh}@supports (height: 100dvh){:root{--chat-shell-height: 100dvh}}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark;--color-bg: #0f0f0f;--color-surface: #1a1a1a;--color-border: #2a2a2a;--color-border-hover: #3a3a3a;--color-text: #f0f0f0;--color-text-muted: #999999;--color-text-hint: #666666;--color-accent-bg: #1e3a5f;--brand-text-emphasis: #f0f0f0;--brand-mark: #60a5fa;--color-success-bg: #052e16;--color-danger-bg: #450a0a;--color-warning-bg: #422006;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4)}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}textarea,input{font-family:inherit}@keyframes spin{to{transform:rotate(360deg)}}.spin{display:inline-block;animation:spin .9s linear infinite}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeSlideUp .2s ease-out}.app-height{height:100%;min-height:var(--chat-shell-height)}.app-flex-col{display:flex;flex-direction:column;min-height:0}.app-flex-fill{flex:1;min-height:0;display:flex;flex-direction:column}.chat-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100%;min-height:0;flex:1;background:var(--color-bg);overflow:hidden}.chat-main{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;background:var(--color-bg)}.chat-sidebar{display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border);overflow:hidden;min-height:0}.sidebar-drawer-backdrop{display:none}@media (max-width: 1024px){.chat-shell{grid-template-columns:1fr}.chat-sidebar{position:fixed;top:0;left:0;bottom:0;width:min(280px,85vw);z-index:50;transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-md)}.chat-sidebar--open{transform:translate(0)}.sidebar-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:40;border:none;padding:0;cursor:pointer}}.top-bar{padding:10px 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:8px;min-width:0}.top-bar__start{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.top-bar__actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.top-bar__menu-btn{display:none;width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:18px;color:var(--color-text-muted);flex-shrink:0;align-items:center;justify-content:center}@media (max-width: 1024px){.top-bar__menu-btn{display:flex}}@media (max-width: 768px){.top-bar{padding:8px 12px}.top-bar__message-count,.top-bar__pdf-label{display:none}}.message-thread{flex:1;overflow-y:auto;padding:20px 20px 8px;display:flex;flex-direction:column;gap:16px;min-width:0}@media (max-width: 768px){.message-thread{padding:12px 12px 8px;gap:12px}}.assistant-aligned{max-width:72%;margin-left:40px;min-width:0}@media (max-width: 768px){.assistant-aligned{max-width:100%;margin-left:0}}.bubble-row{display:flex;gap:10px;min-width:0}.bubble-content{max-width:78%;min-width:0}.bubble-content--user{max-width:72%}.bubble-body{overflow-wrap:anywhere;word-break:break-word}.bubble-body code{overflow-x:auto;display:block;max-width:100%;white-space:pre-wrap}@media (max-width: 768px){.bubble-content,.bubble-content--user{max-width:88%}.user-bubble__avatar{display:none}.assistant-bubble__avatar{width:24px;height:24px;font-size:12px}}.compose-bar{border-top:1px solid var(--color-border);background:var(--color-surface);padding:12px 20px max(16px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:10px;flex-shrink:0}.compose-bar__send-label{display:inline}@media (max-width: 768px){.compose-bar{padding:10px 12px max(12px,env(safe-area-inset-bottom,0px));gap:8px}.compose-bar__hint,.compose-bar__send-label{display:none}.compose-bar__send-btn{padding:0 12px!important;min-width:44px}}.property-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.property-card__address{overflow-wrap:anywhere;word-break:break-word}.property-card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}@media (max-width: 768px){.property-metrics{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.property-metrics{grid-template-columns:1fr}}.calc-strip{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.calc-strip__text{overflow-wrap:anywhere;word-break:break-word;min-width:0;flex:1}.sidebar-session-delete{flex-shrink:0;padding:6px 8px;border-radius:4px;font-size:16px;line-height:1;color:var(--color-text-hint);min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center}.sidebar-session-delete:hover,.sidebar-session-delete:focus-visible{opacity:1;background:var(--color-bg)}.admin-page{min-height:var(--chat-shell-height);background:var(--color-bg)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.admin-nav{display:flex;gap:8px;padding:12px 24px;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap}.admin-main{padding:24px;max-width:1280px;margin:0 auto}.admin-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.admin-users-grid{display:grid;grid-template-columns:minmax(200px,220px) minmax(260px,300px) 1fr 1fr;gap:16px;align-items:start}@media (max-width: 1024px){.admin-users-grid{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.admin-header{padding:12px 16px}.admin-nav{padding:8px 16px}.admin-main{padding:16px}.admin-chart-grid{grid-template-columns:1fr}}@media (max-width: 640px){.admin-users-grid{grid-template-columns:1fr}}.overflow-wrap{overflow-wrap:anywhere;word-break:break-word}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.brand-mark{display:flex;align-items:center;gap:8px;min-width:0}.brand-mark__icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--brand-primary-bg);color:var(--brand-mark);font-size:16px;line-height:1;overflow:hidden}.brand-mark__icon img{width:100%;height:100%;object-fit:contain;display:block}.brand-mark__text{min-width:0;display:flex;flex-direction:column;gap:1px}.brand-mark__title{font-weight:600;font-size:14px;color:var(--brand-text-emphasis);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-mark__subtitle{font-size:12px;color:var(--color-text-hint);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-mark__title--short{display:none}@media (max-width: 768px){.brand-mark--responsive .brand-mark__title--full{display:none}.brand-mark--responsive .brand-mark__title--short{display:block}.brand-mark--responsive .brand-mark__subtitle,.brand-mark--header-only.brand-mark--responsive .brand-mark__subtitle{display:none}}@media (max-width: 480px){.brand-mark--sidebar.brand-mark--responsive .brand-mark__title--short,.brand-mark--sidebar.brand-mark--responsive .brand-mark__text{display:none}}.brand-mark--inline .brand-mark__icon{width:24px;height:24px;font-size:14px}.brand-mark--header-only .brand-mark__icon{display:none}.brand-mark--header-only .brand-mark__text{gap:2px}
