:root{--revico-darker: #0f1215;--revico-dark: #16191b;--revico-surface: #1f2225;--revico-raised: #292c2f;--revico-border: #313438;--revico-control-border: #6f7276;--revico-text: #e4e6e9;--revico-muted: #a7abb0;--revico-accent: #63aeaa;--revico-accent-rgb: 99, 174, 170;--revico-accent-soft: #193635;--revico-accent-border: #296361;--revico-accent-fill: #146866;--revico-accent-ring: rgba(99, 174, 170, .35);--revico-success: #8cb894;--revico-success-soft: #253127;--revico-warning: #d1b380;--revico-warning-soft: #372f22;--revico-danger: #d78e8b;--revico-series-1: #4372bd;--revico-series-2: #039b93;--revico-series-3: #a75440;--revico-series-4: #a29636;--revico-series-5: #9c5991;--revico-series-6: #587826;--revico-series-7: #8b89d7;--revico-series-8: #d0747e;--revico-heat-1: #885531;--revico-heat-2: #c79350;--revico-heat-3: #f3dca5;--revico-app-bar-height: 56px}.login-overlay,.heatmap__nav{--text-primary: var(--revico-text);--text-muted: var(--revico-muted);--brand-accent: var(--revico-accent);--brand-accent-hover: var(--revico-accent);--brand-accent-rgb: var(--revico-accent-rgb);--accent-primary: var(--revico-accent);--accent-primary-glow: var(--revico-accent-ring);--accent-danger: var(--revico-danger);--glass-border-accent: var(--revico-accent-border);--glass-bg-solid: var(--revico-surface);--gradient-accent: var(--revico-accent-fill);--glow-accent: 0 0 0 transparent;--glow-accent-strong: 0 0 0 transparent}:root{--app-bg: #08080c;--glass-bg: rgba(10, 10, 14, .85);--glass-bg-solid: rgba(14, 14, 20, .95);--glass-bg-elevated:rgba(20, 20, 28, .92);--glass-bg-light: rgba(var(--text-primary-rgb), .04);--glass-bg-lighter: rgba(var(--text-primary-rgb), .07);--glass-bg-surface: rgba(var(--text-primary-rgb), .03);--glass-border: rgba(var(--text-primary-rgb), .08);--glass-border-light: rgba(var(--text-primary-rgb), .12);--glass-border-top: rgba(var(--text-primary-rgb), .15);--glass-border-accent: rgba(var(--brand-accent-rgb), .2);--text-primary-rgb: 255, 255, 255;--text-primary: #ffffff;--text-secondary: rgba(var(--text-primary-rgb), .7);--text-muted: rgba(var(--text-primary-rgb), .4);--accent-primary: var(--brand-accent);--accent-primary-hover: var(--brand-accent-hover);--accent-primary-glow: rgba(var(--brand-accent-rgb), .25);--accent-secondary: var(--brand-secondary);--accent-secondary-glow: rgba(var(--brand-secondary-rgb), .2);--accent-success: #00E68A;--accent-warning: #FFBE0A;--accent-danger: #FF4757;--accent-info: #3D8BFF;--gradient-accent: linear-gradient(135deg, var(--brand-accent), var(--brand-accent-hover));--gradient-surface: linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 100%);--glow-accent: 0 0 20px rgba(var(--brand-accent-rgb), .15);--glow-accent-strong: 0 0 30px rgba(var(--brand-accent-rgb), .25);--glow-accent-intense: 0 4px 30px rgba(var(--brand-accent-rgb), .35);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 80px rgba(0, 0, 0, .5);--shadow-glow: 0 8px 32px rgba(0, 0, 0, .4), 0 0 20px rgba(var(--brand-accent-rgb), .15);--blur-standard: 24px;--blur-heavy: 40px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-smooth: .3s cubic-bezier(.25, .46, .45, .94);--transition-glow: .4s cubic-bezier(.25, .46, .45, .94);--z-matterport: 0;--z-ui: 10;--z-sidebar: 20;--z-cta: 25;--z-fab: 25;--z-panel: 40;--z-booking: 100;--minimap-bg: var(--glass-bg-solid);--minimap-grid: rgba(var(--text-primary-rgb), .06);--minimap-line: rgba(var(--text-primary-rgb), .15);--minimap-area: rgba(var(--brand-accent-rgb), .08);--minimap-dot: rgba(var(--text-primary-rgb), .4);--minimap-dot-border: rgba(var(--text-primary-rgb), .6);--minimap-radar: var(--brand-accent);--minimap-letterbox: #ffffff;--brand-accent: #00D4FF;--brand-accent-hover: #33DFFF;--brand-accent-contrast: #ffffff;--text-on-accent: var(--brand-accent-contrast);--brand-secondary: #6366F1;--brand-accent-rgb: 0, 212, 255;--brand-secondary-rgb: 99, 102, 241;--brand-gradient: linear-gradient(135deg, var(--brand-accent), var(--brand-accent-hover));--panel-header-bg: var(--brand-accent);--panel-header-fg: var(--brand-accent-contrast);--panel-radius: var(--radius-2xl);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: var(--font-sans)}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-booking);display:flex;align-items:center;justify-content:center;background:#000000e6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;visibility:hidden;transition:all var(--transition-smooth)}.login-overlay--active{opacity:1;visibility:visible}.login-modal{width:min(440px,90vw);background:var(--glass-bg-solid);background-image:var(--gradient-surface);border:1px solid var(--glass-border-light);border-top:1px solid var(--glass-border-top);border-radius:var(--radius-2xl);overflow:hidden;transform:scale(.95) translateY(20px);transition:transform var(--transition-smooth);box-shadow:var(--shadow-lg),var(--glow-accent-strong)}.login-overlay--active .login-modal{transform:scale(1) translateY(0)}.login-modal__header{display:flex;align-items:center;justify-content:center;padding:var(--space-xl) var(--space-xl) 0}.login-modal__brand{display:flex;align-items:center;gap:var(--space-sm)}.login-modal__logo{width:32px;height:32px}.login-modal__brand-name{font-size:18px;font-weight:700;color:var(--text-primary)}.login-modal__body{padding:var(--space-xl)}.login-modal__title{font-size:22px;font-weight:600;text-align:center;margin-bottom:var(--space-sm)}.login-modal__subtitle{font-size:14px;color:var(--text-secondary);text-align:center;margin-bottom:var(--space-xl)}.login-form__field{margin-bottom:var(--space-lg)}.login-form__label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-xs)}.login-form__input{width:100%;padding:var(--space-md) var(--space-lg);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:15px;font-family:inherit;transition:border-color var(--transition-fast);box-sizing:border-box}.login-form__input::placeholder{color:var(--text-muted)}.login-form__input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.login-form__error{color:var(--accent-danger);font-size:13px;min-height:20px;margin-bottom:var(--space-sm)}.login-form__submit{display:flex;align-items:center;justify-content:center;width:100%;padding:var(--space-md) var(--space-xl);background:var(--gradient-accent);border:1px solid rgba(0,212,255,.3);border-radius:var(--radius-md);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--glow-accent)}.login-form__submit:hover:not(:disabled){filter:brightness(1.1);box-shadow:var(--glow-accent-strong)}.login-form__submit:disabled{opacity:.6;cursor:not-allowed}.login-form__forgot{display:block;margin:var(--space-md) auto 0;padding:var(--space-xs) var(--space-sm);background:transparent;border:none;color:var(--text-muted);font-size:12px;font-family:inherit;cursor:pointer;text-decoration:none;transition:color var(--transition-fast)}.login-form__forgot:hover{color:var(--text-primary);text-decoration:underline}.login-form__hint{font-size:13px;color:var(--text-secondary);margin:0 0 var(--space-lg);line-height:1.5}.login-form__info{color:var(--text-secondary);font-size:13px;min-height:0;margin-bottom:var(--space-sm)}.login-form__info:not(:empty){min-height:20px}.login-modal__divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-xl) 0;color:var(--text-muted);font-size:13px}.login-modal__divider:before,.login-modal__divider:after{content:"";flex:1;border-top:1px solid var(--glass-border)}.login-modal__guest-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-xl);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.login-modal__guest-btn:hover{background:var(--glass-bg-lighter);color:var(--text-primary);border-color:var(--glass-border-light)}.login-modal__guest-hint{font-size:12px;color:var(--text-muted);text-align:center;margin-top:var(--space-sm)}.login-form__spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:login-spin .7s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.login-form__spinner{animation-duration:2.4s}}#panel-navigation{display:flex;flex-direction:column;--nav-keepout-top: 64px;--nav-keepout-bottom: 98px;top:calc(50% + var(--nav-keepout-top) / 2 - var(--nav-keepout-bottom) / 2);max-height:calc(100vh - var(--nav-keepout-top) - var(--nav-keepout-bottom))}#panel-navigation .panel__header{flex:0 0 auto}#panel-navigation .panel__body{display:flex;flex-direction:column;padding-bottom:var(--space-xs);overflow:hidden;max-height:calc(100vh - var(--nav-keepout-top) - var(--nav-keepout-bottom) - 63px)}#panel-navigation .floor-selector{flex:1 1 auto;min-height:44px;overflow-y:auto;padding-right:var(--space-md);scrollbar-width:auto;scrollbar-color:var(--brand-accent) rgba(255,255,255,.1)}#panel-navigation .floor-selector::-webkit-scrollbar{width:14px}#panel-navigation .floor-selector::-webkit-scrollbar-button{display:none}#panel-navigation .floor-selector::-webkit-scrollbar-track{background:#ffffff1a;border-radius:var(--radius-full)}#panel-navigation .floor-selector::-webkit-scrollbar-thumb{background:var(--brand-accent);border-radius:var(--radius-full);border:2px solid transparent;background-clip:padding-box}#panel-navigation .floor-selector::-webkit-scrollbar-thumb:hover{background:var(--brand-accent-hover, var(--brand-accent));background-clip:padding-box}#panel-navigation .minimap-wrapper{flex:0 0 auto;width:100%}.floor-selector-labels{display:flex;margin-bottom:var(--space-md)}.floor-selector-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;width:50%}.floor-selector-label--style{padding-left:28px}.floor-selector{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg)}.floor-group{display:flex;flex-direction:column;gap:var(--space-xs)}.floor-group+.floor-group{margin-top:var(--space-sm)}.floor-group__toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-glow)}.floor-group__name{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.floor-group__toggle:hover .floor-group__name{color:var(--text-primary)}.floor-group--active>.floor-group__toggle{background:rgba(var(--brand-accent-rgb),.1);border-color:var(--glass-border-accent)}.floor-group--active .floor-group__name,.floor-group--active .floor-group__chevron{color:var(--brand-accent)}.floor-group__chevron{font-size:10px;color:var(--text-muted);transition:transform var(--transition-glow)}.floor-group--collapsed .floor-group__chevron{transform:rotate(-90deg)}.floor-group--collapsed .floor-row{display:none}.floor-btn{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-glow)}.floor-btn:hover{background:var(--glass-bg-lighter);border-color:var(--glass-border-light);box-shadow:inset 0 1px 0 var(--glass-border-top)}.floor-btn--active{background:rgba(var(--brand-accent-rgb),.1);border-color:var(--glass-border-accent);box-shadow:var(--glow-accent)}.floor-btn__name{font-size:13px;font-weight:600;color:var(--text-primary);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floor-btn--active .floor-btn__name{color:var(--brand-accent)}.floor-btn__area{font-size:11px;color:var(--text-muted)}.floor-btn--transit{opacity:.45;pointer-events:none;cursor:default}.space-selector{display:flex;flex-direction:column;gap:var(--space-xs)}.space-btn{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-glow)}.space-btn:hover{background:var(--glass-bg-lighter);border-color:var(--glass-border-light);box-shadow:inset 0 1px 0 var(--glass-border-top)}.space-btn--active{background:rgba(var(--brand-accent-rgb),.1);border-color:var(--glass-border-accent);box-shadow:var(--glow-accent)}.space-btn__icon{font-size:14px;color:var(--text-muted);width:20px;text-align:center}.space-btn--active .space-btn__icon{color:var(--brand-accent)}.space-btn__name{font-size:13px;font-weight:600;color:var(--text-primary)}.space-btn--active .space-btn__name{color:var(--brand-accent)}.floor-row{display:grid;grid-template-columns:1fr 1fr;align-items:start;position:relative;z-index:0}.floor-selector--no-variants .floor-row{grid-template-columns:1fr}.floor-row:has(.floor-btn--active){z-index:1}.floor-row .floor-btn{width:100%}.floor-row__branch{grid-column:2;padding-top:calc(var(--space-md) - var(--space-sm));padding-left:16px}.floor-row__variants{position:relative;display:flex;flex-direction:column;gap:var(--space-xs);padding-left:12px}.floor-row__variants:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;background:linear-gradient(to bottom,var(--brand-accent) var(--branch-active-stop, 0%),var(--glass-border-light) var(--branch-active-stop, 0%))}.floor-row__variants:has(.floor-row__variant:only-child):before{display:none}.floor-row__variant{position:relative}.floor-row__variant:before{content:"";position:absolute;left:-12px;top:50%;width:12px;height:3px;background:var(--glass-border-light);transform:translateY(-50%)}.floor-row__variant:first-child:before{left:-12px;width:12px}.floor-row__variant:first-child:after{content:"";position:absolute;left:-28px;top:50%;width:16px;height:3px;background:var(--glass-border-light);transform:translateY(-50%)}.floor-row__variants:has(.style-btn--active)>.floor-row__variant:first-child:after{background:var(--brand-accent);opacity:.7}.floor-row__variant:has(.style-btn--active):before{background:var(--brand-accent);opacity:.7}.style-btn{display:block;width:100%;min-width:0;padding:var(--space-sm) var(--space-md);font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:calc(var(--radius-md) - 2px);transition:all var(--transition-glow);cursor:pointer;white-space:nowrap}.style-btn:hover{color:var(--text-primary);background:var(--glass-bg-lighter);border-color:var(--glass-border-light)}.style-btn--active{color:var(--brand-accent);background:rgba(var(--brand-accent-rgb),.1);border-color:var(--glass-border-accent);box-shadow:var(--glow-accent)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45;background:var(--revico-dark);color:var(--revico-text);min-height:100vh;-webkit-font-smoothing:antialiased}:where(a,button,input,select,[tabindex]):focus-visible{outline:2px solid var(--revico-accent);outline-offset:2px}.app-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;height:var(--revico-app-bar-height);padding:0 24px;background:var(--revico-darker);border-bottom:1px solid var(--revico-border)}.app-bar__brand{display:flex;align-items:baseline;gap:8px;flex-shrink:0}.app-bar__wordmark{font-size:14px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--revico-text)}.app-bar__product{font-size:11px;letter-spacing:.08em;color:var(--revico-muted)}.app-bar__nav{display:flex;align-self:stretch;gap:4px;min-width:0}.app-bar__link{position:relative;display:flex;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;color:var(--revico-muted);text-decoration:none;white-space:nowrap;transition:color var(--transition-fast)}.app-bar__link:hover,.app-bar__link--active{color:var(--revico-text)}.app-bar__link--active:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:1px;background:var(--revico-accent)}.app-bar__link:focus-visible{outline-offset:-6px}.app-bar__link svg,.app-bar__logout svg{width:18px;height:18px;flex-shrink:0}.app-bar__logout{display:flex;align-items:center;gap:8px;margin-left:auto;padding:8px 10px;font:inherit;font-size:13px;color:var(--revico-muted);background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.app-bar__logout:hover{color:var(--revico-text);border-color:var(--revico-border)}.main{max-width:1760px;margin:0 auto;padding:24px}#content{display:flex;flex-direction:column;gap:16px}.header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.header__title{font-size:20px;font-weight:600;color:var(--revico-text);text-wrap:balance}.header__subtitle{font-size:13px;color:var(--revico-muted);margin-top:2px}.time-filter{display:inline-flex;align-self:flex-start;flex-wrap:wrap;gap:2px;padding:2px;background:var(--revico-surface);border:1px solid var(--revico-control-border);border-radius:8px}.time-filter:empty{display:none}.time-filter__btn{padding:6px 12px;font:inherit;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--revico-muted);background:none;border:none;border-radius:6px;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.time-filter__btn:hover{color:var(--revico-text)}.time-filter__btn--active{color:var(--revico-text);background:var(--revico-accent-soft);box-shadow:inset 0 0 0 1px var(--revico-accent-border)}.loading{display:flex;align-items:center;justify-content:center;padding:64px 16px;color:var(--revico-muted);font-size:13px;text-align:center}.loading--error{flex-direction:column;gap:12px}.loading__retry{padding:7px 12px;font-family:inherit;font-size:12px;font-weight:500;color:var(--revico-text);background:var(--revico-surface);border:1px solid var(--revico-control-border);border-radius:var(--radius-sm);cursor:pointer}.loading__retry:hover{border-color:var(--revico-accent)}.projects{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:20px;align-items:start}.projects__list{position:sticky;top:calc(var(--revico-app-bar-height) + 16px);display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - var(--revico-app-bar-height) - 32px);min-width:0}.projects__detail{min-width:0;container:detail / inline-size}.projects__placeholder{display:flex;align-items:center;justify-content:center;min-height:320px;padding:32px;font-size:13px;color:var(--revico-muted);text-align:center;text-wrap:balance;border:1px solid var(--revico-border);border-radius:var(--radius-md)}.login-form__submit{border-color:var(--revico-accent-fill)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0s!important;scroll-behavior:auto!important}}.metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:12px}.metric-card{min-width:0;padding:16px 18px;background:var(--revico-surface);border:1px solid var(--revico-border);border-radius:var(--radius-md)}.metric-card__label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--revico-muted);letter-spacing:.02em}.metric-card__value{margin-top:6px;font-size:26px;font-weight:600;line-height:1.15;color:var(--revico-text);font-variant-numeric:tabular-nums}.metric-card__swatch{width:8px;height:8px;border-radius:50%;flex-shrink:0}.metric-card__swatch--series-1{background:var(--revico-series-1)}.metric-card__swatch--series-2{background:var(--revico-series-2)}.metric-card__swatch--muted{background:var(--revico-muted)}.metric-card--secondary{background:none;border-style:dashed}.metric-card--secondary .metric-card__value{font-size:20px;color:var(--revico-muted)}.metrics--compact{grid-template-columns:1fr 1fr;gap:8px}.metrics--compact .metric-card{padding:10px 12px;border-radius:var(--radius-sm)}.metrics--compact .metric-card__value{margin-top:2px;font-size:18px}.dash-panel{min-width:0;padding:16px 18px 18px;background:var(--revico-surface);border:1px solid var(--revico-border);border-radius:var(--radius-md)}.dash-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.dash-panel__title{font-size:13px;font-weight:600;color:var(--revico-text)}.dash-panel__empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:13px;color:var(--revico-muted)}.dash-panel__empty[hidden]{display:none}.dash-panel--flush{padding:0;overflow:hidden}.dash-panel--flush>.dash-panel__head{margin:0;padding:14px 18px;border-bottom:1px solid var(--revico-border)}.dash-panel__scroll{overflow-x:auto}.project-list{list-style:none;flex:1 1 auto;min-height:0;overflow-y:auto;background:var(--revico-surface);border:1px solid var(--revico-border);border-radius:var(--radius-md)}.project-list__row{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px 36px 12px 14px;border-bottom:1px solid var(--revico-border);transition:background var(--transition-fast)}.project-list__row:last-child{border-bottom:none}.project-list__row:hover{background:var(--revico-raised)}.project-list__row--selected,.project-list__row--selected:hover{background:var(--revico-accent-soft)}.project-list__open{font-size:14px;font-weight:600;line-height:1.35;color:var(--revico-text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list__open:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.project-list__open:focus-visible{outline:none}.project-list__open:focus-visible:after{outline:2px solid var(--revico-accent);outline-offset:-2px;border-radius:var(--radius-sm)}.project-list__address,.project-list__broker{font-size:12px;color:var(--revico-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list__broker{color:var(--revico-text)}.project-list__broker-label{margin-right:6px;color:var(--revico-muted)}.project-list__address:empty,.project-list__meta:empty{display:none}.project-list__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:4px}.project-list__slug{font-size:11px;font-family:ui-monospace,monospace;color:var(--revico-muted)}.project-list__chevron{position:absolute;top:50%;right:12px;margin-top:-8px;width:16px;height:16px;pointer-events:none;color:var(--revico-muted);transition:color var(--transition-fast),transform var(--transition-fast)}.project-list__row:hover .project-list__chevron{transform:translate(2px)}.project-list__row--selected .project-list__chevron{color:var(--revico-accent)}.tier-badge{padding:1px 8px;border:1px solid var(--revico-border);border-radius:var(--radius-full);font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--revico-muted)}.tier-badge--pro{color:var(--revico-text)}.tier-badge--internal{border-style:dashed}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:500}.status-badge--live{background:var(--revico-success-soft);color:var(--revico-success)}.status-badge--draft{background:var(--revico-warning-soft);color:var(--revico-warning)}.status-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor}.project-detail{display:flex;flex-direction:column;gap:16px;scroll-margin-top:calc(var(--revico-app-bar-height) + 16px)}.project-detail__back{display:none;align-items:center;align-self:flex-start;gap:6px;padding:6px 10px 6px 6px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;color:var(--revico-muted);background:none;border:1px solid var(--revico-border);border-radius:6px;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.project-detail__back:hover{color:var(--revico-text);border-color:var(--revico-control-border)}.project-detail__back svg{width:16px;height:16px}.project-detail__header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:16px 20px}.project-detail__hero{width:112px;height:76px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px;color:var(--revico-muted);background:var(--revico-surface);border:1px solid var(--revico-border);border-radius:var(--radius-sm)}.project-detail__hero img{width:100%;height:100%;object-fit:cover}.project-detail__name{font-size:20px;font-weight:600;line-height:1.25;color:var(--revico-text);text-wrap:balance;scroll-margin-top:calc(var(--revico-app-bar-height) + 16px)}.project-detail__name:focus{outline:none}.project-detail__address{margin-top:2px;font-size:13px;color:var(--revico-muted)}.project-detail__parties{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:8px;font-size:13px;color:var(--revico-text)}.project-detail__party{display:flex;align-items:baseline;gap:6px}.project-detail__party-label{font-size:12px;color:var(--revico-muted)}.project-detail__tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:10px}.project-detail__slug{font-size:11px;font-family:ui-monospace,monospace;color:var(--revico-muted)}.project-detail__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.project-detail__export{display:flex;align-items:center;gap:6px;margin-left:auto;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:500;line-height:1;color:var(--revico-text);background:var(--revico-surface);border:1px solid var(--revico-control-border);border-radius:8px;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.project-detail__export:hover:not(:disabled){background:var(--revico-raised);border-color:var(--revico-accent)}.project-detail__export:disabled{opacity:.5;cursor:default}.project-detail__export svg{width:14px;height:14px}.project-detail__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@container detail (min-width: 760px){.project-detail__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-panel--wide,.project-detail__breakdowns{grid-column:1 / -1}.project-detail__chart-wrap{position:relative;height:300px}.project-detail__chart-wrap--dur{height:260px}.project-detail__chart-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--revico-muted);font-size:13px}.project-detail__breakdowns{display:flex;flex-wrap:wrap;gap:16px}.project-detail__breakdown{flex:1 1 240px}.project-detail__breakdown-chart{position:relative;height:180px}.broker-compare__label{margin:0 0 8px;font-size:12px;color:var(--revico-muted)}.broker-compare__chart{height:240px;position:relative}.broker-compare__empty{color:var(--revico-muted);font-size:13px;padding:8px 0}.broker-compare__table-wrap{margin-top:16px;overflow-x:auto}.broker-compare__table{width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.broker-compare__table th,.broker-compare__table td{padding:10px;border-bottom:1px solid var(--revico-border);text-align:left;white-space:nowrap}.broker-compare__table th:first-child,.broker-compare__table td:first-child{position:sticky;left:0;z-index:1;padding-left:0;white-space:normal;background:var(--revico-surface)}.broker-compare__table thead th{font-size:12px;font-weight:500;color:var(--revico-muted);white-space:normal;vertical-align:bottom}.broker-compare__table td{font-size:13px}.broker-compare__table tbody tr:last-child>*{border-bottom:none}.broker-compare__table .broker-compare__num{text-align:right}.broker-compare__row--series-1{--series: var(--revico-series-1)}.broker-compare__row--series-2{--series: var(--revico-series-2)}.broker-compare__row--series-3{--series: var(--revico-series-3)}.broker-compare__row--series-4{--series: var(--revico-series-4)}.broker-compare__row--series-other{--series: var(--revico-muted)}.broker-compare__name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--revico-text)}.broker-compare__swatch{width:8px;height:8px;border-radius:50%;background:var(--series);flex-shrink:0}.broker-compare__toggle{padding:0;border:0;background:none;font-family:inherit;line-height:inherit;text-align:left;cursor:pointer}.broker-compare__toggle:hover{text-decoration:underline;text-underline-offset:2px}.broker-compare__toggle[aria-pressed=false]{color:var(--revico-muted)}.broker-compare__toggle[aria-pressed=false] .broker-compare__swatch{background:none;box-shadow:inset 0 0 0 1px var(--series)}.broker-compare__hint{margin-bottom:8px;font-size:12px;color:var(--revico-muted)}.broker-compare__agents{display:block;margin:2px 0 0 16px;font-size:12px;font-weight:400;color:var(--revico-muted)}.broker-compare__share{display:flex;align-items:center;gap:10px}.broker-compare__bar{width:56px;height:6px;border-radius:3px;background:var(--revico-raised);overflow:hidden}.broker-compare__fill{display:block;height:100%;background:var(--series)}.broker-compare__muted{color:var(--revico-muted)}.chat-logs__count{font-size:12px;color:var(--revico-muted);font-variant-numeric:tabular-nums}.chat-logs__list{max-height:260px;overflow-y:auto}.chat-logs__empty,.chat-logs__loading{color:var(--revico-muted);font-size:13px;padding:8px 0}.chat-logs__item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--revico-border)}.chat-logs__item:last-child{border-bottom:none}.chat-logs__text{font-size:13px;color:var(--revico-text);line-height:1.4;overflow-wrap:anywhere}.chat-logs__date{font-size:11px;color:var(--revico-muted);white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.list-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.list-filter__search,.list-filter__select{width:100%;padding:7px 10px;font:inherit;font-size:13px;color:var(--revico-text);background:var(--revico-surface);border:1px solid var(--revico-control-border);border-radius:var(--radius-sm)}.list-filter__select{cursor:pointer}.list-filter__search::placeholder{color:var(--revico-muted)}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch__input{position:absolute;width:1px;height:1px;opacity:0}.switch__track{position:relative;width:32px;height:18px;flex-shrink:0;background:var(--revico-surface);border:1px solid var(--revico-control-border);border-radius:var(--radius-full);transition:background var(--transition-fast),border-color var(--transition-fast)}.switch__knob{position:absolute;top:2px;left:2px;width:12px;height:12px;background:var(--revico-muted);border-radius:50%;transition:transform var(--transition-fast),background var(--transition-fast)}.switch__input:checked+.switch__track{background:var(--revico-accent-soft);border-color:var(--revico-accent)}.switch__input:checked+.switch__track .switch__knob{transform:translate(14px);background:var(--revico-accent)}.switch__input:focus-visible+.switch__track{outline:2px solid var(--revico-accent);outline-offset:2px}.switch__text{font-size:13px;color:var(--revico-muted);transition:color var(--transition-fast)}.switch__input:checked~.switch__text{color:var(--revico-text)}.agent-table{width:100%;min-width:760px;border-collapse:collapse}.agent-table th{text-align:left;padding:12px 18px;font-size:12px;font-weight:500;color:var(--revico-muted);white-space:nowrap;border-bottom:1px solid var(--revico-border)}.agent-table td{padding:12px 18px;font-size:13px;vertical-align:top;border-bottom:1px solid var(--revico-border)}.agent-table tbody tr:last-child td{border-bottom:none}.agent-table tbody tr:hover td{background:var(--revico-raised)}.agent-cell{display:flex;align-items:center;gap:12px}.agent-cell__avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.agent-cell__avatar--placeholder{width:32px;height:32px;border-radius:50%;background:var(--revico-raised);border:1px solid var(--revico-border);flex-shrink:0}.agent-cell__name{font-weight:500;color:var(--revico-text);font-size:13px}.agent-cell__link{color:var(--revico-text);text-decoration:underline;text-decoration-color:var(--revico-control-border);text-underline-offset:3px;transition:text-decoration-color var(--transition-fast)}.agent-cell__link:hover{text-decoration-color:var(--revico-accent)}.agent-cell__properties{display:flex;flex-wrap:wrap;gap:6px}.agent-cell__property{padding:3px 10px;border:1px solid var(--revico-control-border);border-radius:var(--radius-full);background:none;color:var(--revico-text);font-family:inherit;font-size:12px;line-height:1.4;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.agent-cell__property:hover{background:var(--revico-accent-soft);border-color:var(--revico-accent)}.agent-cell__property-slug{margin-left:6px;color:var(--revico-muted);font-family:ui-monospace,monospace;font-size:11px}.general-chart{position:relative;height:360px}.general-pie-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}.general-chart__pie-wrap{position:relative;height:260px}.heatmap{container-type:inline-size}.heatmap__empty{color:var(--revico-muted);font-size:13px;padding:8px 0}.heatmap__layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:24px;align-items:start}@container (max-width: 800px){.heatmap__layout{grid-template-columns:minmax(0,1fr)}}:where(.heatmap__nav) button{font-family:inherit;color:inherit;cursor:pointer}.heatmap__hidden-label{width:auto;white-space:normal;margin-bottom:var(--space-md)}.heatmap__nav button:focus-visible{outline:2px solid var(--revico-accent);outline-offset:2px}.heatmap__stage{min-width:0}.heatmap__floor{margin-bottom:12px}.heatmap__floorplan{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}.heatmap__legend{display:flex;align-items:center;gap:8px;margin-top:8px}.heatmap__legend-label{font-size:11px;color:var(--revico-muted)}.heatmap__legend-bar{width:120px;height:8px;border-radius:4px;background:linear-gradient(to right,var(--revico-heat-1),var(--revico-heat-2),var(--revico-heat-3))}@media(max-width:899px){.projects{grid-template-columns:minmax(0,1fr)}.projects__list{position:static;max-height:none}.project-list{overflow:visible}.projects--detail-open .projects__list,.projects:not(.projects--detail-open) .projects__detail{display:none}.project-detail__back{display:inline-flex}}@media(max-width:719px){.main{padding:16px}.header{flex-direction:column;align-items:flex-start}.app-bar{gap:12px;padding:0 16px}.app-bar__product{display:none}.app-bar__logout-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.project-detail__hero{width:88px;height:60px}.metric-card__value{font-size:22px}}@media(max-width:599px){.app-bar{gap:8px}.app-bar__brand,.app-bar__link svg{display:none}.app-bar__nav{gap:0;overflow-x:auto;scrollbar-width:none}.app-bar__link{padding:0 8px}.app-bar__link--active:after{left:8px;right:8px;bottom:0}.app-bar__logout{padding:8px}}@media(max-width:519px){.project-detail__chart-wrap{height:240px}.general-chart{height:280px}}
