.login-container{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-card{background:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-3xl);max-width:440px;width:100%;margin:20px}.logo{text-align:center;margin-bottom:var(--space-2xl)}.logo h1{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.logo p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-base)}.logo-image{width:48px;height:48px;margin:0 auto var(--space-lg)}.login-content{text-align:center}.login-content h2{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.login-content>p{margin:0 0 var(--space-2xl) 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.google-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-md);width:100%;padding:14px var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition-normal)}.google-button:hover{background:var(--color-bg-tertiary);border-color:var(--color-accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}.google-button:active{transform:translateY(0)}.login-container .error-message{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);background:#ff3b301a;border:1px solid rgba(255,59,48,.2);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);text-align:left}.login-container .error-message h2{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-h4);color:var(--color-error)}.login-container .error-message p{margin:var(--space-sm) 0;font-size:var(--font-size-sm)}@media (max-width: 480px){.login-card{padding:var(--space-2xl) var(--space-xl)}.logo h1{font-size:var(--font-size-h2)}.login-content h2{font-size:var(--font-size-h3)}}.access-denied-container{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:linear-gradient(135deg,var(--color-bg-primary) 0%,#ebe5d9 100%)}.access-denied-card{max-width:520px;width:100%;background:#fffffff2;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-radius:var(--radius-xl);padding:var(--space-3xl) 40px;text-align:center;box-shadow:0 0 0 1px #0000000a,0 4px 8px #0000000a,0 16px 48px #00000014}.access-denied-icon{margin-bottom:24px;display:flex;justify-content:center;animation:scaleIn .4s cubic-bezier(.4,0,.2,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.access-denied-title{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-xl) 0;letter-spacing:-.02em}.access-denied-message{margin-bottom:var(--space-2xl)}.access-denied-message p{font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-secondary);margin:0 0 var(--space-lg) 0}.access-denied-message strong{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.user-info{background:var(--color-accent-light);border:1px solid rgba(221,65,50,.2);border-radius:var(--radius-lg);padding:var(--space-lg);margin:var(--space-xl) 0}.user-info p:first-child{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.user-email{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-family:var(--font-mono);word-break:break-all}.help-text{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-xl)!important}.access-denied-actions{margin-bottom:var(--space-xl)}.btn-sign-out{width:100%;padding:14px var(--space-xl);background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-normal);box-shadow:0 2px 8px #dd413233}.btn-sign-out:hover{background:var(--color-accent-hover);box-shadow:0 4px 12px #dd41324d;transform:translateY(-1px)}.btn-sign-out:active{transform:translateY(0);box-shadow:0 2px 6px #dd413233}.security-note{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.security-note svg{flex-shrink:0;color:var(--color-text-tertiary)}@media (max-width: 640px){.access-denied-card{padding:var(--space-2xl) var(--space-xl)}.access-denied-title{font-size:var(--font-size-h2)}.access-denied-message p{font-size:var(--font-size-base)}.btn-sign-out{padding:var(--space-md) 20px;font-size:var(--font-size-base)}}.language-switcher{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.language-switcher:hover{background:var(--color-bg-tertiary);border-color:var(--color-accent)}.language-flag{font-size:1.125rem;line-height:1}.language-code{letter-spacing:.025em}@media (max-width: 768px){.language-switcher{padding:.625rem .875rem;font-size:var(--font-size-base)}.language-flag{font-size:1.25rem}}.app-header--mobile{display:none}@media (max-width: 1023px){.app-header--mobile{display:block;position:sticky;top:0;z-index:var(--z-sticky);background:#f7f2e9f2;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--color-border-light)}.app-header__container{display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-lg);height:var(--header-height)}.app-header__logo{display:flex;align-items:center;text-decoration:none}.app-header__logo-img{height:32px;width:auto}.app-header__menu-btn{display:flex;align-items:center;justify-content:center;border:none;background:none;padding:var(--space-sm);cursor:pointer;color:var(--color-text-primary);border-radius:var(--radius-md);transition:background var(--transition-fast)}.app-header__menu-btn:hover{background:#0000000d}}.app-sidebar--desktop{display:none}@media (min-width: 1024px){.app-sidebar--desktop{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:#f7f2e9fa;border-right:1px solid var(--color-border-light);z-index:var(--z-sticky);overflow-y:auto;-webkit-overflow-scrolling:touch}body{padding-left:var(--sidebar-width)}}.app-sidebar--mobile{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;width:85%;max-width:320px;background:#fffffffa;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);z-index:var(--z-modal);box-shadow:var(--shadow-lg);animation:slideInFromRight .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.app-sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-sidebar__header{display:flex;align-items:center;justify-content:flex-end;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-light)}.app-sidebar__close{display:flex;align-items:center;justify-content:center;border:none;background:#0000000d;padding:var(--space-sm);cursor:pointer;color:var(--color-text-primary);border-radius:var(--radius-full);width:36px;height:36px;transition:all var(--transition-fast)}.app-sidebar__close:hover{background:#00000014}.app-sidebar__logo-section{padding:20px var(--space-lg)}.app-sidebar__logo{display:flex;align-items:center;text-decoration:none;transition:opacity var(--transition-fast)}.app-sidebar__logo:hover{opacity:.7}.app-sidebar__logo-img{height:36px;width:auto}.app-sidebar__divider{height:1px;background:var(--color-border-light);margin:var(--space-sm) var(--space-lg)}.app-sidebar__section-label{padding:var(--space-sm) var(--space-lg) var(--space-xs);font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.app-sidebar__links{display:flex;flex-direction:column;padding:var(--space-xs) var(--space-md);gap:2px}.app-sidebar__link{display:flex;align-items:center;gap:var(--space-md);padding:10px var(--space-md);color:var(--color-text-primary);text-decoration:none;font-size:14px;font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast);position:relative}.app-sidebar__link svg{flex-shrink:0;color:var(--color-text-secondary);transition:color var(--transition-fast)}.app-sidebar__link:hover{background:#0000000a;color:var(--color-text-primary)}.app-sidebar__link:hover svg{color:var(--color-text-primary)}.app-sidebar__link.active{background:#dd413214;color:var(--color-accent)}.app-sidebar__link.active svg{color:var(--color-accent)}.app-sidebar__link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--color-accent);border-radius:0 3px 3px 0}.app-sidebar__spacer{flex:1;min-height:var(--space-lg)}.app-sidebar__compact-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-top:1px solid var(--color-border-light);gap:var(--space-md)}.app-sidebar__user{display:flex;align-items:center;gap:10px;flex:1;min-width:0;cursor:default}.app-sidebar__user-avatar{width:28px;height:28px;border-radius:var(--radius-full);background:var(--color-accent);display:flex;align-items:center;justify-content:center;color:var(--color-text-inverse);font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);flex-shrink:0;overflow:hidden}.app-sidebar__user-avatar img{width:100%;height:100%;object-fit:cover}.app-sidebar__user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar__actions{display:flex;align-items:center;gap:var(--space-xs)}.app-sidebar__action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.app-sidebar__action-btn:hover{background:#0000000d;color:var(--color-text-primary)}.app-sidebar__action-btn--danger:hover{background:var(--color-badge-error-bg);color:var(--color-error)}@media (max-width: 1023px){.app-sidebar--mobile .app-sidebar__link{padding:14px var(--space-md);font-size:var(--font-size-base)}.app-sidebar--mobile .app-sidebar__compact-footer{padding:14px var(--space-lg)}.app-sidebar--mobile .app-sidebar__user-avatar{width:32px;height:32px;font-size:var(--font-size-xs)}.app-sidebar--mobile .app-sidebar__user-name{font-size:14px}.app-sidebar--mobile .app-sidebar__action-btn{width:36px;height:36px}}@media (max-width: 375px){.app-header__container{padding:0 var(--space-md)}.app-header__logo-img{height:28px}}.skeleton{background:linear-gradient(90deg,var(--color-border, #e8e8e8) 0%,var(--color-bg-tertiary, #f5f5f5) 50%,var(--color-border, #e8e8e8) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{display:flex;flex-direction:column;gap:var(--space-sm)}.skeleton-line{margin-bottom:var(--space-xs)}.skeleton-apartment-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-md)}.skeleton-card-header{display:flex;justify-content:space-between;align-items:center}.skeleton-card-details{display:flex;gap:var(--space-lg)}.skeleton-card-stats{display:flex;flex-direction:column;gap:var(--space-sm)}.skeleton-stat-row{display:flex;justify-content:space-between}.skeleton-card-footer{display:flex;justify-content:space-between;padding-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.skeleton-apartment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-lg);padding:var(--space-lg) 0}.skeleton-apartment-detail{padding:var(--space-xl);max-width:var(--container-max-width);margin:0 auto}.skeleton-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.skeleton-header-actions{display:flex;gap:var(--space-md)}.skeleton-info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.skeleton-info-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.skeleton-detail-sections{display:flex;flex-direction:column;gap:var(--space-2xl)}.skeleton-section{display:flex;flex-direction:column;gap:var(--space-lg)}.skeleton-viewings-page{display:flex;flex-direction:column;gap:var(--space-xl)}.skeleton-viewings-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-lg)}.skeleton-segmented-control{display:flex;gap:var(--space-xs);background:var(--color-border-light);padding:var(--space-xs);border-radius:10px}.skeleton-viewing-row{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);background:var(--color-bg-secondary);border-radius:10px;box-shadow:var(--shadow-sm)}.skeleton-viewing-header{display:flex;justify-content:space-between;align-items:center}.skeleton-viewings-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.skeleton-timeline-chart{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.skeleton-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.skeleton-chart-legend{display:flex;gap:var(--space-sm)}.skeleton-chart-area{height:calc(100% - 40px)}.skeleton-table{background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden}.skeleton-table-header{display:flex;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.skeleton-table-row{display:flex;gap:var(--space-lg);padding:var(--space-lg);border-bottom:1px solid var(--color-border-light)}.skeleton-table-row:last-child{border-bottom:none}.skeleton-timelines{padding:var(--space-xl)}.skeleton-filter-bar{display:flex;gap:var(--space-lg);margin-bottom:var(--space-xl)}.skeleton-timeline-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.skeleton-timeline-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.skeleton-timeline-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.skeleton-timeline-card-content{margin-bottom:var(--space-md)}.skeleton-timeline-card-footer{padding-top:var(--space-md);border-top:1px solid var(--color-border-light)}.skeleton-settings{padding:var(--space-xl);max-width:600px}.skeleton-title{margin-bottom:var(--space-xl)}.skeleton-form-section{display:flex;flex-direction:column;gap:20px;margin-bottom:var(--space-xl)}.skeleton-form-row{display:flex;flex-direction:column;gap:var(--space-sm)}.skeleton-monthly-targets{padding:var(--space-xl)}.skeleton-targets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-lg);margin-top:var(--space-xl)}.skeleton-target-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-md)}@media (prefers-color-scheme: dark){.skeleton{background:linear-gradient(90deg,#2a2a2a,#3a3a3a,#2a2a2a);background-size:200% 100%}.skeleton-apartment-card,.skeleton-info-card,.skeleton-viewing-row,.skeleton-timeline-chart,.skeleton-table,.skeleton-timeline-card{background:#1a1a1a}.skeleton-table-header{background:#2a2a2a;border-bottom-color:#333}.skeleton-table-row,.skeleton-card-footer,.skeleton-timeline-card-footer{border-color:#333}}@media (max-width: 768px){.skeleton-apartment-grid{grid-template-columns:1fr}.skeleton-info-cards{grid-template-columns:1fr 1fr}.skeleton-detail-header{flex-direction:column;align-items:flex-start;gap:var(--space-lg)}.skeleton-viewing-row{flex-wrap:wrap;gap:var(--space-md)}.skeleton-timeline-cards{grid-template-columns:1fr}}.apartments-container{max-width:1200px;margin:2rem auto 0;padding:0 2rem 2rem;position:relative}.apartments-container.apartments-loading .apartments-header p{opacity:0}.apartments-container.ready .apartments-header p{animation:fadeInCount .2s ease-out forwards}@keyframes fadeInCount{0%{opacity:0}to{opacity:1}}.apartments-header p,.filter-results{font-variant-numeric:tabular-nums;min-width:180px}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.sync-toast{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:#fff;color:var(--color-text-primary);border-radius:12px;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1001;animation:slideInUp .3s ease}.apartments-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.apartments-header-left{flex:1}.apartments-header h2{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);margin:0 0 .5rem;color:var(--color-text-primary)}.apartments-header p{font-size:1rem;color:var(--color-text-secondary);margin:0}.sync-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:10px;font-size:.875rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease;white-space:nowrap;outline:none}.sync-button:hover:not(:disabled){background:#00000008;border-color:#0003}.sync-button:active:not(:disabled){transform:scale(.98)}.sync-button:disabled{opacity:.6;cursor:not-allowed}.sync-button svg{flex-shrink:0}.sync-button svg.spinning{animation:spin 1s linear infinite}.filter-bar-compact{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.filter-bar-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.filter-dropdowns{display:flex;align-items:center;gap:.5rem}.filter-dropdown-wrapper{position:relative}.filter-dropdown-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;background:#fff;border:1.5px solid rgba(0,0,0,.12);border-radius:20px;font-size:.875rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-dropdown-btn:hover{border-color:#00000040;background:#00000005}.filter-dropdown-btn.has-active{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent)}.filter-dropdown-btn.open{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.filter-dropdown-btn .chevron{width:12px;height:12px;transition:transform .2s ease;opacity:.6}.filter-dropdown-btn.open .chevron{transform:rotate(180deg)}.filter-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--color-accent);color:#fff;border-radius:9px;font-size:.6875rem;font-weight:700;line-height:1}.filter-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;max-height:320px;overflow-y:auto;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 4px 20px #0000001f;z-index:100;padding:.5rem;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.filter-dropdown-menu .filter-checkbox{padding:.5rem .625rem;border-radius:8px;margin:0;transition:background .15s ease}.filter-dropdown-menu .filter-checkbox:hover{background:#0000000a;opacity:1}.mobile-filter-btn{display:none;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1.5px solid rgba(0,0,0,.12);border-radius:20px;font-size:.875rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease}.mobile-filter-btn:hover{border-color:#00000040}.mobile-filter-btn.has-active{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent)}.filter-chips-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:#f5f5f7;border:none;border-radius:16px;font-size:.8125rem;font-weight:500;color:var(--color-text-primary);cursor:default;transition:all .15s ease}.filter-chip:hover{background:#ebebed}.chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:#0000001a;border:none;border-radius:50%;color:var(--color-text-primary);cursor:pointer;transition:all .15s ease;font-size:10px;line-height:1}.chip-remove:hover{background:var(--color-accent);color:#fff}.clear-filters-btn{padding:.375rem .75rem;background:transparent;border:none;border-radius:16px;font-size:.8125rem;font-weight:500;color:var(--color-accent);cursor:pointer;transition:all .15s ease}.clear-filters-btn:hover{background:var(--color-accent-light)}.filter-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.filter-drawer-backdrop.open{opacity:1;visibility:visible}.filter-drawer{position:fixed;top:0;right:0;width:320px;max-width:85vw;height:100vh;height:100dvh;background:#fff;z-index:1000;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:-4px 0 20px #0000001a}.filter-drawer.open{transform:translate(0)}.filter-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(0,0,0,.08);flex-shrink:0}.filter-drawer-header h3{font-size:1.125rem;font-weight:600;margin:0;color:var(--color-text-primary)}.drawer-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#f5f5f7;border:none;border-radius:50%;color:var(--color-text-primary);cursor:pointer;transition:all .15s ease}.drawer-close-btn:hover{background:#e5e5e7}.filter-drawer-content{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1.5rem}.drawer-section{display:flex;flex-direction:column;gap:.625rem}.drawer-section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.filter-drawer-footer{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid rgba(0,0,0,.08);flex-shrink:0;background:#fff}.drawer-clear-btn{flex:1;padding:.75rem 1rem;background:#f5f5f7;border:none;border-radius:10px;font-size:.9375rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .15s ease}.drawer-clear-btn:hover{background:#e5e5e7}.drawer-apply-btn{flex:1;padding:.75rem 1rem;background:var(--color-accent);border:none;border-radius:10px;font-size:.9375rem;font-weight:600;color:var(--color-text-inverse);cursor:pointer;transition:all .15s ease}.drawer-apply-btn:hover{background:var(--color-accent-hover)}.filter-bar{display:none;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:#00000005;border-radius:12px;border:1px solid rgba(0,0,0,.06)}.filter-sections{display:flex;flex-wrap:wrap;gap:1.5rem}.sort-dropdown{position:relative}.sort-select{padding:.625rem 2.5rem .625rem .875rem;background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:10px;font-size:.9375rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;transition:border-color .2s ease,box-shadow .2s ease;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;min-width:180px}.sort-select:hover{border-color:#0003}.sort-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.filter-chips{display:flex;gap:.5rem;flex-wrap:wrap;flex:1}.filter-chip{padding:.5rem 1rem;background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:20px;font-size:.875rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease;white-space:nowrap}.filter-chip:hover{background:#00000008;border-color:#0003}.filter-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse);font-weight:600}.filter-chip.sold-chip.active{background:#6b7280;border-color:#6b7280;color:#fff}.filter-chip.sold-chip:hover:not(.active){background:#6b72801a;border-color:#9ca3af}.filter-chip.warning-chip.active{background:#f59e0b;border-color:#f59e0b;color:#fff}.filter-chip.warning-chip:hover:not(.active){background:#f59e0b1a;border-color:#fbbf24}.filter-section{display:flex;flex-direction:column;gap:.5rem;min-width:0}.filter-section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);white-space:nowrap}.filter-checkboxes{display:flex;flex-direction:column;gap:.375rem}.filter-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem 0;transition:opacity .15s ease}.filter-checkbox:hover{opacity:.8}.filter-checkbox input[type=checkbox]{width:16px;height:16px;border:1.5px solid rgba(0,0,0,.25);border-radius:4px;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;background:#fff;transition:all .15s ease;flex-shrink:0;position:relative}.filter-checkbox input[type=checkbox]:hover{border-color:var(--color-accent)}.filter-checkbox input[type=checkbox]:checked{background:var(--color-accent);border-color:var(--color-accent)}.filter-checkbox input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.filter-checkbox .checkbox-label{font-size:.8125rem;font-weight:500;color:var(--color-text-primary);white-space:nowrap}.filter-checkbox .checkbox-count{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);margin-left:auto;padding-left:.5rem}.filter-checkbox.warning input[type=checkbox]:checked{background:#f59e0b;border-color:#f59e0b}.filter-checkbox.warning .checkbox-label{color:#b45309}.filter-checkbox.sold input[type=checkbox]:checked{background:#6b7280;border-color:#6b7280}.filter-checkbox.sold .checkbox-label{color:#4b5563}.filter-controls{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.filter-results{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:1rem;padding:0 .25rem}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.no-results svg{stroke:var(--muted-text);opacity:.3;margin-bottom:1.5rem}.no-results h3{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.no-results p{font-size:.9375rem;color:var(--color-text-secondary);margin:0}.apartments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem}.apartment-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 2px 8px #0000000a,0 1px 2px #0000000f;border:1px solid rgba(0,0,0,.06);transition:all .2s ease-in-out;display:flex;flex-direction:column;gap:1rem}.apartment-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #00000014,0 2px 4px #0000000a}.apartment-card.clickable{cursor:pointer}.apartment-card.clickable:focus{outline:2px solid var(--accent);outline-offset:2px}.apartment-card.clickable:active{transform:translateY(-1px)}.apartment-card.sold{opacity:.75;background:#fafafa}.apartment-card.sold:hover{opacity:.9}.apartment-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.apartment-address{font-size:1.125rem;font-weight:600;margin:0;color:var(--color-text-primary);line-height:1.4;flex:1}.gmaps-link{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--color-bg-tertiary);color:var(--color-accent);transition:all .2s;flex-shrink:0}.gmaps-link:hover{background:var(--color-accent);color:#fff;transform:scale(1.05)}.gmaps-link svg{width:20px;height:20px}.apartment-details{display:flex;flex-direction:column;gap:.75rem}.detail-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.detail-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.detail-value{font-size:.9375rem;font-weight:500;color:var(--color-text-primary)}.contractor-name{display:flex;align-items:center;gap:6px;font-weight:500;color:#6e6e73!important}.contractor-name svg{flex-shrink:0;opacity:.7}.status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap}.status-completed{background:#34c75926;color:var(--color-success)}.status-almost-ready{background:#34c7591a;color:#0f766e}.status-in-progress{background:#ff950026;color:var(--color-warning)}.status-early{background:#007aff26;color:var(--color-info)}.status-booked{background:#5856d626;color:#5856d6}.status-sold{background:#8e8e9326;color:#8e8e93}.status-badge:not([class*=status-]){background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.error-message{background:#ff3b301a;color:var(--color-error);padding:1rem;border-radius:var(--radius-lg);text-align:center;font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.apartments-container .apartments-header p{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.budgets-section{display:flex;flex-direction:column}.time-budget,.cost-budget{display:flex;flex-direction:column;gap:.625rem;padding:.75rem 0;margin-top:.75rem;border-top:1px solid rgba(0,0,0,.08)}.cost-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.cost-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.cost-amounts{display:flex;align-items:baseline;gap:.25rem;font-variant-numeric:tabular-nums}.cost-spent{font-size:1rem;font-weight:700;color:var(--color-text-primary)}.cost-separator{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.cost-total{font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.timeline-dates{display:flex;justify-content:space-between;align-items:center;margin:.625rem 0}.timeline-date-start{color:var(--text-color);font-weight:600;font-size:.8125rem;text-align:left}.timeline-date-end{color:var(--text-color);font-weight:600;font-size:.8125rem;text-align:right}.cost-bar{width:100%;height:4px;background:#0000000f;border-radius:2px;overflow:hidden}.cost-fill{height:100%;border-radius:2px;transition:width .3s ease,background-color .3s ease}.cost-fill.good{background:var(--color-success)}.cost-fill.warning{background:var(--color-warning)}.cost-fill.over{background:var(--color-error)}.cost-fill.future-waiting{background:var(--color-info)}.cost-footer{display:flex;justify-content:space-between;align-items:center}.cost-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-success)}.cost-status.over{color:var(--color-error);font-weight:var(--font-weight-semibold)}.cost-status.awaiting{color:var(--color-info);font-weight:var(--font-weight-semibold)}.cost-percent{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.cost-budget.spent-only .cost-amounts{flex-direction:row;gap:.5rem;align-items:baseline}.cost-budget.spent-only .cost-label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.future-handover{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:linear-gradient(135deg,#e3f2fd,#f0f7ff);border:1.5px solid #2196f3;border-radius:8px;animation:slideIn .3s ease-out}.future-icon{font-size:1.5rem;line-height:1;flex-shrink:0}.future-text{flex:1}.future-title{font-size:.875rem;font-weight:600;color:#1565c0;margin-bottom:.25rem}.future-date{font-size:.8125rem;color:#1976d2}.future-countdown{font-weight:600}.missing-date-warning{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;margin-bottom:.5rem;background:linear-gradient(135deg,#fff3cd,#fff8e1);border:1.5px solid #ffc107;border-radius:8px;font-size:.8125rem;line-height:1.5;color:#856404;animation:slideIn .3s ease-out}.warning-icon{font-size:1.25rem;line-height:1;flex-shrink:0;margin-top:.125rem;cursor:help}.warning-text{flex:1}.warning-text strong{font-weight:600;color:#664d03}.time-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.time-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.time-dates{display:flex;align-items:baseline;gap:.25rem;font-variant-numeric:tabular-nums}.time-elapsed{font-size:1rem;font-weight:700;color:var(--color-text-primary)}.time-separator{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.time-total{font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.time-bar{width:100%;height:4px;background:#0000000f;border-radius:2px;overflow:hidden}.time-fill{height:100%;border-radius:2px;transition:width .3s ease,background-color .3s ease}.time-fill.good{background:var(--color-success)}.time-fill.warning{background:var(--color-warning)}.time-fill.over{background:var(--color-error)}.time-footer{display:flex;justify-content:space-between;align-items:flex-end}.time-footer-left{display:flex;flex-direction:column;gap:.25rem}.time-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-success)}.time-status.over{color:var(--color-error);font-weight:var(--font-weight-semibold)}.time-handover{font-size:.6875rem;font-weight:400;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.time-percent{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}@media (max-width: 1024px){.apartments-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.missing-date-warning{font-size:.75rem;padding:.625rem}.warning-icon{font-size:1rem}.future-handover{padding:.75rem;gap:.625rem}.future-icon{font-size:1.25rem}.future-title{font-size:.8125rem}.future-date{font-size:.75rem}}@media (max-width: 767px){.apartments-container{padding:0 1rem 2rem}.apartments-header{flex-direction:column;align-items:flex-start;gap:1rem}.apartments-header h2{font-size:1.5rem}.sync-button{width:100%;justify-content:center}.apartments-grid{grid-template-columns:1fr;gap:1rem}.apartment-card{padding:1.25rem}.apartment-address{font-size:1rem}.detail-item{flex-direction:column;align-items:flex-start;gap:.375rem}.filter-dropdowns{display:none}.mobile-filter-btn{display:inline-flex}.filter-bar-top{flex-wrap:wrap;gap:.75rem}.sort-dropdown{order:2;width:100%}.sort-select{width:100%;min-width:unset}.filter-chips-row{gap:.375rem}.filter-chip{font-size:.75rem;padding:.3rem .5rem}.chip-remove{width:14px;height:14px;font-size:9px}.clear-filters-btn{font-size:.75rem;padding:.3rem .5rem}.filter-bar{padding:.75rem;gap:.75rem}.filter-sections{flex-direction:column;gap:1rem}.filter-section{width:100%}.filter-checkboxes{flex-direction:row;flex-wrap:wrap;gap:.5rem 1rem}.filter-checkbox{padding:.125rem 0}.sync-indicator,.sync-toast{bottom:1rem;right:1rem;left:1rem;max-width:calc(100vw - 2rem);font-size:.8125rem}.timeline-date-start,.timeline-date-end{font-size:.75rem}}.contractor-label{display:inline-flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem .875rem;background:var(--color-bg-tertiary);border-radius:8px;font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.contractor-label svg{flex-shrink:0;color:var(--color-accent)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--color-text-secondary)}.empty-state svg{margin-bottom:1.5rem;color:var(--border)}.empty-state h3{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.empty-state p{font-size:.9375rem;line-height:1.5;max-width:400px;margin:.25rem 0}.empty-state-hint{color:var(--accent)!important;font-weight:500;margin-top:1rem!important}.contractor-filter{display:flex;align-items:center}.contractor-filter .sort-select{min-width:200px}.viewing-counts{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.viewing-badges{display:flex;align-items:center;gap:.5rem}.viewing-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:6px;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums;transition:all .2s ease;white-space:nowrap}.viewing-badge svg{flex-shrink:0}.viewing-badge .count{font-weight:700}.viewing-badge .label{font-weight:500;opacity:.85}.viewing-badge.past{background:linear-gradient(135deg,#e3f2fd,#f0f7ff);color:#1976d2;border:1px solid #90caf9}.viewing-badge.past:hover{background:linear-gradient(135deg,#d1e9ff,#e3f2fd);border-color:#64b5f6}.viewing-badge.future{background:linear-gradient(135deg,#e8f5e9,#f1f8f4);color:#388e3c;border:1px solid #81c784}.viewing-badge.future:hover{background:linear-gradient(135deg,#d7f0d9,#e8f5e9);border-color:#66bb6a}@media (max-width: 768px){.viewing-counts{flex-direction:column;align-items:flex-start;gap:.375rem}.viewing-badges{flex-wrap:wrap;gap:.375rem}.viewing-badge{font-size:.75rem;padding:.1875rem .5rem;gap:.25rem}.viewing-badge svg{width:10px;height:10px}}@media (max-width: 480px){.viewing-badge .label{display:none}.viewing-badge{min-width:2.5rem;justify-content:center}}.user-management{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.um-header{margin-bottom:2rem}.um-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 .5rem}.um-header p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.btn-add-user{margin-top:1rem;padding:.625rem 1.25rem;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal)}.btn-add-user:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 2px 8px #dd41324d}.error-box{background:#fff5f5;border:1.5px solid #fc3c44;color:#d70015;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1.5rem;font-size:.9375rem}.success-box{background:#f0fdf4;border:1.5px solid #34c759;color:#059669;padding:1rem 1.25rem;border-radius:12px;margin-bottom:1.5rem;font-size:.9375rem}.filter-tabs{display:flex;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(0,0,0,.1);flex-wrap:wrap}.filter-tab{padding:.5rem 1rem;background:transparent;border:none;border-radius:8px;font-size:.9375rem;font-weight:500;color:#1d1d1f;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.btn-add-user-tab{padding:.5rem 1rem;background:var(--color-bg-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-accent);cursor:pointer;transition:all var(--transition-normal);margin-left:auto;white-space:nowrap}.btn-add-user-tab:hover{background:#dd41320a;border-color:var(--color-accent)}.add-user-form-compact{background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.form-header-compact{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.form-header-compact h3{font-size:1.125rem;font-weight:600;color:#1d1d1f;margin:0}.btn-close{background:transparent;border:none;font-size:1.5rem;color:#86868b;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.btn-close:hover{background:#0000000f;color:#1d1d1f}.form-compact{display:flex;gap:.75rem;flex-wrap:wrap}.form-compact input[type=email],.form-compact input[type=text]{flex:1;min-width:200px;padding:.625rem .875rem;border:1.5px solid rgba(0,0,0,.1);border-radius:8px;font-size:.9375rem;transition:all .2s}.form-compact input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.btn-submit-compact{padding:.625rem 1.25rem;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.btn-submit-compact:hover{background:var(--color-accent-hover)}.users-table{display:flex;flex-direction:column;gap:.75rem}.user-row{background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:12px;overflow:hidden;transition:all .2s cubic-bezier(.4,0,.2,1)}.user-row:hover{border-color:#00000026;box-shadow:0 2px 8px #0000000a}.user-row-main{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr 1.2fr auto;gap:1rem;padding:1rem 1.25rem;align-items:center}.user-cell{display:flex;align-items:center}.user-identity{display:flex;gap:.75rem;align-items:center}.user-avatar-small{width:2.5rem;height:2.5rem;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0;overflow:hidden}.user-avatar-small img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column;gap:.25rem;min-width:0}.user-name-row{font-size:.9375rem;font-weight:500;color:#1d1d1f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email-row{font-size:.8125rem;color:#86868b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-type{justify-content:flex-start}.type-badge{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500;white-space:nowrap}.type-badge.internal{background:#007aff1a;color:var(--color-info)}.type-badge.external{background:#af52de1a;color:#af52de}.user-role-cell{justify-content:flex-start}.role-badge-compact{padding:.375rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:500;white-space:nowrap}.role-badge-compact.super-admin{background:linear-gradient(135deg,gold,#ffed4e);color:#1d1d1f}.role-badge-compact.admin{background:#ff95001a;color:#ff9500}.role-badge-compact.user{background:#8e8e931a;color:#8e8e93}.role-badge-compact.payment_manager{background:#34c7591a;color:#34c759}.role-selector{padding:.5rem .75rem;background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:8px;font-size:.8125rem;font-weight:500;color:#1d1d1f;cursor:pointer;transition:all .2s;min-width:140px}.role-selector:hover{border-color:var(--color-accent)}.role-selector:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.role-badges{display:flex;flex-wrap:wrap;gap:.375rem}.role-checkboxes{display:flex;flex-direction:column;gap:.5rem}.role-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8125rem;color:#1d1d1f;-webkit-user-select:none;user-select:none}.role-checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-accent);cursor:pointer}.role-checkbox input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.role-checkbox span{font-weight:500}.user-activity{display:flex;flex-direction:column;gap:.25rem;justify-content:flex-start}.activity-label{font-size:.75rem;color:#86868b;text-transform:uppercase;letter-spacing:.5px}.activity-date{font-size:.875rem;color:#1d1d1f;font-weight:500}.activity-pending{font-size:.8125rem;color:#86868b;font-style:italic}.user-actions-cell{justify-content:flex-end;gap:.5rem}.btn-action-compact{padding:.5rem .875rem;background:var(--color-bg-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-accent);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.btn-action-compact:hover{background:#dd41320a;border-color:var(--color-accent)}.btn-action-danger-compact{padding:.5rem .875rem;background:#fff;border:1.5px solid rgba(215,0,21,.3);border-radius:8px;font-size:.8125rem;font-weight:500;color:#d70015;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-action-danger-compact:hover{background:#d700150a;border-color:#d70015}.user-row-contractors{padding:.75rem 1.25rem 1rem;background:#00000005;border-top:1px solid rgba(0,0,0,.06);display:flex;gap:.75rem;align-items:flex-start}.contractors-label{font-size:.8125rem;color:#86868b;font-weight:500;padding-top:.375rem;white-space:nowrap}.contractors-content{display:flex;flex-wrap:wrap;gap:.5rem;flex:1}.contractor-tag-compact{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem;background:#fff;border:1.5px solid rgba(0,0,0,.1);border-radius:6px;font-size:.8125rem;color:#1d1d1f}.contractor-tag-compact button{background:transparent;border:none;color:#86868b;font-size:1rem;cursor:pointer;padding:0;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.contractor-tag-compact button:hover{background:#0000000f;color:#1d1d1f}.add-contractor-compact{padding:.375rem .625rem;background:var(--color-bg-secondary);border:1.5px dashed var(--color-border);border-radius:6px;font-size:var(--font-size-sm);color:var(--color-accent);cursor:pointer;transition:all var(--transition-normal)}.add-contractor-compact:hover{border-color:var(--color-accent);background:#dd41320a}.add-contractor-compact:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.user-row-notes{padding:.75rem 1.25rem 1rem;background:#ffcc000d;border-top:1px solid rgba(255,204,0,.2);font-size:.8125rem;color:#1d1d1f}.user-row-notes strong{color:#f5a623;font-weight:600}.loading-state,.empty-state{padding:3rem 1.5rem;text-align:center;color:#86868b;font-size:1rem}@media (max-width: 1200px){.user-row-main{grid-template-columns:2fr 1fr 1fr 1.2fr auto;gap:.75rem}.user-type{display:none}}@media (max-width: 1024px){.user-row-main{grid-template-columns:2fr 1fr auto;gap:.75rem}.user-type,.user-activity{display:none}}@media (max-width: 767px){.user-management{padding:1.5rem 1rem}.um-header h1{font-size:1.75rem}.filter-tabs{gap:.5rem}.filter-tab,.btn-add-user-tab{font-size:.875rem;padding:.5rem .75rem}.btn-add-user-tab{width:100%;margin-left:0;margin-top:.5rem}.add-user-form-compact{padding:1rem}.form-compact{flex-direction:column}.form-compact input{width:100%;min-width:100%}.btn-submit-compact{width:100%}.user-row-main{grid-template-columns:1fr;gap:.75rem;padding:1rem}.user-identity,.user-role-cell{grid-column:1}.user-actions-cell{grid-column:1;justify-content:flex-start}.btn-action-compact,.btn-action-danger-compact{width:100%;text-align:center}.user-row-contractors{flex-direction:column;gap:.5rem;padding:.75rem 1rem}.contractors-content{flex-direction:column}.contractor-tag-compact,.add-contractor-compact{width:100%}.user-row-notes{padding:.75rem 1rem}}@media (max-width: 480px){.user-avatar-small{width:2rem;height:2rem;font-size:.75rem}.user-name-row{font-size:.875rem}.user-email-row{font-size:.75rem}}.admin-panel{min-height:calc(100vh - 52px);background:var(--color-bg-primary);padding:var(--space-3xl) var(--space-xl)}.admin-header{max-width:var(--container-width);margin:0 auto 40px}.admin-header h1{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);letter-spacing:-.02em}.admin-header p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-base)}.admin-content{max-width:var(--container-width);margin:0 auto}@media (max-width: 768px){.admin-header{padding:var(--space-xl) var(--space-lg)}.admin-header h1{font-size:var(--font-size-h1-mobile)}.admin-header p{font-size:var(--font-size-sm)}}.settings-container{max-width:900px;margin:0 auto;padding:2rem}.settings-header{margin-bottom:2.5rem}.settings-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 .5rem}.settings-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.settings-section{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--space-2xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.section-header h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 .5rem}.section-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.6;margin:0}.info-banner{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;margin-top:1rem;background:linear-gradient(135deg,#e3f2fd,#f0f7ff);border:1.5px solid #2196f3;border-radius:10px;font-size:.875rem;color:#1565c0}.info-icon{font-size:1.125rem;flex-shrink:0}.error-banner{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;margin-bottom:1.5rem;background:linear-gradient(135deg,#ffebee,#fff5f5);border:1.5px solid var(--color-error);border-radius:10px;font-size:.875rem;color:#c62828;animation:slideIn .3s ease-out}.error-icon{font-size:1.125rem;flex-shrink:0}.success-banner{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;margin-bottom:1.5rem;background:linear-gradient(135deg,#e8f5e9,#f1f8f4);border:1.5px solid var(--color-success);border-radius:10px;font-size:.875rem;color:#2e7d32;animation:slideIn .3s ease-out}.success-icon{font-size:1.125rem;font-weight:700;flex-shrink:0}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.budgets-grid{display:flex;flex-direction:column;gap:.75rem}.budget-header{display:grid;grid-template-columns:2fr 1fr;gap:1rem;padding:.75rem 1rem;font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.budget-row{display:grid;grid-template-columns:2fr 1fr;gap:1rem;padding:1rem;background:var(--color-bg-tertiary);border-radius:10px;align-items:center;transition:background-color .2s ease}.budget-row:hover{background:#ececee}.budget-range{display:flex;align-items:center;gap:.5rem}.budget-range input{width:80px;padding:.5rem .75rem;font-size:.9375rem;font-weight:500;color:var(--color-text-primary);border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);transition:border-color .2s ease,box-shadow .2s ease}.budget-range input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.budget-range input:disabled{background:#f9f9f9;color:var(--color-text-secondary);cursor:not-allowed}.range-separator{color:var(--color-text-secondary);font-weight:500;font-size:1rem}.range-unit{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.budget-duration{display:flex;align-items:center;gap:.5rem}.budget-duration input{width:80px;padding:.5rem .75rem;font-size:.9375rem;font-weight:600;color:var(--color-accent);border:1.5px solid var(--color-accent);border-radius:8px;background:var(--color-bg-secondary);transition:border-color .2s ease,box-shadow .2s ease}.budget-duration input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd413226}.budget-duration input:disabled{background:#f9f9f9;color:var(--color-text-secondary);border-color:var(--color-border);cursor:not-allowed}.duration-unit{color:var(--color-text-secondary);font-size:.875rem;font-weight:500}.settings-actions{display:flex;gap:.75rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-border)}.save-button{padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;color:var(--color-bg-secondary);background:var(--color-accent);border:none;border-radius:10px;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.save-button:hover:not(:disabled){background:#c23828}.save-button:active:not(:disabled){transform:scale(.98)}.save-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button{padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-tertiary);border:1.5px solid var(--color-border);border-radius:10px;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.cancel-button:hover:not(:disabled){background:#e8e8ed}.cancel-button:active:not(:disabled){transform:scale(.98)}.cancel-button:disabled{opacity:.5;cursor:not-allowed}.loading{text-align:center;padding:3rem;color:var(--color-text-secondary);font-size:1rem}.pricing-rules-grid{display:flex;flex-direction:column;gap:2rem}.rules-group{padding:1.5rem;background:var(--color-bg-tertiary);border-radius:12px}.rules-group-title{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .5rem}.rules-group-description{font-size:.875rem;color:var(--color-text-secondary);margin:0 0 1.25rem;line-height:1.5}.pricing-rule-row{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--color-bg-secondary);border-radius:8px;margin-bottom:.5rem;border:1px solid var(--color-border)}.pricing-rule-row:last-child{margin-bottom:0}.rule-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.rule-label{font-size:.9375rem;font-weight:500;color:var(--color-text-primary)}.rule-description{font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.rule-input{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.rule-input input{width:70px;padding:.5rem .75rem;font-size:.9375rem;font-weight:600;color:var(--color-accent);border:1.5px solid var(--color-accent);border-radius:8px;background:var(--color-bg-secondary);text-align:center;transition:border-color .2s ease,box-shadow .2s ease}.rule-input input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd413226}.rule-input input:disabled{background:#f9f9f9;color:var(--color-text-secondary);border-color:var(--color-border);cursor:not-allowed}.rule-unit{font-size:.875rem;color:var(--color-text-secondary);font-weight:500;min-width:60px}@media (max-width: 768px){.settings-container{padding:1rem}.settings-header h1{font-size:1.75rem}.settings-section{padding:1.5rem}.section-header h2{font-size:1.25rem}.budget-header{font-size:.75rem}.budget-row{padding:.875rem}.budget-range input,.budget-duration input{width:70px;padding:.5rem;font-size:.875rem}.settings-actions{flex-direction:column}.save-button,.cancel-button{width:100%}.pricing-rule-row{flex-direction:column;align-items:flex-start;gap:.75rem}.rule-input{width:100%;justify-content:flex-start}.rule-input input{width:80px}.rules-group{padding:1rem}.rules-group-title{font-size:1rem}}.email-recipients-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.empty-message{color:var(--color-text-secondary);font-style:italic;padding:1rem;text-align:center}.recipient-row{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;transition:background-color .2s ease}.recipient-row:hover{background:var(--color-bg-tertiary)}.recipient-info{display:flex;align-items:center;gap:.5rem}.recipient-email{font-weight:500;color:var(--color-text-primary)}.recipient-name{color:var(--color-text-secondary);font-size:.875rem}.recipient-actions{display:flex;gap:.5rem}.delete-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:1.25rem;cursor:pointer;transition:all .2s ease}.delete-btn:hover{border-color:var(--color-error);background:var(--color-error);color:var(--color-bg-secondary)}.add-recipient-form{padding:1.5rem;background:var(--color-bg-tertiary);border-radius:12px}.add-recipient-form h3{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.add-recipient-form .form-row{display:flex;gap:.75rem;align-items:center}.user-select{flex:1;min-width:250px;padding:.625rem .875rem;font-size:.9375rem;border:1.5px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-secondary);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.user-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.all-users-added{color:var(--color-text-secondary);font-style:italic;margin:0;padding:.5rem 0}.add-button{padding:.625rem 1.25rem;font-size:.9375rem;font-weight:600;color:var(--color-bg-secondary);background:var(--color-success);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s ease,transform .1s ease;white-space:nowrap}.add-button:hover{background:#2e9c50}.add-button:active{transform:scale(.98)}.add-button:disabled{background:var(--color-text-secondary);cursor:not-allowed;opacity:.6}@media (max-width: 768px){.add-recipient-form .form-row{flex-direction:column;align-items:stretch}.user-select{width:100%;min-width:unset}.add-button{width:100%}.recipient-row{flex-direction:column;align-items:flex-start;gap:.75rem}.recipient-actions{width:100%;justify-content:flex-end}}.work-stages-section{margin-top:2rem}.percentage-indicator{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:8px;margin-bottom:1.5rem;font-weight:600}.percentage-indicator.valid{background:#34c7591a;color:var(--color-success);border:1px solid var(--color-success)}.percentage-indicator.invalid{background:#ff3b301a;color:var(--color-error);border:1px solid var(--color-error)}.percentage-warning{font-weight:400;font-size:.875rem;opacity:.8}.holdback-info{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:#007aff0d;border:1px solid rgba(0,122,255,.2);border-radius:8px;margin-bottom:1.5rem;font-size:.875rem;color:var(--color-text-secondary)}.holdback-info .info-icon{width:18px;height:18px;min-width:18px;display:flex;align-items:center;justify-content:center;background:#007aff33;color:var(--primary-blue, #007aff);border-radius:50%;font-size:10px;font-weight:700}.fixed-amount-label{display:inline-block;padding:.375rem .625rem;background:#ff95001a;color:var(--warning, #ff9500);border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.work-stages-table{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.work-stages-header{display:grid;grid-template-columns:50px 1fr 1fr 1fr 70px 120px 60px 50px;gap:.75rem;padding:.75rem 1rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border)}.work-stage-row{display:grid;grid-template-columns:50px 1fr 1fr 1fr 70px 120px 60px 50px;gap:.75rem;padding:.75rem 1rem;background:var(--color-bg-tertiary);border-radius:8px;align-items:center;transition:background-color .2s ease}.work-stage-row:hover{background:#ececee}.work-stage-row.inactive{opacity:.5}.work-stage-row input[type=text],.work-stage-row input[type=number]{width:100%;padding:.5rem .625rem;font-size:.875rem;border:1.5px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);transition:border-color .2s ease,box-shadow .2s ease}.work-stage-row input[type=text]:focus,.work-stage-row input[type=number]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px #dd41321a}.work-stage-row input:disabled{background:#f9f9f9;color:var(--color-text-secondary);cursor:not-allowed}.work-stage-row input[type=checkbox]{width:18px;height:18px;cursor:pointer}.work-stage-row input[type=checkbox]:disabled{cursor:not-allowed}.col-percentage input{text-align:center;font-weight:600;color:var(--color-accent);border-color:var(--color-accent)}.col-percentage input:disabled{color:var(--color-text-secondary);border-color:var(--color-border)}.order-buttons{display:flex;flex-direction:column;gap:2px}.order-btn{width:24px;height:20px;padding:0;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s ease}.order-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:#dd41320d}.order-btn:disabled{opacity:.3;cursor:not-allowed}.holdback-group{display:flex;align-items:center;gap:.5rem}.holdback-amount{width:70px!important;padding:.375rem .5rem!important;font-size:.8125rem!important}.col-actions .delete-btn{width:28px;height:28px;font-size:1rem}.add-stage-form{padding:1.5rem;background:var(--color-bg-tertiary);border-radius:12px;margin-bottom:1.5rem}.add-stage-form h3{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.add-stage-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1rem}.add-stage-fields .form-group{display:flex;flex-direction:column;gap:.375rem}.add-stage-fields .form-group label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary)}.add-stage-fields .form-group input{padding:.625rem .75rem;font-size:.9375rem;border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);transition:border-color .2s ease,box-shadow .2s ease}.add-stage-fields .form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.add-stage-fields .checkbox-inline{flex-direction:row;align-items:center;gap:.5rem}.add-stage-fields .checkbox-inline label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9375rem;color:var(--color-text-primary)}.add-stage-fields .checkbox-inline input[type=checkbox]{width:18px;height:18px;cursor:pointer}.add-stage-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--color-border)}.add-stage-btn{padding:.75rem 1.25rem;font-size:.9375rem;font-weight:600;color:var(--color-success);background:#34c7591a;border:1.5px solid var(--color-success);border-radius:10px;cursor:pointer;transition:all .2s ease}.add-stage-btn:hover{background:var(--color-success);color:var(--color-bg-secondary)}.buyer-settings-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.form-row-inline{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.buyer-settings-form .form-group{display:flex;flex-direction:column;gap:.375rem}.buyer-settings-form .form-group label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary)}.buyer-settings-form .form-group input{padding:.625rem .875rem;font-size:.9375rem;border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);transition:border-color .2s ease,box-shadow .2s ease}.buyer-settings-form .form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.email-input,.name-input{padding:.625rem .875rem;font-size:.9375rem;border:1.5px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary);transition:border-color .2s ease,box-shadow .2s ease}.email-input{flex:2}.name-input{flex:1}.email-input:focus,.name-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.toggle-btn{padding:.375rem .75rem;font-size:.75rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.toggle-btn.active{background:#34c75926;color:var(--color-success);border:1px solid var(--color-success)}.toggle-btn:not(.active){background:#aeaeb226;color:var(--color-text-secondary);border:1px solid var(--color-border)}.toggle-btn:hover{opacity:.8}.recipient-inactive{font-size:.75rem;padding:.25rem .5rem;background:#aeaeb226;color:var(--color-text-secondary);border-radius:4px;margin-left:.5rem}@media (max-width: 768px){.form-row-inline{grid-template-columns:1fr}.email-input,.name-input{flex:1;width:100%}}@media (max-width: 1024px){.work-stages-header,.work-stage-row{grid-template-columns:40px 1fr 1fr 1fr 60px 100px 50px 40px;gap:.5rem;font-size:.75rem}}@media (max-width: 768px){.work-stages-header{display:none}.work-stage-row{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.work-stage-row>span{display:flex;align-items:center;gap:.5rem;width:100%}.work-stage-row>span:before{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;min-width:60px}.work-stage-row .col-order:before{content:"#"}.work-stage-row .col-name-ru:before{content:"RU"}.work-stage-row .col-name-en:before{content:"EN"}.work-stage-row .col-name-et:before{content:"ET"}.work-stage-row .col-percentage:before{content:"%"}.work-stage-row .col-holdback:before{content:"Hold"}.work-stage-row .col-active:before{content:"Active"}.work-stage-row .col-actions:before{content:""}.order-buttons{flex-direction:row}.add-stage-fields{grid-template-columns:1fr}.add-stage-actions{flex-direction:column}.add-stage-actions button{width:100%}}.address-link{cursor:pointer;transition:color .2s ease}.address-link:hover{color:var(--accent, #DD4132);text-decoration:underline}.address-link:focus-visible{outline:2px solid var(--accent, #DD4132);outline-offset:2px;border-radius:2px}.timelines-container{max-width:1200px;width:100%;margin:0 auto;padding:2rem}.timelines-header{margin-bottom:3rem}.timelines-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 .5rem}.timelines-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.timelines-container .segmented-control{width:fit-content;margin-left:auto;margin-right:auto;margin-bottom:var(--space-2xl)}.timelines-container .segment{display:flex;align-items:center;gap:var(--space-sm);padding:10px 20px}.timeline-section{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 1px 3px #0000000d;animation:fadeIn .3s ease-in;width:100%;box-sizing:border-box}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.section-header{margin-bottom:2rem}.section-header-flex{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem}.section-header-left{flex:1}.section-header-right{flex-shrink:0}.section-header h2,.section-header-left h2{font-size:1.5rem;font-weight:600;color:#1d1d1f;margin:0 0 .5rem}.section-description{font-size:.9rem;color:#6e6e73;margin:0;line-height:1.5}.total-cash-card,.total-count-card{background:linear-gradient(135deg,#0071e3,#0077ed);padding:1.25rem 1.5rem;border-radius:12px;box-shadow:0 4px 12px #0071e326;min-width:180px;text-align:right}.total-count-card{background:linear-gradient(135deg,#34c759,#30d158);box-shadow:0 4px 12px #34c75926}.total-cash-label{font-size:.8rem;color:#ffffffe6;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.total-cash-amount{font-size:2rem;font-weight:700;color:#fff;line-height:1}.loading,.empty-state{text-align:center;padding:3rem;color:#6e6e73}.empty-state p{margin:0;font-size:.95rem}.cashflow-timeline{display:flex;flex-direction:column;gap:1.5rem}.cashflow-month{border:1px solid #e5e5e7;border-radius:10px;overflow:hidden;transition:all .2s ease}.cashflow-month:hover{border-color:#d1d1d6;box-shadow:0 2px 8px #0000000d}.month-header{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1rem;background:#f5f5f7;border-bottom:1px solid #e5e5e7}.month-date{font-size:1rem;font-weight:600;color:#1d1d1f}.month-total{font-size:1.1rem;font-weight:600;color:#0071e3}.month-apartments{padding:.5rem 0}.cashflow-item{padding:.5rem 1rem;border-bottom:1px solid #f5f5f7;transition:background .15s ease}.cashflow-item:last-child{border-bottom:none}.cashflow-item:hover{background:#fafafa}.cashflow-item.over-budget{background:#fef2f2;border-left:3px solid #ef4444}.cashflow-item.over-budget:hover{background:#fee2e2}.cashflow-top-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem;gap:1rem}.cashflow-address{font-size:.9rem;font-weight:600;color:#1d1d1f;display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;flex:1}.cashflow-due-date,.cashflow-area{color:#6e6e73;font-size:.8rem;font-weight:500;white-space:nowrap}.over-budget-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;background:#ef4444;color:#fff;border-radius:4px;font-size:.7rem;font-weight:600;white-space:nowrap}.budget-per-sqm{color:#6e6e73;font-size:.75rem;font-weight:400;margin-left:.25rem}.cashflow-budget-line{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.budget-item{display:inline-flex;align-items:center;gap:.375rem}.budget-separator{color:#d1d1d6;font-weight:300}.budget-label{color:#6e6e73;font-weight:400;font-size:.8rem}.budget-value{color:#1d1d1f;font-weight:600;font-size:.85rem}.budget-value.paid{color:#34c759}.budget-value.over-budget-value{color:#ef4444;font-weight:700}.budget-value.remainder-value{color:#0071e3;font-weight:700}.readiness-container{border-radius:10px}.readiness-timeline{display:flex;flex-direction:column;gap:0}.readiness-item{border-bottom:1px solid #f5f5f7;padding:.75rem 1rem;transition:all .15s ease;background:#fff}.readiness-item:last-child{border-bottom:none}.readiness-item:hover{background:#fafafa}.readiness-item.completed{background:#f0fdf4;border-color:#bbf7d0}.readiness-item.overdue{background:#fef2f2;border-color:#fecaca}.readiness-item.future{background:#f0f9ff;border-color:#bfdbfe}.readiness-header-compact{margin-bottom:.5rem}.readiness-title-line{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.375rem}.readiness-address{font-size:.9rem;font-weight:600;color:#1d1d1f;flex:1}.readiness-status{display:flex;gap:.375rem;flex-shrink:0}.time-budget{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.status-badge{padding:.25rem .625rem;border-radius:5px;font-size:.7rem;font-weight:600;white-space:nowrap}.status-badge.completed{background:#22c55e;color:#fff}.status-badge.overdue{background:#ef4444;color:#fff}.status-badge.future{background:#3b82f6;color:#fff}.status-badge.in-progress{background:#f59e0b;color:#fff}.status-badge.booked{background:#8b5cf6;color:#fff}.readiness-timeline-bar{margin-bottom:.75rem}.readiness-timeline-bar-compact{display:flex;flex-direction:column;gap:.375rem}.timeline-dates-inline{display:flex;align-items:center;gap:.625rem;font-size:.8rem;color:#6e6e73;flex-wrap:wrap}.date-item{white-space:nowrap}.date-separator{color:#d1d1d6;font-weight:300}.progress-percent-inline{font-weight:600;color:#1d1d1f;font-size:.8rem}.timeline-dates{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;color:#6e6e73}.date-label{font-size:.875rem}.progress-bar{height:8px;background:#e5e5e7;border-radius:4px;overflow:hidden}.progress-bar-compact{height:6px;background:#e5e5e7;border-radius:3px;overflow:hidden}.progress-fill{height:100%;transition:width .3s ease;border-radius:4px}.progress-fill.completed{background:#22c55e}.progress-fill.overdue{background:#ef4444}.progress-fill.in-progress{background:#0071e3}.readiness-footer{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.renovation-status{color:#6e6e73;font-style:italic}.progress-percent{font-weight:600;color:#1d1d1f}.readiness-item-apple{position:relative;display:flex;background:#fff;border-radius:12px;margin-bottom:12px;transition:all .25s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:0 1px 3px #0000000a}.readiness-item-apple:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.status-accent{width:4px;flex-shrink:0;transition:width .2s ease}.status-completed .status-accent{background:linear-gradient(180deg,#34c759,#30d158)}.status-overdue .status-accent{background:linear-gradient(180deg,#ff3b30,#ff453a)}.status-in-progress .status-accent{background:linear-gradient(180deg,#007aff,#0a84ff)}.status-future .status-accent{background:linear-gradient(180deg,#8e8e93,#98989d)}.readiness-item-apple:hover .status-accent{width:6px}.item-content{flex:1;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.item-address{font-size:17px;font-weight:600;color:#1d1d1f;margin:0;line-height:1.3;letter-spacing:-.01em}.item-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.meta-badge{padding:4px 10px;background:#f5f5f7;color:#1d1d1f;border-radius:6px;font-size:12px;font-weight:600;letter-spacing:.01em}.meta-info{font-size:13px;color:#86868b;font-weight:500}.timeline-info{margin:4px 0}.timeline-dates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:20px}.date-group{display:flex;flex-direction:column;gap:4px}.date-label{font-size:11px;font-weight:600;color:#86868b;text-transform:uppercase;letter-spacing:.06em}.date-value{font-size:15px;font-weight:600;color:#1d1d1f;letter-spacing:-.01em}.progress-group .date-value{font-size:20px;font-weight:700}.status-completed .progress-group .date-value{color:#34c759}.status-overdue .progress-group .date-value{color:#ff3b30}.status-in-progress .progress-group .date-value{color:#007aff}.progress-container{margin:8px 0 4px}.readiness-item-apple:hover .progress-glow{opacity:.5;box-shadow:0 0 12px currentColor}.status-completed .progress-indicator{background:linear-gradient(90deg,#34c759,#30d158)}.status-overdue .progress-indicator{background:linear-gradient(90deg,#ff3b30,#ff453a)}.status-in-progress .progress-indicator{background:linear-gradient(90deg,#007aff,#0a84ff)}.item-footer{padding-top:8px;border-top:1px solid #f5f5f7}.status-text{font-size:13px;font-weight:500;color:#86868b;display:flex;align-items:center;gap:6px}.status-completed .status-text{color:#34c759}.status-overdue .status-text{color:#ff3b30}.delay-badge{margin-left:8px;padding:3px 8px;background:#ff3b3026;color:#ff3b30;border-radius:5px;font-size:12px;font-weight:600;white-space:nowrap}@media (max-width: 768px){.timelines-container{padding:1rem}.timelines-header{margin-bottom:2rem}.timelines-header h1{font-size:1.5rem}.timeline-section{padding:1.25rem;margin-bottom:1.5rem}.section-header h2{font-size:1.25rem}.month-header{padding:.5rem .875rem;flex-direction:column;align-items:flex-start;gap:.375rem}.cashflow-item{padding:.5rem .875rem}.cashflow-top-line{flex-direction:column;align-items:flex-start;gap:.25rem}.cashflow-due-date{font-size:.75rem}.cashflow-budget-line{flex-wrap:wrap;gap:.5rem}.readiness-item{padding:.625rem .875rem}.readiness-title-line{flex-direction:column;align-items:flex-start;gap:.5rem}.readiness-status,.time-budget{flex-wrap:wrap}.timeline-dates-inline{font-size:.75rem}.timeline-dates{flex-direction:column;gap:.25rem}.segmented-control{width:100%;margin-left:0;margin-right:0}.segment{flex:1;justify-content:center;padding:10px 12px;font-size:13px}.segment svg{display:none}.section-header-flex{flex-direction:column;gap:1.5rem}.total-cash-card,.total-count-card{width:100%;text-align:center}.item-content{padding:16px 20px;gap:14px}.item-address{font-size:15px}.timeline-dates-grid{grid-template-columns:1fr 1fr;gap:16px}.date-value{font-size:14px}.progress-group .date-value{font-size:18px}.item-header{flex-direction:column;gap:10px}.item-meta{align-self:flex-start}}.contractor-filter-row{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--light-gray, #f5f5f5);border-radius:12px}.filter-label{font-size:.875rem;font-weight:600;color:var(--text, #2c2c2c);white-space:nowrap}.contractor-select{flex:1;max-width:400px;padding:.5rem .875rem;font-size:.875rem;border:1px solid var(--border, #d1d5db);border-radius:8px;background-color:#fff;color:var(--text, #2c2c2c);cursor:pointer;transition:all .2s}.contractor-select:hover{border-color:var(--accent, #DD4132)}.contractor-select:focus{outline:none;border-color:var(--accent, #DD4132);box-shadow:0 0 0 3px #dd41321a}@media (max-width: 768px){.contractor-filter-row{flex-direction:column;align-items:stretch;gap:.75rem}.contractor-select{max-width:100%}}.sold-history-section{margin-top:3rem;border-top:2px solid var(--border, #d1d5db);padding-top:2rem}.section-header-with-toggle{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.toggle-history-button{padding:.625rem 1.25rem;background:#fff;border:1.5px solid var(--border, #d1d5db);border-radius:8px;font-size:.875rem;font-weight:600;color:var(--text, #2c2c2c);cursor:pointer;transition:all .2s}.toggle-history-button:hover{border-color:var(--accent, #DD4132);color:var(--accent, #DD4132);background:#dd41320d}.sold-apartments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;margin-top:1.5rem}.sold-apartment-card{background:#fff;border:1px solid var(--border, #d1d5db);border-radius:12px;padding:1.5rem;transition:all .2s}.sold-apartment-card:hover{box-shadow:0 4px 12px #00000014;border-color:var(--accent, #DD4132)}.sold-card-header{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border, #d1d5db)}.sold-address{font-size:1rem;font-weight:600;color:var(--text, #2c2c2c);margin:0;flex:1}.sold-contractor-badge{display:inline-block;padding:.25rem .75rem;background:var(--light-gray, #f5f5f5);border-radius:6px;font-size:.75rem;font-weight:500;color:var(--muted-text, #666);white-space:nowrap}.sold-dates{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.75rem;background:var(--light-gray, #f5f5f5);border-radius:8px}.sold-date-item{display:flex;flex-direction:column;gap:.25rem;flex:1}.date-label{font-size:.75rem;font-weight:500;color:var(--muted-text, #666);text-transform:uppercase;letter-spacing:.5px}.date-value{font-size:.875rem;font-weight:600;color:var(--text, #2c2c2c)}.date-arrow{font-size:1.25rem;color:var(--muted-text, #666);flex-shrink:0}.payment-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.payment-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f0f0f0}.payment-row:last-child{border-bottom:none}.payment-label{font-size:.875rem;color:var(--muted-text, #666)}.payment-value{font-size:.9375rem;font-weight:600;color:var(--text, #2c2c2c)}.variance-row{padding:.75rem;border-radius:6px;margin-top:.5rem;border:none}.variance-row.overpaid{background:#ff3b301a}.variance-row.underpaid{background:#34c7591a}.variance-row.on-budget{background:#007aff1a}.variance-value{font-size:1rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.variance-row.overpaid .variance-value{color:#ff3b30}.variance-row.underpaid .variance-value{color:#34c759}.variance-row.on-budget .variance-value{color:#007aff}.variance-percent{font-size:.8125rem;font-weight:600;opacity:.8}.variance-badge{padding:.625rem 1rem;border-radius:8px;font-size:.875rem;font-weight:600;text-align:center}.variance-badge.overpaid{background:#ff3b3026;color:#ff3b30}.variance-badge.underpaid{background:#34c75926;color:#34c759}.variance-badge.on-budget{background:#007aff26;color:#007aff}@media (max-width: 768px){.section-header-with-toggle{flex-direction:column;align-items:stretch;gap:1rem}.toggle-history-button{width:100%}.sold-apartments-grid{grid-template-columns:1fr}.sold-dates{flex-direction:column;gap:.75rem}.date-arrow{transform:rotate(90deg)}}.targets-container{max-width:1200px;width:100%;margin:0 auto;padding:2rem}.targets-header{margin-bottom:2rem}.targets-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 .5rem;letter-spacing:-.02em}.targets-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.targets-container .segmented-control{width:fit-content;margin-bottom:var(--space-xl)}.targets-container .section-header{margin-bottom:var(--space-xl)}.targets-container .section-header h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 .25rem;letter-spacing:-.01em}.targets-container .section-header p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.targets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:2rem}.target-card{position:relative;display:flex;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1)}.target-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.target-accent{width:4px;flex-shrink:0;transition:width .2s ease}.target-card.success .target-accent{background:linear-gradient(180deg,#34c759,#30d158)}.target-card.warning .target-accent{background:linear-gradient(180deg,#ff9500,#ff9f0a)}.target-card.danger .target-accent{background:linear-gradient(180deg,#ff3b30,#ff453a)}.target-card:hover .target-accent{width:6px}.target-content{flex:1;padding:24px;display:flex;flex-direction:column;gap:16px}.target-header{display:flex;align-items:center;gap:12px}.target-icon{font-size:24px}.target-header h3{font-size:17px;font-weight:600;color:#1d1d1f;margin:0;letter-spacing:-.01em}.target-value{font-size:36px;font-weight:700;color:#1d1d1f;letter-spacing:-.02em;line-height:1}.target-goal{font-size:24px;font-weight:500;color:#86868b}.target-progress{margin:8px 0}.progress-track{height:8px;background:#f5f5f7;border-radius:10px;overflow:visible;position:relative}.progress-indicator{height:100%;border-radius:10px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;overflow:visible}.target-card.success .progress-indicator{background:linear-gradient(90deg,#34c759,#30d158)}.target-card.warning .progress-indicator{background:linear-gradient(90deg,#ff9500,#ff9f0a)}.target-card.danger .progress-indicator{background:linear-gradient(90deg,#ff3b30,#ff453a)}.progress-glow{position:absolute;top:0;right:0;width:100%;height:100%;border-radius:10px;opacity:0;transition:opacity .3s ease}.target-card:hover .progress-glow{opacity:.5;box-shadow:0 0 12px currentColor}.target-percent{font-size:20px;font-weight:700;color:#1d1d1f;letter-spacing:-.01em}.target-card.success .target-percent{color:#34c759}.target-card.warning .target-percent{color:#ff9500}.target-card.danger .target-percent{color:#ff3b30}.target-details{margin-top:8px;padding-top:16px;border-top:1px solid #f5f5f7;display:flex;flex-direction:column;gap:8px}.detail-item{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:4px 0}.detail-address{color:#1d1d1f;font-weight:500;flex:1}.detail-date{color:#86868b;font-weight:400;margin-left:12px}.historical-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.month-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1)}.month-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.month-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:16px}.month-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.month-card-header h3{font-size:17px;font-weight:600;color:#1d1d1f;margin:0;letter-spacing:-.01em}.owned-badge{font-size:12px;font-weight:600;color:#6e6e73;background:#f5f5f7;padding:4px 10px;border-radius:6px;white-space:nowrap}.owned-badge-inline{font-size:14px;font-weight:500;color:#6e6e73;margin-left:12px}.projected-badge{font-size:11px;font-weight:600;color:#5856d6;background:#5856d61f;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.projected-badge-inline{font-size:12px;font-weight:600;color:#5856d6;background:#5856d61f;padding:3px 10px;border-radius:5px;margin-left:10px;text-transform:uppercase;letter-spacing:.03em}.month-card.future-month,.month-detail-card.future-month{border:2px dashed #5856d6;background:linear-gradient(135deg,#fafbff,#f5f5ff)}.month-stats{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.targets-stat-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f5f5f7;border-radius:8px}.stat-label{font-size:14px;font-weight:500;color:#1d1d1f}.targets-container .stat-value{font-size:14px;font-weight:700;padding:4px 10px;border-radius:6px}.targets-container .stat-value.success{background:#34c75926;color:#34c759}.targets-container .stat-value.warning{background:#ff950026;color:#ff9500}.targets-container .stat-value.danger{background:#ff3b3026;color:#ff3b30}.month-card-footer{padding-top:12px;border-top:1px solid #f5f5f7}.overall-status{display:flex;justify-content:center}.status-badge{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:600;text-align:center}.status-badge.targets-4{background:#34c759;color:#fff}.status-badge.targets-3{background:#34c75926;color:#248a3d}.status-badge.targets-2,.status-badge.targets-1{background:#ff950026;color:#cc7a00}.status-badge.targets-0{background:#ff3b3026;color:#ff3b30}.status-badge.success{background:#34c759;color:#fff}.status-badge.partial{background:#f5f5f7;color:#86868b}.all-data-section{display:flex;flex-direction:column;gap:20px}.month-detail-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1)}.month-detail-card:hover{box-shadow:0 4px 16px #00000014}.month-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px}.month-detail-header h3{font-size:20px;font-weight:600;color:#1d1d1f;margin:0;letter-spacing:-.01em}.month-summary{display:flex;gap:8px;flex-wrap:wrap}.summary-badge{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600}.summary-badge.success{background:#34c75926;color:#34c759}.summary-badge.warning{background:#ff950026;color:#ff9500}.summary-badge.danger{background:#ff3b3026;color:#ff3b30}.month-detail-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}.detail-section h4{font-size:15px;font-weight:600;color:#1d1d1f;margin:0 0 12px;letter-spacing:-.01em}.detail-list{display:flex;flex-direction:column;gap:8px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f5f5f7;border-radius:8px;font-size:13px;transition:background .15s ease}.list-item:hover{background:#e5e5e7}.item-date{color:#86868b;font-weight:500;margin-left:12px;white-space:nowrap}.stat-values{display:flex;align-items:center;gap:8px}.stat-scheduled{font-size:12px;font-weight:500;color:#007aff;font-style:italic}.scheduled-indicator{font-weight:500;opacity:.7;font-style:italic}.scheduled-header{font-size:13px;font-weight:600;color:#86868b;margin:12px 0 8px;font-style:italic}.scheduled-list .list-item{background:#f0f7ff;border-left:3px solid #007aff}.scheduled-list .list-item:hover{background:#e5f0fa}.list-item.scheduled{background:#f0f7ff;border-left:3px solid #007aff;color:#555;font-style:italic}.list-item.scheduled:hover{background:#e5f0fa}.list-item.scheduled .item-date{color:#007aff}.sync-indicator{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:#000000d9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:#fff;border-radius:12px;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1000;animation:slideInUp .3s ease}.sync-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.sync-toast{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:#fff;color:#1d1d1f;border-radius:12px;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000026;z-index:1001;animation:slideInUp .3s ease}.sync-toast svg{flex-shrink:0}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.targets-container{padding:1rem}.targets-header h1{font-size:1.5rem}.segmented-control{width:100%;justify-content:stretch}.segment{flex:1;padding:8px 12px;font-size:.85rem}.targets-grid{grid-template-columns:1fr;gap:16px}.target-content{padding:20px}.target-value{font-size:32px}.historical-grid{grid-template-columns:1fr}.month-detail-header{flex-direction:column;align-items:flex-start}.month-detail-body{grid-template-columns:1fr}.sync-indicator,.sync-toast{left:1rem;right:1rem;bottom:1rem}}.stats-section{display:flex;flex-direction:column;gap:24px;margin-top:.5rem}.stats-block{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1)}.stats-block:hover{box-shadow:0 4px 16px #00000014}.stats-block-header{margin-bottom:20px}.stats-block-header h3{font-size:17px;font-weight:600;color:#1d1d1f;margin:0 0 4px;letter-spacing:-.01em}.stats-block-description{font-size:14px;color:#86868b;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{background:#f5f5f7;border-radius:12px;padding:20px;text-align:center;transition:all .2s ease}.stat-card:hover{background:#e5e5e7}.stat-card-label{font-size:12px;font-weight:600;color:#86868b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.stat-card-value{font-size:36px;font-weight:700;color:#1d1d1f;letter-spacing:-.02em;line-height:1;margin-bottom:4px}.stat-card-comparison{font-size:13px;color:#86868b;margin-bottom:8px}.stat-card-change{display:inline-block;font-size:14px;font-weight:700;padding:4px 10px;border-radius:6px}.stat-card-change.positive{background:#34c75926;color:#34c759}.stat-card-change.negative{background:#ff3b3026;color:#ff3b30}.stat-card-change.neutral{background:#f5f5f7;color:#86868b}.projection-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.projection-card{background:#f5f5f7;border-radius:12px;padding:20px}.projection-card.projected{border:2px dashed #5856d6;background:linear-gradient(135deg,#fafbff,#f5f5ff)}.projection-card h4{font-size:14px;font-weight:600;color:#1d1d1f;margin:0 0 12px;display:flex;align-items:center;gap:8px}.projection-badge{font-size:11px;font-weight:600;color:#5856d6;background:#5856d61f;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.projection-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px}.projection-metric{display:flex;justify-content:space-between;font-size:14px}.projection-metric-label{color:#86868b}.projection-metric-value{font-weight:600;color:#1d1d1f}.year-progress{margin-top:16px}.year-progress-label{display:flex;justify-content:space-between;font-size:13px;color:#86868b;margin-bottom:8px}.year-progress-track{height:8px;background:#f5f5f7;border-radius:10px;overflow:hidden}.year-progress-fill{height:100%;background:linear-gradient(90deg,#5856d6,#af52de);border-radius:10px;transition:width .6s cubic-bezier(.4,0,.2,1)}.year-progress-status{margin-top:12px;text-align:center}.progress-status-badge{display:inline-block;padding:6px 14px;border-radius:8px;font-size:12px;font-weight:600}.progress-status-badge.on-track{background:#34c75926;color:#34c759}.progress-status-badge.behind{background:#ff950026;color:#ff9500}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.portfolio-card{background:#f5f5f7;border-radius:12px;padding:20px;text-align:center}.portfolio-card-value{font-size:32px;font-weight:700;color:#1d1d1f;letter-spacing:-.02em;margin-bottom:4px}.portfolio-card-label{font-size:13px;color:#86868b;font-weight:500}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.projection-grid,.portfolio-grid{grid-template-columns:1fr}.stat-card-value{font-size:28px}.stats-block{padding:20px}}.viewings-page-container{max-width:1200px;width:100%;margin:0 auto;padding:2rem}.viewings-header{margin-bottom:2rem}.viewings-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 .5rem;letter-spacing:-.02em}.viewings-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.viewings-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem}.viewings-controls-left{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:1rem;flex-wrap:nowrap}.viewings-page-container .segmented-control{margin:0}.viewings-count-badge{display:inline-flex;align-items:center;padding:6px var(--space-md);background:var(--color-badge-info-bg);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-info)}.viewings-filter select{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-normal);min-width:200px}.viewings-filter select:hover{border-color:var(--color-accent)}.viewings-filter select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.section-header{margin-bottom:1rem}.section-header h2{font-size:1.25rem;font-weight:600;color:#1d1d1f;margin:0;letter-spacing:-.01em;display:flex;align-items:center;gap:.5rem}.section-count{font-size:.875rem;font-weight:500;color:#007aff;background:#007aff1a;padding:2px 8px;border-radius:6px}.viewings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-bottom:2rem}.viewing-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:16px}.viewing-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.viewing-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.viewing-datetime{display:flex;align-items:center;gap:8px}.datetime-icon{font-size:1.25rem}.datetime-text{font-size:1rem;font-weight:600;color:#1d1d1f}.viewing-badges{display:flex;flex-wrap:wrap;gap:6px}.badge{padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-confirmed{background:#34c75926;color:#34c759}.badge-cancelled{background:#ff3b3026;color:#ff3b30}.badge-tentative{background:#ff950026;color:#ff9500}.badge-default{background:#f5f5f7;color:#86868b}.badge-zcal{background:#007aff1a;color:#007aff}.badge-manual{background:#5856d61f;color:#5856d6}.badge-other{background:#f5f5f7;color:#86868b}.viewing-card-body{display:flex;flex-direction:column;gap:12px}.viewing-apartment{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f5f5f7;border-radius:8px;flex-wrap:wrap}.viewing-apartment .label{font-size:.8rem;font-weight:600;color:#86868b}.apartment-link{color:#007aff;text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s ease}.apartment-link:hover{color:#0051d5;text-decoration:underline}.apartment-area{font-size:.85rem;color:#86868b;font-style:italic}.no-match{color:#ff3b30;font-weight:500;font-size:.9rem}.viewing-client-info{display:flex;flex-direction:column;gap:6px}.client-row{display:flex;align-items:baseline;gap:8px;font-size:.875rem}.client-label{color:#86868b;font-weight:500;flex-shrink:0}.client-value{color:#1d1d1f;font-weight:400}.client-link{color:#007aff;text-decoration:none;transition:color .2s ease}.client-link:hover{color:#0051d5;text-decoration:underline}.viewing-title{font-size:.9rem;color:#86868b;line-height:1.5;padding-top:8px;border-top:1px solid #f5f5f7}.viewing-notes{padding-top:12px;border-top:1px solid #f5f5f7}.viewing-notes .label{font-size:.8rem;font-weight:600;color:#86868b;margin-bottom:4px}.viewing-notes p{font-size:.875rem;color:#1d1d1f;line-height:1.5;margin:0}.viewing-card-footer{padding-top:12px;border-top:1px solid #f5f5f7}.attendee-status{font-size:.8rem;color:#86868b;font-style:italic}.loading,.empty-state{text-align:center;padding:4rem 2rem;color:#86868b;font-size:1rem}.viewings-group{margin-bottom:2rem}@media (max-width: 768px){.viewings-page-container{padding:1rem}.viewings-header h1{font-size:1.5rem}.viewings-controls,.viewings-controls-left{flex-direction:column;align-items:stretch;gap:.75rem}.segmented-control{width:100%;justify-content:stretch}.segment{flex:1;padding:8px 12px;font-size:.85rem;text-align:center}.viewings-count-badge{text-align:center;justify-content:center}.viewings-filter{width:100%}.viewings-filter select{width:100%;min-width:0;font-size:16px}.viewings-grid{grid-template-columns:1fr;gap:12px}.viewing-card{padding:16px}.viewing-card-header{flex-direction:column;gap:8px}.section-header h2{font-size:1.125rem}}.timeline-chart-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--color-border)}.timeline-filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap}.timeline-filter{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) .875rem;background:var(--color-bg-tertiary);border:1.5px solid transparent;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal)}.timeline-filter:hover{background:#0000000f;color:var(--color-text-primary)}.timeline-filter.active{background:var(--color-bg-secondary);border-color:var(--color-accent);color:var(--color-accent);font-weight:var(--font-weight-semibold)}.filter-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.timeline-chart-svg{width:100%;display:block}.chart-grid-line{stroke:var(--color-border);stroke-width:1}.chart-price-line{fill:none;stroke:var(--color-accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-axis-label{font-size:11px;fill:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.chart-axis-label.viewings-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px}.chart-hover-line{stroke-width:1;stroke-dasharray:4 4;opacity:.5}.event-marker-circle{transition:all var(--transition-fast)}.event-marker.hovered .event-marker-circle{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.event-marker-icon{pointer-events:none;-webkit-user-select:none;user-select:none}.event-tooltip rect{filter:drop-shadow(0 4px 12px rgba(0,0,0,.15))}.cluster-marker-circle{transition:all var(--transition-fast)}.cluster-marker.hovered .cluster-marker-circle{filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}.cluster-badge{transition:all var(--transition-fast);stroke:#fff;stroke-width:1.5}.cluster-marker.hovered .cluster-badge{stroke-width:2}.cluster-tooltip rect{filter:drop-shadow(0 4px 16px rgba(0,0,0,.25))}.timeline-legend{display:flex;flex-wrap:wrap;gap:var(--space-lg);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.legend-marker{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700;flex-shrink:0}.timeline-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) var(--space-2xl);text-align:center;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.timeline-chart-empty svg{color:var(--color-text-secondary);opacity:.3;margin-bottom:var(--space-lg)}.timeline-chart-empty p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.price-chart-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--color-border)}.price-chart-svg{width:100%;height:auto;max-height:200px}.chart-area{opacity:1}.chart-line{fill:none;stroke:var(--color-accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:var(--color-accent);stroke:#fff;stroke-width:2;cursor:pointer;transition:all var(--transition-fast)}.chart-point.active{fill:var(--color-accent-hover)}.chart-tooltip-line{stroke:var(--color-accent);stroke-width:1;stroke-dasharray:4 4;opacity:.5}.chart-tooltip-bg{fill:#000000e6;filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}.chart-tooltip-price{fill:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.chart-tooltip-date{fill:#ffffffb3;font-size:10px}.chart-legend{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-lg);padding-top:.75rem;border-top:1px solid var(--color-border)}.chart-legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.chart-legend-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent)}.chart-legend-change{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.chart-legend-change.down{color:var(--color-success)}.chart-legend-change.up{color:var(--color-error)}.price-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) var(--space-2xl);text-align:center;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.price-chart-empty svg{color:var(--color-text-secondary);opacity:.3;margin-bottom:var(--space-lg)}.price-chart-empty p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}@media (max-width: 768px){.timeline-chart-container,.price-chart-container{padding:var(--space-lg)}.timeline-filters{gap:var(--space-sm)}.timeline-filter{padding:var(--space-sm) .625rem;font-size:var(--font-size-xs)}.timeline-legend{gap:.75rem}.legend-item{font-size:var(--font-size-xxs)}.legend-marker{width:16px;height:16px;font-size:9px}}.apartment-detail-page{min-height:100vh;background:var(--color-bg-primary)}.apartment-detail-container{max-width:1000px;margin:0 auto;padding:2rem}.apartment-detail-loading,.apartment-detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.apartment-detail-page .loading-spinner{width:40px;height:40px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.apartment-detail-error h2{font-size:var(--font-size-h2);margin-bottom:var(--space-sm);color:var(--color-text-primary)}.apartment-detail-error p{color:var(--color-text-secondary);margin-bottom:1.5rem}.detail-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.back-button{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:var(--color-bg-secondary);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-normal)}.back-button:hover{background:var(--color-bg-tertiary);border-color:#0003}.back-link{display:inline-flex;align-items:center;gap:var(--space-sm);padding:.75rem 1.5rem;background:var(--color-accent);color:var(--color-text-inverse);text-decoration:none;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:background var(--transition-normal)}.back-link:hover{background:var(--color-accent-hover);color:var(--color-text-inverse)}.detail-title{flex:1}.detail-title h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0;line-height:1.3}.detail-title p{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:.25rem 0 0}.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.info-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.375rem}.info-label{font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.info-value{font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.info-value.highlight{color:var(--color-accent)}.info-value-small{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.info-date{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.price-change{display:inline-flex;align-items:center;gap:.125rem;font-size:.875rem;font-weight:600;margin-left:.5rem;padding:.125rem .375rem;border-radius:4px}.price-change.down{color:#16a34a;background:#16a34a1a}.price-change.up{color:#dc2626;background:#dc26261a}.info-link{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--font-size-sm);color:var(--color-accent);text-decoration:none;font-weight:var(--font-weight-medium);margin-top:.25rem}.info-link:hover{text-decoration:underline}.info-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:8px;font-size:.8125rem;font-weight:600;width:fit-content}.info-badge.status-sold{background:#f3f4f6;color:#6b7280}.info-badge.status-booked{background:#e0e7ff;color:#4338ca}.info-badge.status-completed{background:#d1fae5;color:#065f46}.info-badge.status-in-progress{background:#fef3c7;color:#92400e}.info-badge.status-early{background:#dbeafe;color:#1e40af}.detail-section{margin-bottom:2rem}.detail-section h2{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 1rem}.viewings-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--color-border)}.viewings-group{margin-bottom:1.5rem}.viewings-group:last-child{margin-bottom:0}.viewings-group-title{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:.75rem}.viewings-group-toggle{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:var(--space-sm) 0;width:100%;text-align:left}.viewings-group-toggle:hover{color:var(--color-text-primary)}.group-dot{width:8px;height:8px;border-radius:50%}.group-dot.upcoming{background:#22c55e}.group-dot.past{background:#6b7280}.toggle-icon{margin-left:auto;transition:transform .2s ease}.toggle-icon.open{transform:rotate(180deg)}.viewings-list{display:flex;flex-direction:column;gap:.75rem}.viewing-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.viewing-item.upcoming{background:#f0fdf4;border:1px solid #86efac}.viewing-item.past{opacity:.8}.viewing-item.cancelled{opacity:.6}.viewing-status{font-size:1rem;font-weight:700;flex-shrink:0;width:20px;text-align:center}.viewing-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.viewing-datetime{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.viewing-client{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.viewing-contact{color:var(--color-text-secondary);opacity:.8}.viewing-cancelled{color:#ef4444;font-style:italic}.ad-history-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--color-border)}.current-ad{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(0,0,0,.06)}.ad-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.ad-status{display:inline-flex;padding:.25rem .625rem;border-radius:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.ad-status.active{background:#d1fae5;color:#065f46}.ad-link,.past-ad-link{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--font-size-sm);color:var(--color-accent);text-decoration:none;font-weight:var(--font-weight-medium);word-break:break-all}.ad-link:hover,.past-ad-link:hover{text-decoration:underline}.ad-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.ad-detail{display:flex;flex-direction:column;gap:.125rem}.ad-detail-label{font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.ad-detail-value{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.ad-detail-value.highlight{font-weight:var(--font-weight-bold);color:var(--color-accent)}.past-ads-toggle{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:var(--space-sm) 0;width:100%;text-align:left}.past-ads-toggle:hover{color:var(--color-text-primary)}.past-ads-list{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.past-ad-item{padding:1rem;background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.past-ad-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem;flex-wrap:wrap}.ad-deleted{font-size:.75rem;color:#ef4444;font-weight:500}.past-ad-summary{display:flex;align-items:center;gap:1rem;font-size:var(--font-size-base);color:var(--color-text-secondary)}.past-ad-lifespan{background:#0000000f;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.no-data{color:var(--color-text-secondary);font-size:var(--font-size-base);text-align:center;padding:2rem}@media (max-width: 768px){.apartment-detail-container{padding:1rem}.detail-header{flex-direction:column;align-items:flex-start;gap:1rem}.detail-title h1{font-size:1.375rem}.info-cards{grid-template-columns:1fr 1fr;gap:.75rem}.info-card{padding:1rem}.info-value{font-size:1.25rem}.viewings-container,.ad-history-container{padding:1rem}.ad-details{grid-template-columns:1fr}.past-ad-header{flex-direction:column;align-items:flex-start;gap:.5rem}.demo-toggle{width:100%;text-align:center}}@media (max-width: 480px){.info-cards{grid-template-columns:1fr}}.ad-events-table-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1rem;border:1px solid var(--color-border);overflow-x:auto}.ad-events-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ad-events-table th{text-align:left;padding:.75rem var(--space-sm);border-bottom:2px solid var(--color-border);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.ad-events-table td{padding:.625rem var(--space-sm);border-bottom:1px solid var(--color-border-light);vertical-align:middle}.event-row:last-child td{border-bottom:none}.event-row:hover{background:#00000005}.event-badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:4px;font-weight:600;font-size:.75rem;white-space:nowrap}.event-badge.created{background:#d1fae5;color:#065f46}.event-badge.deleted{background:#fee2e2;color:#991b1b}.event-badge.bumped{background:#fef3c7;color:#92400e}.event-badge.refreshed{background:#ede9fe;color:#5b21b6}.event-badge.price_change{background:#fce7f3;color:#9d174d}.price-change-badge{display:inline-flex;margin-left:.5rem;padding:.125rem .375rem;border-radius:3px;font-size:.6875rem;font-weight:600}.price-change-badge.up{background:#fee2e2;color:#dc2626}.price-change-badge.down{background:#d1fae5;color:#16a34a}.price-cell{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap}.previous-price{display:block;font-size:var(--font-size-xxs);color:var(--color-text-secondary);font-weight:var(--font-weight-normal);margin-top:.125rem}.date-cell{color:var(--color-text-primary);white-space:nowrap;font-size:var(--font-size-xs)}.date-cell.recorded{color:var(--color-text-secondary);font-style:italic}.ad-link-small{color:var(--color-accent);text-decoration:none;font-size:var(--font-size-xxs);word-break:break-all}.ad-link-small:hover{text-decoration:underline}@media (max-width: 768px){.ad-events-table-container{padding:.5rem}.ad-events-table{font-size:.75rem}.ad-events-table th,.ad-events-table td{padding:.5rem .375rem}.event-badge{padding:.125rem .375rem;font-size:.6875rem}}.recommendations-main{max-width:1200px;width:100%;margin:0 auto;padding:2rem}.recommendations-header{margin-bottom:2rem}.recommendations-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 .5rem;letter-spacing:-.02em}.recommendations-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.recommendations-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--color-text-secondary)}.recommendations-main .loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.recommendations-segmented{margin-bottom:2rem}.recommendations-main .segment--increase.active{background:var(--color-success);color:var(--color-text-inverse);box-shadow:none}.recommendations-main .segment--decrease.active{background:var(--color-error);color:var(--color-text-inverse);box-shadow:none}.recommendations-main .segment--hold.active{background:#8e8e93;color:var(--color-text-inverse);box-shadow:none}.recommendations-main .segment--bump.active{background:var(--color-warning);color:var(--color-text-inverse);box-shadow:none}.recommendations-empty{text-align:center;padding:60px 20px;color:var(--color-text-secondary)}.recommendations-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.recommendation-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;transition:box-shadow var(--transition-normal);display:flex;flex-direction:column}.recommendation-card:hover{box-shadow:var(--shadow-md)}.recommendation-card.recommendation-increase{border-left:4px solid var(--color-success)}.recommendation-card.recommendation-decrease{border-left:4px solid var(--color-error)}.recommendation-card.recommendation-hold{border-left:4px solid #8e8e93}.recommendation-card.recommendation-bump{border-left:4px solid var(--color-warning)}.recommendation-card.recommendation-decrease_and_bump{border-left:4px solid #ea580c}.recommendation-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.recommendation-type{display:flex;align-items:center;gap:var(--space-sm);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.3px}.recommendation-type-increase{color:var(--color-success)}.recommendation-type-decrease{color:var(--color-error)}.recommendation-type-hold{color:#8e8e93}.recommendation-type-bump{color:var(--color-warning)}.recommendation-type-decrease_and_bump{color:#ea580c}.recommendation-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700}.recommendation-type-increase .recommendation-icon{background:#34c75926}.recommendation-type-decrease .recommendation-icon{background:#ff3b3026}.recommendation-type-hold .recommendation-icon{background:#8e8e9326}.recommendation-type-bump .recommendation-icon{background:#f59e0b26}.recommendation-type-decrease_and_bump .recommendation-icon{background:#ea580c26}.confidence-badge{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.confidence-high{background:#34c75926;color:var(--color-success)}.confidence-medium{background:#ff950026;color:var(--color-warning)}.confidence-low{background:#8e8e9326;color:#636366}.recommendation-body{padding:var(--space-lg);flex:1}.recommendation-address{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-decoration:none;display:block;margin-bottom:var(--space-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recommendation-address:hover{color:var(--color-accent)}.recommendation-pricing{margin-bottom:12px}.price-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.price-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.price-current{font-size:1.125rem;font-weight:600;color:#6e6e73}.price-arrow{font-size:1rem;color:#8e8e93}.price-suggested{font-size:1.125rem;font-weight:700}.price-suggested.price-increase{color:var(--color-success)}.price-suggested.price-decrease{color:var(--color-error)}.price-diff{font-size:.8125rem;font-weight:500}.price-diff-increase{color:#248a3d}.price-diff-decrease{color:#d70015}.bump-indicator{display:inline-flex;align-items:center;padding:.25rem .625rem;background:#f59e0b26;color:#b45309;border-radius:6px;font-size:.8125rem;font-weight:600;margin-left:8px}.recommendation-reason{font-size:var(--font-size-base);color:var(--color-text-primary);margin:0 0 var(--space-md) 0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recommendation-viewings{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.recommendations-main .viewing-badges{display:flex;align-items:center;gap:8px}.recommendations-main .viewing-badge{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.25rem .625rem;border-radius:6px;font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums;transition:all .2s ease;white-space:nowrap;min-width:3rem}.recommendations-main .viewing-badge svg{flex-shrink:0;width:12px;height:12px}.recommendations-main .viewing-badge .count{font-weight:700;min-width:1ch;text-align:center}.recommendations-main .viewing-badge .badge-label{font-weight:500;font-size:.6875rem;text-transform:uppercase;letter-spacing:.02em}.recommendations-main .viewing-badge.total{background:linear-gradient(135deg,#f3e8ff,#faf5ff);color:#7c3aed;border:1px solid #c4b5fd}.recommendations-main .viewing-badge.past{background:linear-gradient(135deg,#e3f2fd,#f0f7ff);color:#1976d2;border:1px solid #90caf9}.recommendations-main .viewing-badge.future{background:linear-gradient(135deg,#e8f5e9,#f1f8f4);color:#388e3c;border:1px solid #81c784}.recommendations-main .viewing-badge.empty{background:#f5f5f7;color:#8e8e93;border:1px solid #e5e5ea}.last-viewing{font-size:.75rem;color:#8e8e93;white-space:nowrap}.recommendation-cooldown{margin-top:4px}.recommendations-main .status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap}.recommendations-main .status-completed{background:#34c75926;color:var(--color-success)}.recommendations-main .status-in-progress{background:#ff950026;color:var(--color-warning)}.recommendations-main .status-early{background:#007aff26;color:var(--color-info)}.recommendations-main .status-booked{background:#5856d626;color:#5856d6}.recommendations-main .status-sold{background:#8e8e9326;color:#8e8e93}.recommendations-main .status-badge:not([class*=status-]){background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.status-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stage-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:8px;font-size:.75rem;font-weight:600;white-space:nowrap}.stage-ready{background:#d1fae5;color:#065f46}.stage-final{background:#ccfbf1;color:#115e59}.stage-renovation{background:#fef3c7;color:#92400e}.stage-demolishing{background:#fee2e2;color:#991b1b}.stage-paused{background:#f3f4f6;color:#6b7280}.cooldown-badge{display:inline-flex;align-items:center;gap:6px;padding:.25rem .75rem;background:#ff95001f;border-radius:12px;font-size:.75rem;color:#c93400;border:1px solid rgba(255,149,0,.3)}.cooldown-badge .cooldown-icon{font-size:.875rem}.recommendation-actions{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-bg-tertiary);border-top:1px solid var(--color-border);margin-top:auto}.recommendations-main .action-btn{flex:1;padding:var(--space-md) var(--space-lg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal)}.recommendations-main .action-btn:disabled{opacity:.6;cursor:not-allowed}.recommendations-main .action-complete{background:var(--color-accent);color:var(--color-text-inverse)}.recommendations-main .action-complete:hover:not(:disabled){background:var(--color-accent-hover)}.recommendations-main .action-dismiss{background:var(--color-border);color:var(--color-text-primary)}.recommendations-main .action-dismiss:hover:not(:disabled){background:#d2d2d7}@media (max-width: 900px){.recommendations-grid{grid-template-columns:repeat(2,1fr);gap:12px}}@media (max-width: 640px){.recommendations-main{padding:1rem}.recommendations-header h1{font-size:var(--font-size-h1-mobile)}.recommendations-segmented{flex-wrap:wrap;width:100%}.recommendations-segmented .segment{padding:8px 14px;font-size:.8125rem}.recommendations-grid{grid-template-columns:1fr}.recommendation-actions{flex-direction:row}.recommendation-viewings{flex-direction:column;align-items:flex-start;gap:8px}.recommendations-main .viewing-badge .label{display:none}}.af-container{padding:24px;max-width:1000px;margin:0 auto}.af-header{margin-bottom:20px}.af-header h1{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.af-segmented{margin-bottom:20px}.af-segmented .segment{flex:1;justify-content:center}.af-list{display:flex;flex-direction:column;gap:16px}.af-group{display:flex;flex-direction:column;gap:2px}.af-group__header{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:8px 0 4px;border-bottom:1px solid var(--border-color);margin-bottom:4px}.af-group__items{display:flex;flex-direction:column;gap:0}.af-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:4px;transition:background .1s ease;font-size:.9rem}.af-row:hover{background:var(--bg-secondary)}.af-row__time{min-width:70px;flex-shrink:0;font-size:.8rem;color:var(--text-tertiary, var(--text-secondary));font-variant-numeric:tabular-nums;white-space:nowrap}.af-row__icon{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;border-radius:4px}.af-row__icon--ad_event{background:#dbeafe;color:#2563eb}.af-row__icon--created{background:#dcfce7;color:#16a34a}.af-row__icon--bumped{background:#dbeafe;color:#2563eb}.af-row__icon--refreshed{background:#f3f4f6;color:#6b7280}.af-row__icon--price_change{background:#fef3c7;color:#d97706}.af-row__icon--deleted{background:#fee2e2;color:#dc2626}.af-row__icon--viewing_scheduled{background:#ccfbf1;color:#0d9488}.af-row__icon--viewing_happened{background:#99f6e4;color:#0f766e}.af-row__icon--recommendation,.af-row__icon--dismissed{background:#fee2e2;color:#dc2626}.af-row__category{min-width:55px;flex-shrink:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.af-row__category--viewing_scheduled,.af-row__category--viewing_happened{color:#0d9488}.af-row__category--ad_event{color:#2563eb}.af-row__category--recommendation{color:#f97316}.af-row__action{min-width:70px;flex-shrink:0;font-size:.8rem;font-weight:500;white-space:nowrap}.af-row__action--created{color:#16a34a}.af-row__action--bumped{color:#2563eb}.af-row__action--refreshed{color:#6b7280}.af-row__action--price_change{color:#d97706}.af-row__action--deleted{color:#dc2626}.af-row__action--scheduled{color:#0d9488}.af-row__action--happened{color:#0f766e}.af-row__action--dismissed{color:#dc2626}.af-row__address{flex-shrink:0;min-width:140px;max-width:200px;font-weight:500;color:var(--text-primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.af-row__address:hover{color:var(--primary-color);text-decoration:underline}.af-row__address--unknown{color:var(--text-tertiary, var(--text-secondary));font-style:italic}.af-row__details{flex:1;display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-secondary);font-size:.85rem}.af-row__meta{color:var(--text-secondary)}.af-row__price{font-weight:500;color:var(--text-primary)}.af-row__change{font-size:.8rem;font-weight:500}.af-row__change--up{color:#dc2626}.af-row__change--down{color:#16a34a}.af-row__by{color:var(--text-tertiary, var(--text-secondary));font-size:.8rem}.af-row__link{color:var(--primary-color);text-decoration:none;font-size:.8rem;margin-left:auto}.af-row__link:hover{text-decoration:underline}.af-loadmore{width:100%;padding:12px;margin-top:8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .15s ease}.af-loadmore:hover{background:var(--bg-tertiary, var(--bg-secondary));border-color:var(--primary-color);color:var(--primary-color)}.af-empty{text-align:center;padding:48px;color:var(--text-secondary)}.af-error{padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;margin-bottom:16px;font-size:.9rem}@media (max-width: 768px){.af-container{padding:16px}.af-segmented{flex-wrap:wrap}.af-segmented .segment{flex:1 1 45%;padding:8px 12px;font-size:.85rem}.af-row{flex-wrap:wrap;gap:4px 8px;padding:10px 8px}.af-row__time{width:65px}.af-row__category,.af-row__action{width:auto}.af-row__address{min-width:0;max-width:none;flex:1}.af-row__details{width:100%;padding-left:72px;margin-top:2px}}.weekly-stats-page{max-width:var(--container-width);margin:0 auto;padding:var(--space-xl);min-height:calc(100vh - 52px);overflow-x:hidden}.weekly-stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.weekly-stats-header h1{margin:0;font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.week-selector{display:flex;align-items:center;gap:var(--space-sm)}.week-selector-nav{display:flex;align-items:center;gap:var(--space-xs)}.week-nav-btn{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);color:var(--color-text-primary)}.week-nav-btn:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:#d1d1d6}.week-nav-btn:disabled{opacity:.4;cursor:not-allowed}.week-selector select{padding:var(--space-sm) 2rem var(--space-sm) .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:var(--font-size-base);color:var(--color-text-primary);cursor:pointer;min-width:200px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.week-selector select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.current-week-badge{padding:var(--space-xs) var(--space-sm);background:#34c75926;color:var(--color-success);font-size:var(--font-size-xs);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.weekly-stats-page .stats-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;margin-bottom:2rem}@media (max-width: 1400px){.weekly-stats-page .stats-grid{grid-template-columns:repeat(7,1fr)}}@media (max-width: 1200px){.weekly-stats-page .stats-grid{grid-template-columns:repeat(5,1fr)}}@media (max-width: 1024px){.weekly-stats-page .stats-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){.weekly-stats-page .stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.weekly-stats-page .stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 400px){.weekly-stats-page .stats-grid{grid-template-columns:1fr}}.metric-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:.875rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:all var(--transition-normal);min-height:90px}.metric-card:hover{box-shadow:var(--shadow-md)}.metric-card.editable{cursor:pointer;background:var(--color-bg-tertiary)}.metric-card.editable:hover{background:#ebebed}.metric-card-header{display:flex;align-items:flex-start;gap:.375rem;margin-bottom:.5rem;min-height:32px}.metric-card-icon{flex-shrink:0;width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);color:var(--color-text-secondary)}.metric-card-icon svg{width:14px;height:14px}.metric-card-title{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin:0;line-height:1.25}.metric-card-value-row{display:flex;align-items:baseline;gap:.375rem}.metric-card-value{font-size:1.75rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1;margin:0}.metric-card-value.loading{color:#c7c7cc}.metric-card-change{font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium);padding:.125rem .25rem;border-radius:3px;white-space:nowrap}.metric-card-change.positive{background:#34c75926;color:var(--color-success)}.metric-card-change.negative{background:#ff3b3026;color:var(--color-error)}.metric-card-change.neutral{background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.metric-card-input-wrapper{display:flex;align-items:center;gap:var(--space-sm)}.metric-card-input{font-size:1.75rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:1;width:100%;max-width:80px;border:none;border-bottom:2px solid var(--color-accent);background:transparent;padding:0;outline:none}.metric-card-input:focus{border-color:var(--color-accent)}.metric-card-actions{display:flex;gap:var(--space-xs);margin-top:.375rem}.metric-action-btn{padding:.1875rem .375rem;font-size:var(--font-size-xxs);border-radius:3px;border:none;cursor:pointer;transition:all var(--transition-normal)}.metric-action-btn.save{background:var(--color-accent);color:var(--color-text-inverse)}.metric-action-btn.save:hover{background:var(--color-accent-hover)}.metric-action-btn.cancel{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.metric-action-btn.cancel:hover{background:#e5e5e7}.edit-hint{font-size:.625rem;color:var(--color-text-secondary);margin-top:.25rem}.charts-section{margin-top:2rem}.charts-section h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:1rem}.chart-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);margin-bottom:1.5rem;min-height:420px;overflow-x:auto}.chart-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 1rem}.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.legend-item{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer}.legend-item.disabled{opacity:.4}.legend-color{width:12px;height:12px;border-radius:2px}.weekly-stats-loading{display:flex;justify-content:center;align-items:center;min-height:400px;color:var(--color-text-secondary)}.weekly-stats-error{background:#ff3b301a;color:var(--color-error);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}@media (max-width: 1024px){.weekly-stats-page{padding:20px}.chart-container{padding:1rem;min-height:350px}.summary-row{flex-wrap:wrap;gap:1rem;justify-content:center}.summary-item{min-width:80px}}@media (max-width: 768px){.weekly-stats-page{padding:16px}.weekly-stats-header{flex-direction:column;align-items:flex-start}.metric-card-value{font-size:1.5rem}.metric-card-input{font-size:1.5rem;max-width:70px}.week-selector select{min-width:160px;font-size:.8125rem}.chart-container{padding:.75rem;min-height:300px}.chart-title{font-size:.875rem}.chart-legend{gap:.5rem}.legend-item{font-size:.6875rem}}@media (max-width: 480px){.weekly-stats-page{padding:12px}.weekly-stats-header h1{font-size:var(--font-size-h1-mobile)}.metric-card{padding:.75rem;min-height:80px}.metric-card-value{font-size:1.375rem}.metric-card-icon{width:22px;height:22px}.metric-card-icon svg{width:12px;height:12px}.summary-row{padding:.75rem}.summary-value{font-size:1.25rem}}.metric-card[data-metric=purchases] .metric-card-icon{background:#f0fdf4;color:#6b7280}.metric-card[data-metric=viewingsBuying] .metric-card-icon{background:#eff6ff;color:#6b7280}.metric-card[data-metric=demolitions] .metric-card-icon{background:#fffbeb;color:#6b7280}.metric-card[data-metric=inspections] .metric-card-icon{background:#f5f3ff;color:#6b7280}.metric-card[data-metric=apartmentReady] .metric-card-icon{background:#ecfeff;color:#6b7280}.metric-card[data-metric=viewingsSelling] .metric-card-icon{background:#fdf2f8;color:#6b7280}.metric-card[data-metric=sales] .metric-card-icon{background:#fef2f2;color:#6b7280}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-bottom:2rem;border:1px solid var(--color-border)}.summary-item{text-align:center}.summary-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:.25rem}.summary-value{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.skeleton-metric-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);min-height:120px}.skeleton-metric-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.skeleton-metric-value{height:2.5rem;width:60px;border-radius:var(--radius-sm)}.skeleton-summary-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:var(--color-bg-tertiary);border-radius:var(--radius-lg);margin-bottom:2rem;border:1px solid var(--color-border);min-height:76px}.skeleton-summary-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.skeleton-chart-container{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border);margin-bottom:1.5rem;min-height:380px}.status-completed{background:#d1fae5;color:#065f46}.status-almost-ready{background:#ccfbf1;color:#0f766e}.status-in-progress{background:#fef3c7;color:#92400e}.status-early{background:#dbeafe;color:#1e40af}.status-booked{background:#e0e7ff;color:#4338ca}.status-sold{background:var(--color-bg-tertiary, #f3f4f6);color:var(--color-text-secondary, #6b7280)}.status-badge:not([class*=status-]):not(.status-badge--success):not(.status-badge--warning):not(.status-badge--error):not(.status-badge--info):not(.status-badge--neutral){background:var(--color-bg-tertiary, #f5f5f7);color:var(--color-text-secondary, #86868b)}.inspections-page{max-width:1400px;margin:0 auto;padding:var(--space-xl);min-height:calc(100vh - 52px)}.inspections-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.inspections-header h1{margin:0;font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.inspections-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.inspections-column{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.inspections-column.next-week{background:var(--color-bg-tertiary);border-color:var(--color-border)}.column-header{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.column-header h2{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.column-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.inspections-summary{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.inspections-summary.preview-summary{margin-bottom:1rem}.summary-stat{background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:.75rem 1rem;flex:1;min-width:80px}.inspections-column.next-week .summary-stat{background:#00000008}.summary-stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:.125rem}.summary-stat-value{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.summary-stat-value.completed{color:var(--color-success)}.summary-stat-value.pending{color:var(--color-warning)}.inspections-list{display:flex;flex-direction:column;gap:8px}.inspection-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:all var(--transition-normal);display:flex;align-items:flex-start;gap:10px;cursor:pointer}.inspection-card:hover{box-shadow:var(--shadow-md);border-color:#d2d2d7}.inspection-card.inspected{background:#f0fdf4;border-color:#bbf7d0}.inspection-card.inspected:hover{background:#dcfce7}.inspection-card.preview{cursor:default;background:var(--color-bg-tertiary);border-color:var(--color-border)}.inspection-card.preview:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border)}.inspection-checkbox{width:24px;height:24px;min-width:24px;border-radius:var(--radius-sm);border:2px solid #d2d2d7;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);background:var(--color-bg-secondary)}.inspection-card:hover .inspection-checkbox{border-color:var(--color-accent)}.inspection-checkbox.checked{background:var(--color-success);border-color:var(--color-success)}.inspection-checkbox svg{color:#fff;width:14px;height:14px}.preview-checkbox{background:#e5e5e7!important;border-color:#d2d2d7!important}.preview-dot{width:6px;height:6px;border-radius:50%;background:#c7c7cc}.inspection-details{flex:1;min-width:0}.inspection-address{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:2px;line-height:1.3}.inspection-address a{color:inherit;text-decoration:none}.inspection-address a:hover{color:var(--color-accent)}.inspection-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.inspection-card .status-badge{padding:2px 8px;border-radius:6px;font-size:.6875rem}.inspection-reason{padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em}.inspection-reason.status-change{background:#ff3b301f;color:var(--color-error)}.inspection-reason.weekly{background:#007aff1a;color:var(--color-info)}.inspection-reason.bi-weekly{background:#5856d61a;color:#5856d6}.inspection-reason.monthly{background:#0f766e1a;color:#0f766e}.inspection-reason.first-inspection{background:#ff95001f;color:var(--color-warning)}.inspection-reason.additional{background:#34c7591a;color:var(--color-success)}.inspection-info{font-size:var(--font-size-xxs);color:var(--color-text-secondary);margin-top:2px}.inspections-page .empty-state{text-align:center;padding:2rem 1.5rem;color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.inspections-page .empty-state.preview{background:#00000008}.empty-state-icon{font-size:2rem;margin-bottom:.5rem}.empty-state-text{font-size:.875rem;font-weight:500}.all-done-state{text-align:center;padding:1.5rem;background:#34c7591a;border-radius:var(--radius-md);border:1px solid rgba(52,199,89,.3);margin-bottom:8px}.all-done-icon{font-size:1.5rem;margin-bottom:.25rem;color:var(--color-success)}.all-done-text{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:#166534}.inspections-error{background:#ff3b301a;color:var(--color-error);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}.skeleton-inspection-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--space-md);border:1px solid var(--color-border);display:flex;align-items:flex-start;gap:10px;height:60px}.add-inspection-inline{display:flex;gap:var(--space-sm);margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.add-inspection-select-inline{flex:1;padding:var(--space-sm) var(--space-md);border:1px solid #d2d2d7;border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);min-width:0}.add-inspection-select-inline:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-light)}.add-inspection-btn-inline{width:36px;height:36px;min-width:36px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:1.25rem;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal);display:flex;align-items:center;justify-content:center}.add-inspection-btn-inline:hover{background:var(--color-accent-hover)}.add-inspection-btn-inline:disabled{background:#c7c7cc;cursor:not-allowed}@media (max-width: 1024px){.inspections-columns{grid-template-columns:1fr;gap:16px}.inspections-column.next-week{background:#fff}}@media (max-width: 768px){.inspections-page{padding:16px}.inspections-header{flex-direction:column;align-items:flex-start}.inspections-header h1{font-size:var(--font-size-h1-mobile)}.inspections-column{padding:1rem}.column-header{flex-direction:column;gap:4px;align-items:flex-start}.inspections-summary{gap:.5rem}.summary-stat{padding:.625rem .75rem;min-width:calc(33% - .5rem)}.summary-stat-value{font-size:1.125rem}.inspection-checkbox{width:28px;height:28px;min-width:28px}}@media (max-width: 480px){.summary-stat{min-width:calc(50% - .25rem)}.inspections-summary.preview-summary .summary-stat{min-width:100%}}.contractor-card-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-xl);overflow-y:auto}.contractor-card{background:var(--color-bg-secondary);border-radius:var(--radius-xl);max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-xl) var(--space-xl) var(--space-lg);border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-bg-secondary);z-index:10}.card-title-row{display:flex;align-items:center;gap:var(--space-lg);flex-wrap:wrap}.card-header h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.score-badge-large{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg);color:#fff;font-weight:var(--font-weight-bold);font-size:var(--font-size-base);display:flex;align-items:center;gap:6px}.close-btn{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1;transition:color var(--transition-normal)}.close-btn:hover{color:var(--color-text-primary)}.contractor-card .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl);padding:var(--space-xl)}.contractor-card .stat-section{background:var(--color-bg-tertiary);border-radius:var(--radius-lg);padding:var(--space-xl)}.contractor-card .stat-section h3{font-size:.85rem;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--space-lg) 0}.contractor-card .stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border-light)}.contractor-card .stat-row:last-child{border-bottom:none}.contractor-card .stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contractor-card .stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.contractor-card .stat-value.good{color:var(--color-success)}.contractor-card .stat-value.warning{color:var(--color-warning)}.contractor-card .stat-value.bad{color:var(--color-error)}.contractor-card .breakdown-bars{display:flex;flex-direction:column;gap:var(--space-md)}.contractor-card .breakdown-item{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;gap:var(--space-md)}.contractor-card .breakdown-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contractor-card .breakdown-bar-container{height:8px;background:#0000001a;border-radius:var(--radius-sm);overflow:hidden}.contractor-card .breakdown-bar{height:100%;border-radius:var(--radius-sm);transition:width .5s ease}.contractor-card .breakdown-bar.early{background:linear-gradient(90deg,#16a34a,#22c55e)}.contractor-card .breakdown-bar.on-time{background:linear-gradient(90deg,#2563eb,#3b82f6)}.contractor-card .breakdown-bar.late{background:linear-gradient(90deg,#dc2626,#ef4444)}.contractor-card .breakdown-value{font-size:.85rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:right}.contractor-card .workload-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.contractor-card .workload-item{text-align:center;padding:var(--space-md) var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.contractor-card .workload-value{display:block;font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.contractor-card .workload-value.demolition{color:var(--color-warning)}.contractor-card .workload-value.renovation{color:var(--color-info)}.contractor-card .workload-value.final-touches{color:#8b5cf6}.contractor-card .workload-label{display:block;font-size:.7rem;color:var(--color-text-secondary);margin-top:var(--space-xs);text-transform:uppercase;letter-spacing:.3px}.card-tabs{display:flex;gap:var(--space-sm);padding:0 var(--space-xl);border-bottom:1px solid var(--color-border)}.tab-btn{padding:var(--space-md) var(--space-xl);background:none;border:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition-normal)}.tab-btn:hover{color:var(--color-accent)}.tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.tab-content{padding:var(--space-xl)}.details-table-container{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border)}.details-table{width:100%;border-collapse:collapse;font-size:.85rem}.details-table th{background:var(--color-bg-tertiary);padding:var(--space-md) var(--space-lg);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.details-table th.center{text-align:center}.details-table th.right{text-align:right}.details-table td{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-light);vertical-align:middle}.details-table td.center{text-align:center}.details-table td.right{text-align:right}.details-table tbody tr:last-child td{border-bottom:none}.details-table tbody tr:hover{background:var(--color-bg-tertiary)}.address-cell{font-weight:var(--font-weight-medium);color:var(--color-text-primary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contractor-card .status-badge{display:inline-block;padding:var(--space-xs) 10px;border-radius:var(--radius-lg);font-size:.8rem;font-weight:var(--font-weight-medium)}.contractor-card .status-badge.on-time{background:#34c75926;color:var(--color-success)}.contractor-card .status-badge.late{background:#ff3b3026;color:var(--color-error)}.variance-badge{display:inline-block;padding:var(--space-xs) 10px;border-radius:var(--radius-lg);font-size:.8rem;font-weight:var(--font-weight-medium)}.variance-badge.under{background:#34c75926;color:var(--color-success)}.variance-badge.on{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.variance-badge.over{background:#ff3b3026;color:var(--color-error)}@media (max-width: 768px){.contractor-card-overlay{padding:10px}.contractor-card{max-height:95vh}.card-header{padding:var(--space-lg)}.card-header h2{font-size:var(--font-size-h3)}.contractor-card .stats-grid{grid-template-columns:1fr;padding:var(--space-lg);gap:var(--space-lg)}.contractor-card .stat-section{padding:var(--space-lg)}.contractor-card .breakdown-item{grid-template-columns:100px 1fr 30px;gap:var(--space-sm)}.contractor-card .workload-grid{grid-template-columns:repeat(2,1fr)}.card-tabs{padding:0 var(--space-lg);overflow-x:auto}.tab-btn{padding:10px var(--space-lg);white-space:nowrap}.tab-content{padding:var(--space-lg)}.details-table{min-width:600px}}@media (max-width: 480px){.contractor-card .card-title-row{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.contractor-card .score-badge-large{padding:6px var(--space-md);font-size:var(--font-size-sm)}.contractor-card .workload-value{font-size:var(--font-size-h3)}}.contractor-chart-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl)}.contractor-chart-container .chart-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-lg) 0}.contractor-chart-container .chart-loading,.contractor-chart-container .chart-empty{height:300px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.contractor-chart-container .chart-footnote{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border-light);font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center}.contractor-charts-section{margin-top:var(--space-2xl)}@media (max-width: 768px){.contractor-chart-container{padding:var(--space-lg)}.contractor-chart-container .chart-title{font-size:var(--font-size-sm)}}.contractors-page{padding:var(--space-xl);max-width:1400px;margin:0 auto}.contractors-header{margin-bottom:var(--space-xl)}.contractors-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.contractors-subtitle{color:var(--color-text-secondary);font-size:var(--font-size-base);margin:0}.contractors-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg);margin-bottom:var(--space-xl)}.summary-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center}.summary-value{font-size:2rem;font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.summary-label{font-size:.85rem;color:var(--color-text-secondary);margin-top:var(--space-xs)}.contractors-page .segmented-control{display:flex;background:var(--color-bg-tertiary);border-radius:10px;padding:4px;margin-bottom:var(--space-xl);gap:4px;width:fit-content}.contractors-page .segment{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-xl);border:none;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.contractors-page .segment svg{flex-shrink:0;opacity:.6;transition:opacity var(--transition-normal)}.contractors-page .segment:hover{color:var(--color-text-primary)}.contractors-page .segment:hover svg{opacity:.8}.contractors-page .segment.active{background:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.contractors-page .segment.active svg{opacity:1}.ranking-table-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.ranking-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ranking-table th{background:var(--color-bg-tertiary);padding:14px var(--space-lg);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.ranking-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ranking-table th.sortable:hover{color:var(--color-accent)}.ranking-table th.center,.ranking-table td.center{text-align:center}.ranking-table td{padding:14px var(--space-lg);border-bottom:1px solid var(--color-border-light);vertical-align:middle;height:64px;box-sizing:border-box}.contractor-row{cursor:pointer;transition:background var(--transition-fast)}.contractor-row:hover,.contractor-row.expanded{background:var(--color-bg-tertiary)}.rank-col{width:50px;text-align:center}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-bg-tertiary);font-weight:var(--font-weight-semibold);font-size:.85rem;color:var(--color-text-secondary)}.rank-badge.rank-gold{background:linear-gradient(135deg,gold,#ffb700);color:#6b5600}.rank-badge.rank-silver{background:linear-gradient(135deg,silver,#a0a0a0);color:#4a4a4a}.rank-badge.rank-bronze{background:linear-gradient(135deg,#cd7f32,#b87333);color:#4a3000}.contractor-name-cell{display:flex;flex-direction:column;gap:2px}.contractor-name-cell .company-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap}.contractor-name-cell .rep-name{color:var(--color-text-secondary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);white-space:nowrap}.active-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 var(--space-sm);background:#dd41321a;color:var(--color-accent);font-size:.85rem;font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg)}.no-active{color:var(--color-text-tertiary)}.rate-badge{display:inline-block;padding:var(--space-xs) 10px;border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);font-size:.85rem}.rate-badge.good{background:#34c75926;color:var(--color-success)}.rate-badge.warning{background:#ff950026;color:var(--color-warning)}.rate-badge.bad{background:#ff3b3026;color:var(--color-error)}.variance-good{color:var(--color-success);font-weight:var(--font-weight-medium)}.variance-bad{color:var(--color-error);font-weight:var(--font-weight-medium)}.variance-neutral{color:var(--color-text-secondary)}.score-badge{display:inline-block;padding:6px var(--space-md);border-radius:var(--radius-md);color:#fff;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);min-width:36px;text-align:center}.error-message{background:#ff3b301a;color:var(--color-error);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-md);margin:var(--space-xl)}@media (max-width: 1024px){.contractors-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.contractors-page{padding:var(--space-lg)}.contractors-summary{grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.summary-card{padding:var(--space-lg)}.summary-value{font-size:var(--font-size-h2)}.ranking-table-container{overflow-x:auto}.ranking-table{min-width:700px}.ranking-table th,.ranking-table td{padding:var(--space-md)}}@media (max-width: 480px){.contractors-header h1{font-size:var(--font-size-h1-mobile)}.contractors-page .segmented-control{width:100%}.contractors-page .segment{flex:1;justify-content:center;padding:10px var(--space-md);font-size:var(--font-size-sm)}.contractors-page .segment svg{display:none}}.contractor-charts-section{margin-top:var(--space-sm)}.contractor-charts-section h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--space-xl) 0}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl)}@media (max-width: 1024px){.charts-grid{grid-template-columns:1fr}}.bonus-staff-management{padding:0}.management-header{margin-bottom:var(--space-xl)}.management-header h2{font-size:var(--font-size-h2);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.management-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.add-staff-form{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-xl)}.form-row{display:flex;gap:var(--space-lg);align-items:flex-end;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:180px}.form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary)}.form-group select,.form-group input{padding:10px 12px;font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-primary)}.form-group select:focus,.form-group input:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 3px #007aff1a}.add-btn{padding:10px 20px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--transition-normal)}.add-btn:hover:not(:disabled){background:var(--color-accent-hover)}.add-btn:disabled{background:var(--color-text-tertiary);cursor:not-allowed}.message{margin-top:var(--space-md);padding:10px 14px;border-radius:var(--radius-md);font-size:var(--font-size-sm)}.message.error{background:var(--color-badge-error-bg);color:var(--color-error)}.message.success{background:var(--color-badge-success-bg);color:var(--color-success)}.staff-list{background:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:var(--space-xl)}.loading,.empty{padding:var(--space-2xl);text-align:center;color:var(--color-text-secondary)}.staff-table{width:100%;border-collapse:collapse}.staff-table th,.staff-table td{padding:var(--space-md) var(--space-lg);text-align:left;border-bottom:1px solid var(--color-border-light)}.staff-table th{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em;background:var(--color-bg-tertiary)}.staff-table tbody tr:hover{background:#f9f9fb}.staff-table tbody tr.inactive{opacity:.6}.name-cell{font-weight:500;color:var(--color-text-primary)}.email-cell{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.guaranteed-cell{display:flex;align-items:center;gap:var(--space-xs)}.guaranteed-input{width:80px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:6px;font-size:var(--font-size-sm);text-align:right;background:#f9f9fb}.guaranteed-input:focus{outline:none;border-color:var(--color-success);background:var(--color-bg-secondary)}.guaranteed-input::placeholder{color:var(--color-text-tertiary)}.currency-suffix{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.bonus-staff-management .role-badge{display:inline-block;padding:var(--space-xs) 10px;border-radius:6px;font-size:var(--font-size-xs);font-weight:500;text-transform:capitalize}.bonus-staff-management .role-badge.role-agent{background:var(--color-badge-success-bg);color:var(--color-success)}.bonus-staff-management .role-badge.role-manager{background:var(--color-badge-info-bg);color:var(--color-info)}.bonus-staff-management .role-badge.role-designer{background:#af52de26;color:#af52de}.status-toggle{padding:var(--space-xs) 10px;border-radius:6px;font-size:var(--font-size-xs);font-weight:500;cursor:pointer;border:none;transition:all var(--transition-normal)}.status-toggle.active{background:var(--color-badge-success-bg);color:var(--color-success)}.status-toggle.inactive{background:var(--color-badge-error-bg);color:var(--color-error)}.status-toggle:hover{opacity:.8}.delete-btn{padding:6px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-normal)}.delete-btn:hover{background:var(--color-badge-error-bg);color:var(--color-error)}.role-descriptions{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-sm)}.role-descriptions h3{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 1rem}.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg)}.role-card{padding:var(--space-lg);border-radius:10px;background:var(--color-bg-tertiary)}.role-card.agent{border-left:4px solid var(--color-success)}.role-card.manager{border-left:4px solid var(--color-info)}.role-card.designer{border-left:4px solid #af52de}.role-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.role-card ul{margin:0;padding:0 0 0 var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.role-card li{margin-bottom:var(--space-xs)}@media (max-width: 768px){.form-row{flex-direction:column}.form-group,.add-btn{width:100%}.staff-table{font-size:var(--font-size-sm)}.staff-table th,.staff-table td{padding:10px 12px}.email-cell{display:none}}.accountant-report{padding:0}.report-header{margin-bottom:var(--space-xl)}.report-header h2{font-size:var(--font-size-h2);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-sm) 0}.report-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.report-controls{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap}.month-selector{display:flex;align-items:center;gap:10px}.month-selector label{font-size:var(--font-size-base);color:var(--color-text-secondary);font-weight:500}.month-selector select{padding:10px var(--space-lg);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;min-width:180px}.month-selector select:focus{outline:none;border-color:var(--color-info);box-shadow:0 0 0 3px #007aff1a}.copy-btn{display:flex;align-items:center;gap:var(--space-sm);padding:10px var(--space-xl);background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:10px;font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.copy-btn:hover{background:var(--color-accent-hover)}.copy-btn.copied{background:var(--color-success)}.report-empty{text-align:center;padding:var(--space-3xl) var(--space-2xl);color:var(--color-text-secondary);font-size:1rem;background:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.report-content{background:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.report-summary-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);background:linear-gradient(135deg,var(--color-info) 0%,#5856d6 100%);color:var(--color-text-inverse)}.report-month{font-size:1.1rem;font-weight:600}.report-company-total{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-base)}.report-company-total strong{font-size:1.25rem;font-weight:700}.staff-report-section{border-bottom:1px solid var(--color-border-light);padding:var(--space-xl)}.staff-report-section:last-of-type{border-bottom:none}.staff-report-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.staff-name{font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.role-tag{padding:var(--space-xs) 10px;border-radius:6px;font-size:var(--font-size-xs);font-weight:500;text-transform:capitalize}.role-tag.role-agent{background:var(--color-badge-success-bg);color:var(--color-success)}.role-tag.role-manager{background:var(--color-badge-info-bg);color:var(--color-info)}.role-tag.role-designer{background:#af52de26;color:#af52de}.report-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);margin-bottom:var(--space-lg)}.report-table th,.report-table td{padding:10px var(--space-md);text-align:left;border-bottom:1px solid var(--color-border-light)}.report-table th{font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em;background:#f9f9fb}.report-table th.number,.report-table td.number{text-align:right}.report-table tbody tr:hover{background:#f9f9fb}.report-table tbody tr.missing-data{opacity:.6;background:#ff95000d}.multiplier-cell{font-weight:500}.multiplier-breakdown{display:flex;flex-direction:column;gap:2px}.mult-item{font-size:var(--font-size-xs);white-space:nowrap}.mult-item.bonus{color:var(--color-success)}.mult-item.penalty{color:var(--color-warning)}.no-multiplier{color:var(--color-text-tertiary)}.bonus-amount{font-weight:600;color:var(--color-success)}.no-apartments{padding:var(--space-xl);text-align:center;color:var(--color-text-secondary);font-style:italic;background:#f9f9fb;border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.staff-totals{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);background:#f9f9fb;border-radius:10px}.total-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-base)}.total-row.calculated,.total-row.guaranteed{color:var(--color-text-secondary)}.total-row.guaranteed.applied{color:var(--color-success)}.applied-badge{margin-left:var(--space-sm);padding:2px 6px;background:var(--color-badge-success-bg);color:var(--color-success);border-radius:var(--radius-sm);font-size:var(--font-size-xxs);font-weight:600;text-transform:uppercase}.total-row.final{padding-top:var(--space-sm);margin-top:var(--space-xs);border-top:1px solid var(--color-border);font-weight:600;color:var(--color-text-primary)}.total-row .amount{font-weight:600}.total-row.final .amount{font-size:1.1rem;color:var(--color-success)}.company-totals{padding:var(--space-xl);background:linear-gradient(135deg,var(--color-success) 0%,#30d158 100%)}.company-total-row{display:flex;justify-content:space-between;align-items:center;color:var(--color-text-inverse);font-size:1.1rem;font-weight:600}.company-total-row .amount{font-size:var(--font-size-h2);font-weight:700}@media (max-width: 768px){.report-controls,.month-selector{flex-direction:column;align-items:stretch}.month-selector select{width:100%}.copy-btn{justify-content:center}.report-table{font-size:var(--font-size-xs)}.report-table th,.report-table td{padding:var(--space-sm) 6px}.staff-report-section{padding:var(--space-lg)}.report-summary-bar{flex-direction:column;gap:var(--space-sm);text-align:center}}@media (max-width: 480px){.report-table{display:block;overflow-x:auto}}.bonuses-container{max-width:1200px;width:100%;margin:0 auto;padding:2rem}.bonuses-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.bonuses-title-section h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 .5rem;letter-spacing:-.02em}.bonuses-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.staff-selector select{padding:10px var(--space-lg);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;min-width:200px}.staff-selector select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #dd41321a}.bonuses-container .segmented-control{width:fit-content;margin-bottom:var(--space-xl)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:2rem}.summary-card{background:#fff;border-radius:12px;padding:16px 20px;box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;gap:8px}.summary-card.highlight{background:linear-gradient(135deg,#007aff,#5856d6)}.summary-card.highlight .summary-label,.summary-card.highlight .summary-value{color:#fff}.summary-card.projected{border:2px dashed #5856d6;background:#5856d60d}.summary-card.warning{border:2px solid #ff9500;background:#ff95000d}.summary-card.guaranteed{background:linear-gradient(135deg,#34c759,#30d158)}.summary-card.guaranteed .summary-label,.summary-card.guaranteed .summary-value{color:#fff}.summary-card.guaranteed .summary-note{color:#fffc}.summary-card.guaranteed-info{border:2px solid #34c759;background:#34c7590d}.guaranteed-badge{display:inline-block;margin-left:6px;padding:2px 6px;background:#ffffff40;border-radius:4px;font-size:.65rem;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.summary-note{font-size:.75rem;font-weight:400;color:#86868b;margin-top:2px}.summary-label{font-size:.8rem;font-weight:500;color:#86868b;text-transform:uppercase;letter-spacing:.02em}.summary-value{font-size:1.5rem;font-weight:700;color:#1d1d1f}.role-badge{font-size:1rem!important;padding:4px 12px;border-radius:6px;text-transform:capitalize;width:fit-content}.role-agent{background:#34c75926;color:#34c759}.role-manager{background:#007aff26;color:#007aff}.role-designer{background:#af52de26;color:#af52de}.loading-state,.error-state,.empty-state{text-align:center;padding:4rem 2rem;color:#86868b;font-size:1rem}.loading-spinner{width:32px;height:32px;border:3px solid #f5f5f7;border-top-color:#007aff;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}.error-state button{margin-top:1rem;padding:10px 20px;background:#007aff;color:#fff;border:none;border-radius:8px;font-size:.9rem;cursor:pointer}.months-container{display:flex;flex-direction:column;gap:24px}.month-section{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000a;overflow:hidden}.month-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#f5f5f7;cursor:pointer;transition:background .2s}.month-header:hover{background:#ebebed}.month-info h3{font-size:1.1rem;font-weight:600;color:#1d1d1f;margin:0 0 4px}.bonuses-container .month-stats{font-size:.85rem;color:#86868b;display:flex;align-items:center;gap:8px}.missing-badge{background:#ff950026;color:#ff9500;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.guaranteed-month-badge{background:#34c75926;color:#34c759;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.month-total{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.total-label{font-size:.85rem;color:#86868b}.total-amount{font-size:1.25rem;font-weight:700;color:#34c759}.total-amount.guaranteed-total{color:#30d158}.calculated-total{font-size:.8rem;color:#86868b;font-weight:400}.expand-icon{font-size:.75rem;color:#86868b;transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.month-cards{padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.bonus-card{background:#f9f9fb;border-radius:12px;padding:16px;border:1px solid #e5e5ea;transition:all .2s}.bonus-card:hover{box-shadow:0 4px 12px #0000000f}.bonus-card.projected{border:2px dashed #5856d6;background:#5856d608}.bonus-card.missing-dates{border-color:#ff9500}.bonus-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.bonus-card-address{font-size:.95rem;font-weight:600;color:#1d1d1f;flex:1}.sale-date{font-size:.8rem;color:#86868b;white-space:nowrap}.bonus-card-payment{font-size:.85rem;color:#1d1d1f;font-weight:500;margin-bottom:12px}.sale-month-note{color:#86868b;font-weight:400;margin-left:4px}.dates-section{background:#007aff0d;border-radius:8px;padding:12px;margin-bottom:12px}.date-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.date-label{font-size:.85rem;color:#86868b}.date-value{font-size:.85rem;color:#1d1d1f;font-weight:500}.date-value.missing{color:#ff9500;font-style:italic}.date-input{padding:6px 10px;border:1px solid #e5e5ea;border-radius:6px;font-size:.85rem}.add-dates-btn{width:100%;margin-top:8px;padding:8px 12px;background:#ff9500;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s}.add-dates-btn:hover{background:#e68600}.date-actions{display:flex;gap:8px;margin-top:8px}.save-dates-btn{flex:1;padding:8px 12px;background:#34c759;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer}.save-dates-btn:disabled{background:#c7c7cc;cursor:not-allowed}.cancel-btn{padding:8px 12px;background:#f5f5f7;color:#1d1d1f;border:1px solid #e5e5ea;border-radius:6px;font-size:.85rem;cursor:pointer}.bonus-card-section{margin:8px 0}.bonus-card-divider{height:1px;background:#e5e5ea;margin:12px 0}.calc-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:.85rem;color:#86868b}.calc-row .value{color:#1d1d1f;font-weight:500}.calc-row.margin-row{padding-top:8px;margin-top:4px;border-top:1px dashed #e5e5ea}.calc-row.margin-row span{font-weight:600;color:#1d1d1f}.calc-row.multiplier-row{background:#007aff0d;margin:4px -8px;padding:6px 8px;border-radius:6px}.multiplier{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.multiplier-reason{font-size:.75rem;color:#86868b;font-weight:400}.multiplier.pre-start{color:#ff9500}.calc-row.warning-row{background:#ff95001a;margin:4px -8px;padding:8px;border-radius:6px}.warning-text{color:#ff9500;font-size:.8rem;font-weight:500}.bonus-card-total{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#34c7591a;border-radius:8px;margin-top:8px}.bonus-card-total span:first-child{font-size:.9rem;font-weight:600;color:#1d1d1f}.total-value{font-size:1.25rem;font-weight:700;color:#34c759}.missing-dates-prompt{display:flex;flex-direction:column;align-items:center;padding:24px 16px;text-align:center;background:#ff950014;border-radius:8px;margin-top:12px}.prompt-icon{font-size:2rem;margin-bottom:8px}.prompt-text{font-size:.9rem;color:#86868b;line-height:1.4}.date-input-inline{padding:6px 10px;border:1px solid #e5e5ea;border-radius:6px;font-size:.85rem;background:#fff;color:#1d1d1f;min-width:130px;transition:border-color .2s,box-shadow .2s}.date-input-inline:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.date-input-inline.dirty{border-color:#ff9500;background:#ff95000d}.date-input-inline.empty{color:#86868b}.date-input-inline:disabled{background:#f5f5f7;cursor:not-allowed}.save-message{margin-top:8px;padding:6px 10px;border-radius:6px;font-size:.8rem;font-weight:500;text-align:center}.save-message.success{background:#34c75926;color:#34c759}.save-message.error{background:#ff3b3026;color:#ff3b30}@media (max-width: 768px){.bonuses-container{padding:1rem}.bonuses-header{flex-direction:column}.staff-selector select{width:100%}.summary-cards{grid-template-columns:repeat(2,1fr)}.month-cards{grid-template-columns:1fr}.month-header{flex-direction:column;align-items:flex-start;gap:8px}.month-total{width:100%;justify-content:space-between}}@media (max-width: 480px){.summary-cards{grid-template-columns:1fr}.bonuses-container .segmented-control{width:100%}.bonuses-container .segment{flex:1;text-align:center}}.my-companies-container{padding:24px;max-width:1200px;margin:0 auto}.my-companies-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.my-companies-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 4px}.my-companies-subtitle{color:var(--color-text-secondary, #86868b);font-size:14px;margin:0 0 8px}.contractor-label{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary, #86868b);font-size:13px;margin:0}.contractor-label svg{opacity:.6}.add-company-btn{display:flex;align-items:center;gap:var(--space-sm);padding:10px 16px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:14px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal);white-space:nowrap;line-height:1}.add-company-btn svg{flex-shrink:0;display:block;width:16px;height:16px;stroke:#fff!important;color:#fff!important;vertical-align:middle;margin-bottom:0!important}.add-company-btn:hover{background:var(--color-accent-hover)}.error-banner,.form-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ff3b301a;border:1px solid rgba(255,59,48,.2);border-radius:8px;color:var(--color-danger, #ff3b30);font-size:14px;margin-bottom:16px}.form-success{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#34c7591a;border:1px solid rgba(52,199,89,.2);border-radius:8px;color:var(--color-success, #34c759);font-size:14px;margin-bottom:16px}.error-icon,.success-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:700}.error-icon{background:var(--color-danger, #ff3b30);color:#fff}.success-icon{background:var(--color-success, #34c759);color:#fff}.company-form-card{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:12px;padding:24px;margin-bottom:24px}.company-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.company-form-header h2{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);margin:0}.close-form-btn{background:none;border:none;cursor:pointer;padding:4px;color:var(--color-text-secondary, #86868b);border-radius:4px;transition:background .2s}.close-form-btn:hover{background:var(--color-background-secondary, #f5f5f7)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-group.full-width{grid-column:span 2}.form-group label{font-size:13px;font-weight:500;color:var(--color-text-secondary, #86868b)}.form-group input[type=text],.form-group input[type=email],.form-group input[type=tel]{padding:10px 12px;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;font-size:14px;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff1a}.checkbox-group{margin-top:8px}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--color-text-primary, #1d1d1f)}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--color-border, #e5e5ea)}.cancel-btn,.save-btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.save-btn{background:var(--color-accent);border:none;color:var(--color-text-inverse)}.save-btn:hover:not(:disabled){background:var(--color-accent-hover)}.save-btn:disabled,.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:12px}.empty-state>svg{color:var(--color-text-tertiary, #aeaeb2);margin-bottom:16px}.empty-state h3{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.my-companies-container .empty-state p{color:var(--color-text-secondary, #86868b);font-size:14px;margin:0 0 24px!important}.empty-state .add-company-btn{margin-top:0}.companies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.company-card{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:12px;padding:20px;position:relative;transition:box-shadow .2s}.company-card:hover{box-shadow:0 4px 12px #00000014}.company-card.is-default{border-color:var(--color-primary, #007aff);border-width:2px}.default-badge{position:absolute;top:-10px;right:16px;display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) 10px;background:var(--color-accent);color:var(--color-text-inverse);font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);text-transform:uppercase}.company-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.company-card-header h3{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;padding-right:8px}.company-actions{display:flex;gap:4px}.my-companies-container .action-btn{background:none;border:none;padding:6px;cursor:pointer;border-radius:6px;color:var(--color-text-secondary, #86868b);transition:all .2s}.my-companies-container .action-btn:hover{background:var(--color-background-secondary, #f5f5f7);color:var(--color-text-primary, #1d1d1f)}.my-companies-container .action-btn.set-default-btn:hover{color:var(--color-warning, #ff9500)}.my-companies-container .action-btn.delete-btn:hover{background:#ff3b301a;color:var(--color-danger, #ff3b30)}.my-companies-container .action-btn:disabled{opacity:.5;cursor:not-allowed}.company-details{display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.detail-label{font-size:12px;color:var(--color-text-secondary, #86868b);flex-shrink:0}.detail-value{font-size:13px;color:var(--color-text-primary, #1d1d1f);text-align:right;word-break:break-word}.detail-value.iban{font-family:SF Mono,Monaco,Courier New,monospace;font-size:12px;letter-spacing:.5px}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.access-denied h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.access-denied p{color:var(--color-text-secondary, #86868b);font-size:14px;margin:0}.spinner-small{width:14px;height:14px;border:2px solid var(--color-border, #e5e5ea);border-top-color:var(--color-primary, #007aff);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.my-companies-container{padding:16px}.my-companies-header{flex-direction:column;align-items:stretch}.add-company-btn{justify-content:center}.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:span 1}.companies-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}}.create-request-container{padding:16px;max-width:1600px;margin:0 auto}.create-request-header{margin-bottom:16px}.create-request-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 2px}.create-request-header .subtitle{color:var(--color-text-secondary, #86868b);font-size:12px;margin:0}.error-banner{display:flex;align-items:flex-start;gap:8px;padding:12px 16px;background:#ff3b301a;border:1px solid rgba(255,59,48,.2);border-radius:8px;color:var(--color-danger, #ff3b30);font-size:14px;margin-bottom:20px}.error-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-danger, #ff3b30);color:#fff;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0}.form-section{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:10px;padding:14px 16px;margin-bottom:12px}.form-section h2{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);margin:0 0 10px;color:var(--color-text-primary)}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.section-header-row h2{margin-bottom:0}.company-select{width:100%;padding:8px 12px;border:1px solid var(--color-border, #e5e5ea);border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.company-select:focus{outline:none;border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff1a}.apartments-list{display:flex;flex-direction:column;gap:8px}.apartment-card{background:var(--color-background-secondary, #f5f5f7);border-radius:8px;padding:10px 12px}.apartment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:8px}.apartment-info h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.apartment-meta{font-size:12px;color:var(--color-text-secondary, #86868b)}.budget-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.budget-label{font-size:12px;color:var(--color-text-secondary, #86868b)}.budget-amount{font-size:14px;font-weight:600}.budget-amount.positive{color:var(--color-success, #34c759)}.budget-amount.zero{color:var(--color-text-tertiary, #aeaeb2)}.holdback-note{font-size:11px;color:var(--color-warning, #ff9500)}.budget-details{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--color-border, #e5e5ea)}.budget-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.budget-item{display:flex;flex-direction:column;gap:1px;min-width:70px}.budget-item .budget-label{font-size:10px;font-weight:500;color:var(--color-text-tertiary, #aeaeb2);text-transform:uppercase;letter-spacing:.3px}.budget-item .budget-value{font-size:14px;font-weight:600;color:var(--color-text-primary, #1d1d1f)}.budget-item .budget-value.paid{color:var(--color-text-secondary, #86868b)}.budget-item .budget-value.available{color:var(--color-success, #34c759)}.budget-item .budget-value.zero{color:var(--color-text-tertiary, #aeaeb2)}.budget-item .budget-per-sqm{font-size:10px;color:var(--color-text-tertiary, #aeaeb2)}.budget-item.holdback .budget-value{color:var(--color-warning, #ff9500)}.budget-item.holdback{cursor:help;position:relative}.budget-item.holdback .budget-label{display:flex;align-items:center;gap:2px}.budget-item.holdback:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:100;pointer-events:none}.budget-item.holdback:hover:after{opacity:1;visibility:visible}.stages-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}@media (max-width: 1200px){.stages-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 900px){.stages-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.stages-grid{grid-template-columns:1fr}}.stage-btn{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:6px;cursor:pointer;transition:all .2s;text-align:left;position:relative}.stage-row-top{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%}.stage-row-bottom{display:flex;align-items:center;justify-content:space-between;width:100%}.stage-btn:hover:not(.disabled){border-color:var(--color-primary, #007aff);background:#007aff0d}.stage-btn.selected{background:#34c7591a;border-color:var(--color-success, #34c759);border-width:2px}.stage-btn.selected:hover{background:#34c75926}.stage-btn.paid{background:var(--color-background-secondary, #f5f5f7);border-color:var(--color-border, #e5e5ea);opacity:.7}.stage-btn.paid .stage-name,.stage-btn.paid .stage-amount,.stage-btn.paid .stage-percent{color:var(--color-text-tertiary, #aeaeb2);text-decoration:line-through}.stage-btn.partially-paid{background:#ff95000d;border-color:var(--color-warning, #ff9500)}.stage-btn.partially-paid:hover:not(.disabled){background:#ff95001a}.stage-btn.requested{background:#007aff0d;border-color:var(--color-primary, #007aff);border-style:dashed;opacity:.8}.stage-btn.holdback-locked{background:var(--color-background-secondary, #f5f5f7);border-color:var(--color-text-tertiary, #aeaeb2);border-style:dashed;opacity:.6}.stage-btn.disabled{cursor:not-allowed}.stage-order{font-size:12px;font-weight:600;color:var(--color-text-tertiary, #aeaeb2);margin-right:3px}.stage-name{font-size:13px;font-weight:500;color:var(--color-text-primary, #1d1d1f);display:flex;align-items:center;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-paid-amount{font-size:11px;color:var(--color-text-tertiary, #aeaeb2);margin-left:4px}.stage-amount{font-size:14px;font-weight:600;color:var(--color-primary, #007aff);display:flex;align-items:baseline;flex-wrap:wrap}.stage-btn.paid .stage-amount{color:var(--color-text-tertiary, #aeaeb2)}.stage-btn.selected .stage-amount{color:var(--color-success, #34c759)}.stage-percent{font-size:12px;color:var(--color-text-tertiary, #aeaeb2);font-weight:500}.stage-status-badge{display:inline-block;padding:2px 5px;font-size:9px;font-weight:600;border-radius:3px;text-transform:uppercase;flex-shrink:0}.paid-badge{background:#8e8e9326;color:var(--color-text-tertiary, #aeaeb2)}.partial-badge{background:#ff950026;color:var(--color-warning, #ff9500)}.requested-badge{background:#007aff26;color:var(--color-primary, #007aff)}.holdback-badge{background:#8e8e9326;color:var(--color-text-tertiary, #aeaeb2);cursor:help;position:relative}.holdback-badge:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:500;text-transform:none;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:100;pointer-events:none}.holdback-badge:hover:after{opacity:1;visibility:visible}.selected-badge{background:#34c75926;color:var(--color-success, #34c759)}.no-stages{font-size:13px;color:var(--color-text-tertiary, #aeaeb2);font-style:italic;margin:0}.apartment-selected-total{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid var(--color-success, #34c759)}.apartment-selected-total .selected-label{font-size:12px;font-weight:500;color:var(--color-text-secondary, #86868b)}.apartment-selected-total .selected-amount{font-size:16px;font-weight:700;color:var(--color-success, #34c759)}.empty-apartments{text-align:center;padding:24px;color:var(--color-text-secondary, #86868b)}.add-custom-btn{padding:8px 14px;background:#34c7591a;border:1px solid var(--color-success, #34c759);border-radius:6px;color:var(--color-success, #34c759);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.add-custom-btn:hover{background:var(--color-success, #34c759);color:#fff}.custom-item-form{background:var(--color-background-secondary, #f5f5f7);border-radius:8px;padding:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:12px;font-weight:500;color:var(--color-text-secondary, #86868b)}.form-group input,.form-group select{padding:10px 12px;border:1px solid var(--color-border, #e5e5ea);border-radius:6px;font-size:14px;background:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff1a}.custom-item-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:12px;border-top:1px solid var(--color-border, #e5e5ea)}.selected-items-section{background:linear-gradient(135deg,#e8f5e9,#f1f8f4);border-color:var(--color-success, #34c759)}.selected-items-list{display:flex;flex-direction:column;gap:8px}.selected-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border-radius:8px;border:1px solid var(--color-border, #e5e5ea)}.item-info{flex:1;display:flex;flex-direction:column;gap:2px}.item-address{font-size:12px;color:var(--color-text-secondary, #86868b)}.item-description{font-size:14px;font-weight:500;color:var(--color-text-primary, #1d1d1f)}.custom-badge{display:inline-block;padding:2px 6px;background:#ff950026;color:var(--color-warning, #ff9500);font-size:10px;font-weight:600;border-radius:4px;text-transform:uppercase;margin-top:4px;width:fit-content}.item-amount{font-size:15px;font-weight:600;color:var(--color-success, #34c759)}.remove-item-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border, #e5e5ea);border-radius:6px;color:var(--color-text-secondary, #86868b);font-size:18px;cursor:pointer;transition:all .2s}.remove-item-btn:hover{background:#ff3b301a;border-color:var(--color-danger, #ff3b30);color:var(--color-danger, #ff3b30)}.items-total{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:2px solid var(--color-success, #34c759);font-size:16px;font-weight:600}.total-amount{font-size:20px;color:var(--color-success, #34c759)}.form-section textarea{width:100%;padding:12px;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;font-size:14px;resize:vertical;min-height:80px;font-family:inherit}.form-section textarea:focus{outline:none;border-color:var(--color-primary, #007aff);box-shadow:0 0 0 3px #007aff1a}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:20px}.cancel-btn,.save-draft-btn,.submit-btn,.add-btn{padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn{background:var(--color-background-secondary, #f5f5f7);border:1px solid var(--color-border, #e5e5ea);color:var(--color-text-primary, #1d1d1f)}.cancel-btn:hover:not(:disabled){background:var(--color-border, #e5e5ea)}.save-draft-btn{background:#fff;border:1px solid var(--color-primary, #007aff);color:var(--color-primary, #007aff)}.save-draft-btn:hover:not(:disabled){background:#007aff0d}.submit-btn,.add-btn{background:var(--color-accent);border:none;color:var(--color-text-inverse)}.submit-btn:hover:not(:disabled),.add-btn:hover:not(:disabled){background:var(--color-accent-hover)}.cancel-btn:disabled,.save-draft-btn:disabled,.submit-btn:disabled,.add-btn:disabled{opacity:.5;cursor:not-allowed}.access-denied,.no-companies{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:12px}.access-denied h2,.no-companies h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.access-denied p,.no-companies p{color:var(--color-text-secondary, #86868b);font-size:14px;margin:0 0 20px}.primary-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) 20px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:14px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal)}.primary-btn:hover{background:var(--color-accent-hover)}@media (max-width: 768px){.create-request-container{padding:16px}.form-row,.stages-grid{grid-template-columns:1fr}.apartment-header{flex-direction:column}.budget-info{width:100%;justify-content:flex-start}.form-actions{flex-direction:column}.form-actions button{width:100%}.selected-item{flex-wrap:wrap}.item-info{min-width:100%}.item-amount{flex:1;text-align:right}}.payment-requests-container{padding:24px;max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px}.page-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.page-header .subtitle{color:var(--color-text-secondary, #86868b);font-size:14px;margin:4px 0 0}.contractor-name{font-weight:500}.new-request-btn{display:flex;align-items:center;gap:var(--space-sm);padding:10px 16px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:14px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal);text-decoration:none;white-space:nowrap;line-height:1}.new-request-btn svg{flex-shrink:0;display:block;width:16px;height:16px;stroke:#fff!important;color:#fff!important;vertical-align:middle;margin-bottom:0!important}.new-request-btn:hover{background:var(--color-accent-hover);color:var(--color-text-inverse)}.payment-requests-container .stats-row{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.payment-requests-container .stat-item{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.payment-requests-container .stat-item:hover{background:var(--color-background-secondary, #f5f5f7)}.payment-requests-container .stat-item.active{border-color:var(--color-primary, #007aff);background:#007aff0d}.payment-requests-container .stat-count{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--color-text-primary);min-width:20px}.payment-requests-container .stat-count.draft{color:var(--color-text-secondary)}.payment-requests-container .stat-count.pending{color:var(--color-warning)}.payment-requests-container .stat-count.awaiting{color:var(--color-info)}.payment-requests-container .stat-count.paid{color:var(--color-success)}.payment-requests-container .stat-item .stat-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.payment-requests-container .stat-item .stat-amount{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:auto}.payment-requests-container .error-banner{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#ff3b301a;border:1px solid rgba(255,59,48,.2);border-radius:8px;color:var(--color-danger, #ff3b30);font-size:13px;margin-bottom:16px}.payment-requests-container .error-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--color-danger, #ff3b30);color:#fff;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.payment-requests-container .requests-list{display:flex;flex-direction:column;gap:8px}.payment-requests-container .request-card{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;overflow:hidden;transition:all .2s}.payment-requests-container .request-card:hover{border-color:var(--color-border-hover, #d1d1d6)}.payment-requests-container .request-card.draft{border-left:3px solid var(--color-text-secondary, #86868b)}.payment-requests-container .request-card.pending{border-left:3px solid var(--color-warning, #ff9500)}.payment-requests-container .request-card.awaiting{border-left:3px solid var(--color-primary, #007aff)}.payment-requests-container .request-card.paid{border-left:3px solid var(--color-success, #34c759)}.payment-requests-container .request-card.overdue{border-color:var(--color-danger, #ff3b30)}.payment-requests-container .request-card.expanded{box-shadow:0 2px 8px #00000014}.payment-requests-container .request-row{display:grid;grid-template-columns:20px 200px 1fr 90px 150px;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s}.payment-requests-container .request-row:hover{background:var(--color-background-secondary, #f5f5f7)}.payment-requests-container .expand-icon{font-size:10px;color:var(--color-text-tertiary, #aeaeb2);text-align:center}.payment-requests-container .request-id-col{display:flex;flex-direction:column;gap:2px;min-width:0}.payment-requests-container .request-number-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.payment-requests-container .request-number{font-size:14px;font-weight:600;color:var(--color-text-primary, #1d1d1f)}.payment-requests-container .request-id-col .invoice-number{font-size:12px;color:var(--color-text-tertiary, #aeaeb2)}.payment-requests-container .status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:10px;font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium)}.payment-requests-container .status-badge.draft{background:var(--color-badge-neutral-bg);color:var(--color-text-secondary)}.payment-requests-container .status-badge.submitted,.payment-requests-container .status-badge.reviewing{background:var(--color-badge-warning-bg);color:var(--color-warning)}.payment-requests-container .status-badge.awaiting{background:var(--color-badge-info-bg);color:var(--color-info)}.payment-requests-container .status-badge.paid{background:var(--color-badge-success-bg);color:var(--color-success)}.payment-requests-container .overdue-badge{display:inline-block;padding:2px 6px;background:var(--color-danger, #ff3b30);color:#fff;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.5px}.payment-requests-container .request-company-col{display:flex;align-items:center;overflow:hidden}.payment-requests-container .company-name{font-size:13px;font-weight:500;color:var(--color-text-primary, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-requests-container .request-amount-col{text-align:right}.payment-requests-container .amount-value{font-size:14px;font-weight:700;color:var(--color-text-primary, #1d1d1f)}.payment-requests-container .amount-value.approved{color:var(--color-success, #34c759)}.payment-requests-container .request-dates-col{display:flex;flex-direction:column;gap:2px;min-width:120px}.payment-requests-container .request-dates-col .date-row{display:flex;justify-content:space-between;gap:8px;font-size:11px}.payment-requests-container .request-dates-col .date-label{color:var(--color-text-tertiary, #aeaeb2)}.payment-requests-container .request-dates-col .date-value{color:var(--color-text-secondary, #86868b);font-weight:500}.payment-requests-container .request-dates-col .date-row.overdue .date-label,.payment-requests-container .request-dates-col .date-row.overdue .date-value{color:var(--color-danger, #ff3b30)}.payment-requests-container .request-dates-col .date-row.paid .date-label,.payment-requests-container .request-dates-col .date-row.paid .date-value{color:var(--color-success, #34c759)}.payment-requests-container .request-details{border-top:1px solid var(--color-border, #e5e5ea);padding:16px;background:var(--color-background-secondary, #f5f5f7)}.payment-requests-container .items-section{display:flex;flex-direction:column;gap:12px}.payment-requests-container .apartment-group{background:#fff;border-radius:6px;padding:10px 12px}.payment-requests-container .apartment-name{font-size:12px;font-weight:600;color:var(--color-text-primary, #1d1d1f);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--color-border, #e5e5ea)}.payment-requests-container .items-list{display:flex;flex-direction:column;gap:6px}.payment-requests-container .item-row{display:flex;align-items:center;gap:8px;padding:4px 8px}.payment-requests-container .item-row.declined{opacity:.6}.payment-requests-container .item-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.payment-requests-container .item-icon.approved{color:var(--color-success, #34c759)}.payment-requests-container .item-icon.declined{color:var(--color-danger, #ff3b30)}.payment-requests-container .item-icon.pending{color:var(--color-text-tertiary, #aeaeb2)}.payment-requests-container .item-name{flex:1;font-size:13px;color:var(--color-text-primary, #1d1d1f)}.payment-requests-container .item-amount{font-size:13px;font-weight:600;color:var(--color-text-primary, #1d1d1f)}.payment-requests-container .decline-reason{font-size:11px;color:var(--color-danger, #ff3b30);font-style:italic;flex-basis:100%;margin-left:24px}.payment-requests-container .request-totals{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#fff;border-radius:6px;margin-top:12px}.payment-requests-container .total-row{display:flex;justify-content:space-between;align-items:center}.payment-requests-container .total-label{font-size:13px;font-weight:500;color:var(--color-text-secondary, #86868b)}.payment-requests-container .total-value{font-size:14px;font-weight:700;color:var(--color-text-primary, #1d1d1f)}.payment-requests-container .total-row.approved .total-label,.payment-requests-container .total-row.approved .total-value{color:var(--color-success, #34c759)}.payment-requests-container .total-row.declined .total-label,.payment-requests-container .total-row.declined .total-value{color:var(--color-danger, #ff3b30)}.payment-requests-container .request-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border, #e5e5ea)}.payment-requests-container .action-btn{padding:var(--space-sm) 14px;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);border:none;display:inline-flex;align-items:center;gap:6px}.payment-requests-container .action-btn.edit{background:var(--color-accent);color:var(--color-text-inverse)}.payment-requests-container .action-btn.edit:hover{background:var(--color-accent-hover)}.payment-requests-container .action-btn.cancel{background:#fff;border:1px solid var(--color-border, #e5e5ea);color:var(--color-text-secondary, #86868b)}.payment-requests-container .action-btn.cancel:hover{border-color:var(--color-danger, #ff3b30);color:var(--color-danger, #ff3b30)}.payment-requests-container .action-btn.download{background:var(--color-bg-secondary);border:var(--border-width-thick) solid var(--color-success);color:var(--color-success)}.payment-requests-container .action-btn.download:hover:not(:disabled){background:var(--color-badge-success-bg)}.payment-requests-container .action-btn.download:disabled{opacity:.6;cursor:not-allowed}.payment-requests-container .action-btn.download svg{flex-shrink:0}.payment-requests-container .action-btn:disabled{opacity:.5;cursor:not-allowed}.payment-requests-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:10px;color:var(--color-text-secondary, #86868b)}.payment-requests-container .empty-state svg{margin-bottom:12px;opacity:.5}.payment-requests-container .empty-state h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.payment-requests-container .empty-state p{color:var(--color-text-secondary, #86868b);font-size:14px;margin:0 0 16px!important}.payment-requests-container .empty-state .new-request-btn{margin-top:0}.payment-requests-container .access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:12px}.payment-requests-container .access-denied h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.payment-requests-container .access-denied p{color:var(--color-text-secondary, #86868b);font-size:13px;margin:0}@media (max-width: 900px){.payment-requests-container .request-row{grid-template-columns:20px 160px 1fr 80px 120px;gap:8px}}@media (max-width: 768px){.payment-requests-container{padding:16px}.page-header{flex-direction:column;align-items:stretch}.new-request-btn{justify-content:center}.payment-requests-container .stats-row{flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.payment-requests-container .stat-item{padding:8px 12px}.payment-requests-container .stat-item .stat-amount{display:none}.payment-requests-container .request-row{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px 14px}.payment-requests-container .expand-icon{order:-1}.payment-requests-container .request-id-col{flex:1;min-width:140px}.payment-requests-container .request-company-col{flex-basis:100%;order:10}.payment-requests-container .request-amount-col{margin-left:auto}.payment-requests-container .request-dates-col{flex-basis:100%;flex-direction:row;gap:16px;order:11}.payment-requests-container .request-dates-col .date-row{flex-direction:row;gap:4px}.payment-requests-container .request-actions{flex-wrap:wrap}}.payment-management-container{padding:24px;max-width:1200px;margin:0 auto}.payment-management-container .page-header{margin-bottom:20px}.payment-management-container .page-header h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.payment-management-container .stats-row{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.payment-management-container .stat-item{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.payment-management-container .stat-item:hover{background:var(--color-background-secondary, #f5f5f7)}.payment-management-container .stat-item.active{border-color:var(--color-primary, #007aff);background:#007aff0d}.payment-management-container .stat-count{font-size:var(--font-size-h4);font-weight:var(--font-weight-bold);color:var(--color-text-primary);min-width:20px}.payment-management-container .stat-count.pending{color:var(--color-warning)}.payment-management-container .stat-count.awaiting{color:var(--color-info)}.payment-management-container .stat-count.paid{color:var(--color-success)}.payment-management-container .stat-item .stat-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.payment-management-container .stat-item .stat-amount{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:auto}.payment-management-container .error-banner{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#ff3b301a;border:1px solid rgba(255,59,48,.2);border-radius:8px;color:var(--color-danger, #ff3b30);font-size:13px;margin-bottom:16px}.payment-management-container .error-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--color-danger, #ff3b30);color:#fff;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.payment-management-container .requests-list{display:flex;flex-direction:column;gap:8px}.payment-management-container .request-card{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;overflow:hidden;transition:all .2s}.payment-management-container .request-card:hover{border-color:var(--color-border-hover, #d1d1d6)}.payment-management-container .request-card.pending{border-left:3px solid var(--color-warning, #ff9500)}.payment-management-container .request-card.awaiting{border-left:3px solid var(--color-primary, #007aff)}.payment-management-container .request-card.paid{border-left:3px solid var(--color-success, #34c759)}.payment-management-container .request-card.urgent{border-color:var(--color-warning, #ff9500)}.payment-management-container .request-card.overdue{border-color:var(--color-danger, #ff3b30)}.payment-management-container .request-card.expanded{box-shadow:0 2px 8px #00000014}.payment-management-container .request-row{display:grid;grid-template-columns:20px 200px 1fr 90px 150px;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s}.payment-management-container .request-row:hover{background:var(--color-background-secondary, #f5f5f7)}.payment-management-container .expand-icon{font-size:10px;color:var(--color-text-tertiary, #aeaeb2);text-align:center}.payment-management-container .request-id-col{display:flex;flex-direction:column;gap:2px;min-width:0}.payment-management-container .request-number-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.payment-management-container .request-number{font-size:14px;font-weight:600;color:var(--color-text-primary, #1d1d1f)}.payment-management-container .request-id-col .invoice-number{font-size:12px;color:var(--color-text-tertiary, #aeaeb2)}.payment-management-container .status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:10px;font-size:var(--font-size-xxs);font-weight:var(--font-weight-medium)}.payment-management-container .status-badge.submitted{background:var(--color-badge-warning-bg);color:var(--color-warning)}.payment-management-container .status-badge.reviewing{background:var(--color-badge-info-bg);color:var(--color-info)}.payment-management-container .status-badge.processed{background:var(--color-badge-success-bg);color:var(--color-success)}.payment-management-container .status-badge.awaiting{background:var(--color-badge-info-bg);color:var(--color-info)}.payment-management-container .status-badge.paid{background:var(--color-badge-success-bg);color:var(--color-success)}.payment-management-container .new-badge,.payment-management-container .overdue-badge{display:inline-block;padding:2px 6px;background:var(--color-danger, #ff3b30);color:#fff;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.5px}.payment-management-container .request-contractor{display:flex;align-items:center;gap:6px;overflow:hidden}.payment-management-container .contractor-name{font-size:13px;font-weight:500;color:var(--color-text-primary, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-management-container .billing-company{font-size:12px;color:var(--color-text-tertiary, #aeaeb2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payment-management-container .request-amount-col{text-align:right}.payment-management-container .amount-value{font-size:14px;font-weight:700;color:var(--color-text-primary, #1d1d1f)}.payment-management-container .amount-value.approved{color:var(--color-success, #34c759)}.payment-management-container .request-dates-col{display:flex;flex-direction:column;gap:2px;min-width:120px}.payment-management-container .request-dates-col .date-row{display:flex;justify-content:space-between;gap:8px;font-size:11px}.payment-management-container .request-dates-col .date-label{color:var(--color-text-tertiary, #aeaeb2)}.payment-management-container .request-dates-col .date-value{color:var(--color-text-secondary, #86868b);font-weight:500}.payment-management-container .request-dates-col .date-row.overdue .date-label,.payment-management-container .request-dates-col .date-row.overdue .date-value{color:var(--color-danger, #ff3b30)}.payment-management-container .request-dates-col .date-row.paid .date-label,.payment-management-container .request-dates-col .date-row.paid .date-value{color:var(--color-success, #34c759)}.payment-management-container .request-details{border-top:1px solid var(--color-border, #e5e5ea);padding:16px;background:var(--color-background-secondary, #f5f5f7)}.payment-management-container .items-section{display:flex;flex-direction:column;gap:12px}.payment-management-container .apartment-group{background:#fff;border-radius:6px;padding:10px 12px}.payment-management-container .apartment-name{font-size:12px;font-weight:600;color:var(--color-text-primary, #1d1d1f);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--color-border, #e5e5ea)}.payment-management-container .items-list{display:flex;flex-direction:column;gap:6px}.payment-management-container .item-row{display:flex;align-items:center;gap:8px;padding:4px 8px}.payment-management-container .item-row.declined{opacity:.6}.payment-management-container .item-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.payment-management-container .item-icon.approved{color:var(--color-success, #34c759)}.payment-management-container .item-icon.declined{color:var(--color-danger, #ff3b30)}.payment-management-container .item-icon.pending{color:var(--color-text-tertiary, #aeaeb2)}.payment-management-container .item-name{flex:1;font-size:13px;color:var(--color-text-primary, #1d1d1f)}.payment-management-container .item-amount{font-size:13px;font-weight:600;color:var(--color-text-primary, #1d1d1f)}.payment-management-container .decline-reason{font-size:11px;color:var(--color-danger, #ff3b30);font-style:italic;flex-basis:100%;margin-left:24px}.payment-management-container .request-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border, #e5e5ea)}.payment-management-container .action-btn{padding:var(--space-sm) 14px;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-normal);border:none;display:inline-flex;align-items:center;gap:6px}.payment-management-container .action-btn.review{background:var(--color-accent);color:var(--color-text-inverse)}.payment-management-container .action-btn.review:hover{background:var(--color-accent-hover)}.payment-management-container .action-btn.download{background:var(--color-bg-secondary);border:var(--border-width-thick) solid var(--color-success);color:var(--color-success)}.payment-management-container .action-btn.download:hover:not(:disabled){background:var(--color-badge-success-bg)}.payment-management-container .action-btn.download:disabled{opacity:.6;cursor:not-allowed}.payment-management-container .action-btn.download svg{flex-shrink:0}.payment-management-container .action-btn.mark-paid{background:var(--color-success);color:var(--color-text-inverse)}.payment-management-container .action-btn.mark-paid:hover:not(:disabled){background:var(--color-success-hover)}.payment-management-container .action-btn.mark-paid:disabled{opacity:.6;cursor:not-allowed}.payment-management-container .action-btn.delete{background:var(--color-bg-secondary);border:var(--border-width-thick) solid var(--color-error);color:var(--color-error)}.payment-management-container .action-btn.delete:hover:not(:disabled){background:var(--color-badge-error-bg)}.payment-management-container .action-btn.delete:disabled{opacity:.6;cursor:not-allowed}.payment-management-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:10px;color:var(--color-text-secondary, #86868b)}.payment-management-container .empty-state svg{margin-bottom:12px;opacity:.5}.payment-management-container .empty-state h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.payment-management-container .access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:12px}.payment-management-container .access-denied h2{font-size:var(--font-size-h2);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.payment-management-container .access-denied p{color:var(--color-text-secondary, #86868b);font-size:13px;margin:0}@media (max-width: 900px){.payment-management-container .request-row{grid-template-columns:20px 160px 1fr 80px 120px;gap:8px}}@media (max-width: 768px){.payment-management-container{padding:16px}.payment-management-container .stats-row{flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.payment-management-container .stat-item{padding:8px 12px}.payment-management-container .stat-item .stat-amount{display:none}.payment-management-container .request-row{display:flex;flex-wrap:wrap;gap:6px 12px;padding:10px 14px}.payment-management-container .expand-icon{order:-1}.payment-management-container .request-id-col{flex:1;min-width:140px}.payment-management-container .request-contractor{flex-basis:100%;order:10}.payment-management-container .request-amount-col{margin-left:auto}.payment-management-container .request-dates-col{flex-basis:100%;flex-direction:row;gap:16px;order:11}.payment-management-container .request-dates-col .date-row{flex-direction:row;gap:4px}.payment-management-container .request-actions{flex-wrap:wrap}}.review-request-container{padding:24px;max-width:1200px;margin:0 auto}.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:13px}.breadcrumb a{color:var(--color-primary, #007aff);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .separator{color:var(--color-text-tertiary, #aeaeb2)}.breadcrumb span:last-child{color:var(--color-text-secondary, #86868b)}.review-header{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:12px;padding:20px;margin-bottom:20px}.header-main{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.header-main h1{font-size:var(--font-size-h1);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.request-status-badge{padding:6px var(--space-md);border-radius:16px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.request-status-badge.reviewing{background:var(--color-badge-info-bg);color:var(--color-info)}.request-status-badge.processed{background:var(--color-badge-success-bg);color:var(--color-success)}.header-meta{display:flex;flex-wrap:wrap;gap:20px}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:12px;color:var(--color-text-tertiary, #aeaeb2)}.meta-value{font-size:14px;font-weight:500;color:var(--color-text-primary, #1d1d1f)}.contractor-notes-box{background:linear-gradient(135deg,#e3f2fd,#f5f9ff);border:1px solid rgba(0,122,255,.2);border-radius:10px;padding:16px;margin-bottom:20px}.contractor-notes-box h3{font-size:13px;font-weight:600;color:var(--color-primary, #007aff);margin:0 0 8px}.contractor-notes-box p{font-size:14px;color:var(--color-text-primary, #1d1d1f);margin:0;line-height:1.5}.review-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.stat-box{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:10px;padding:14px 16px;text-align:center}.stat-box .stat-value{font-size:20px;font-weight:700;color:var(--color-text-primary, #1d1d1f);display:block;margin-bottom:2px}.stat-box .stat-label{font-size:12px;color:var(--color-text-secondary, #86868b)}.stat-box.pending{background:linear-gradient(135deg,#fff3e0,#fffbf5);border-color:var(--color-warning, #ff9500)}.stat-box.pending .stat-value{color:var(--color-warning, #ff9500)}.stat-box.approved{background:linear-gradient(135deg,#e8f5e9,#f5fbf6);border-color:var(--color-success, #34c759)}.stat-box.approved .stat-value{color:var(--color-success, #34c759)}.stat-box.declined{background:linear-gradient(135deg,#ffebee,#fff5f5);border-color:var(--color-danger, #ff3b30)}.stat-box.declined .stat-value{color:var(--color-danger, #ff3b30)}.bulk-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.approve-all-btn{padding:10px 18px;background:var(--color-success);border:none;border-radius:var(--radius-md);color:var(--color-text-inverse);font-size:14px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal)}.approve-all-btn:hover:not(:disabled){background:var(--color-success-hover)}.approve-all-btn:disabled{opacity:.6;cursor:not-allowed}.items-section{background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:12px;padding:20px;margin-bottom:20px}.items-section h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 16px}.apartment-group{margin-bottom:20px}.apartment-group:last-child{margin-bottom:0}.apartment-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--color-background-secondary, #f5f5f7);border-radius:8px;margin-bottom:10px}.apartment-header.custom{background:linear-gradient(135deg,#fff3e0,#fffbf5)}.apartment-link{font-size:14px;font-weight:600;color:var(--color-primary, #007aff);text-decoration:none}.apartment-link:hover{text-decoration:underline}.apartment-code{font-size:12px;color:var(--color-text-tertiary, #aeaeb2)}.items-list{display:flex;flex-direction:column;gap:4px}.item-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--color-background-secondary, #f5f5f7);border-radius:6px;border:1px solid transparent}.item-row.approved{background:#34c75914;border-color:#34c75933}.item-row.declined{background:#ff3b3014;border-color:#ff3b3033}.item-row.pending{background:#fff;border-color:var(--color-border, #e5e5ea)}.item-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.item-description{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.description-text{font-size:14px;font-weight:500;color:var(--color-text-primary, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-badge{display:inline-block;padding:2px 6px;background:#ff950026;color:var(--color-warning, #ff9500);font-size:10px;font-weight:600;border-radius:4px;text-transform:uppercase;flex-shrink:0}.item-amount{font-size:14px;font-weight:600;color:var(--color-text-primary, #1d1d1f);white-space:nowrap;min-width:80px;text-align:right}.item-status-row{display:flex;align-items:center;gap:8px;flex-shrink:0}.item-status-badge{display:inline-block;padding:3px 8px;border-radius:10px;font-size:11px;font-weight:500}.item-status-badge.pending{background:#ff950026;color:var(--color-warning, #ff9500)}.item-status-badge.approved{background:#34c75926;color:var(--color-success, #34c759)}.item-status-badge.declined{background:#ff3b3026;color:var(--color-danger, #ff3b30)}.decline-reason{font-size:12px;color:var(--color-danger, #ff3b30);font-style:italic;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.decline-reason-text{font-size:12px;color:var(--color-danger, #ff3b30);font-style:italic}.stage-badge{display:inline-block;padding:2px 8px;background:#007aff1a;color:var(--color-primary, #007aff);font-size:11px;font-weight:600;border-radius:4px}.item-actions{display:flex;gap:6px;flex-shrink:0;margin-left:auto}.approve-btn,.decline-btn{padding:5px 12px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.approve-btn{background:var(--color-success);border:none;color:var(--color-text-inverse)}.approve-btn:hover:not(:disabled){background:var(--color-success-hover)}.decline-btn{background:var(--color-bg-secondary);border:var(--border-width-thick) solid var(--color-error);color:var(--color-error)}.decline-btn:hover:not(:disabled){background:var(--color-badge-error-bg)}.approve-btn:disabled,.decline-btn:disabled,.undo-btn:disabled{opacity:.5;cursor:not-allowed}.undo-btn{padding:5px 12px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;background:#fff;border:1px solid var(--color-text-tertiary, #aeaeb2);color:var(--color-text-secondary, #86868b)}.undo-btn:hover:not(:disabled){background:var(--color-background-secondary, #f5f5f7);border-color:var(--color-text-secondary, #86868b);color:var(--color-text-primary, #1d1d1f)}.review-footer{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#fff;border:1px solid var(--color-border, #e5e5ea);border-radius:12px;gap:16px;flex-wrap:wrap}.review-footer .cancel-btn,.review-footer .back-btn{padding:12px 20px;background:var(--color-background-secondary, #f5f5f7);border:1px solid var(--color-border, #e5e5ea);border-radius:8px;color:var(--color-text-primary, #1d1d1f);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .2s}.review-footer .cancel-btn:hover,.review-footer .back-btn:hover{background:var(--color-border, #e5e5ea);color:var(--color-text-primary, #1d1d1f)}.complete-btn{padding:var(--space-md) var(--space-xl);background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-text-inverse);font-size:14px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-normal)}.complete-btn:hover:not(:disabled){background:var(--color-accent-hover)}.complete-btn:disabled{opacity:.5;cursor:not-allowed}.review-footer.processed{justify-content:space-between}.processed-info{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--color-text-secondary, #86868b)}.access-denied,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;background:var(--color-background-secondary, #f5f5f7);border-radius:12px}.access-denied h2,.error-state h2{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 8px}.access-denied p,.error-state p{color:var(--color-text-secondary, #86868b);font-size:14px;margin:0 0 20px}.error-state .back-btn{display:inline-block;padding:12px 20px;background:var(--color-primary, #007aff);color:#fff;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500}.actions-bar.view-only{display:flex;justify-content:flex-start;padding:16px 0;margin-top:20px;border-top:1px solid var(--color-border, #e5e5ea)}.actions-bar .back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-background-secondary, #f5f5f7);color:var(--color-text-primary, #1d1d1f);border-radius:8px;text-decoration:none;font-size:14px;font-weight:500;transition:background .2s}.actions-bar .back-btn:hover{background:var(--color-border, #e5e5ea);color:var(--color-text-primary, #1d1d1f)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;padding:24px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-content h3{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 12px}.modal-item-desc{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--color-background-secondary, #f5f5f7);border-radius:8px;font-size:14px;color:var(--color-text-primary, #1d1d1f);margin-bottom:16px}.modal-item-amount{font-weight:600;color:var(--color-text-primary, #1d1d1f);margin-left:12px}.modal-content label{display:block;font-size:13px;font-weight:500;color:var(--color-text-secondary, #86868b);margin-bottom:6px}.modal-content textarea{width:100%;padding:12px;border:1px solid var(--color-border, #e5e5ea);border-radius:8px;font-size:14px;resize:vertical;min-height:80px;font-family:inherit;margin-bottom:16px}.modal-content textarea:focus{outline:none;border-color:var(--color-danger, #ff3b30);box-shadow:0 0 0 3px #ff3b301a}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions .cancel-btn{padding:10px 18px;background:var(--color-background-secondary, #f5f5f7);border:1px solid var(--color-border, #e5e5ea);border-radius:8px;color:var(--color-text-primary, #1d1d1f);font-size:14px;font-weight:500;cursor:pointer}.decline-confirm-btn{padding:10px 18px;background:var(--color-danger, #ff3b30);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.decline-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.invoice-success-modal{text-align:center;max-width:420px}.invoice-success-icon{margin-bottom:16px}.invoice-success-modal h3{font-size:20px;margin-bottom:8px;color:var(--color-success, #34c759)}.invoice-number{font-size:18px;font-weight:700;color:var(--color-text-primary, #1d1d1f);margin:0 0 4px}.invoice-amount{font-size:28px;font-weight:700;color:var(--color-success, #34c759);margin:0 0 20px}.invoice-sent-info{background:var(--color-background-secondary, #f5f5f7);border-radius:10px;padding:16px;margin-bottom:20px;text-align:left}.invoice-sent-title{font-size:13px;font-weight:600;color:var(--color-text-secondary, #86868b);margin:0 0 10px}.invoice-recipients{list-style:none;padding:0;margin:0}.invoice-recipients li{font-size:14px;color:var(--color-text-primary, #1d1d1f);padding:4px 0;display:flex;align-items:center;gap:8px}.invoice-recipients li:before{content:"";display:inline-block;width:6px;height:6px;background:var(--color-success, #34c759);border-radius:50%;flex-shrink:0}.no-recipients{font-size:13px;color:var(--color-text-tertiary, #aeaeb2);font-style:italic;margin:0}.invoice-modal-actions{display:flex;flex-direction:column;gap:10px}.download-invoice-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;background:var(--color-success, #34c759);border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.download-invoice-btn:hover{background:#2db34f}.done-btn{width:100%;padding:14px 20px;background:var(--color-background-secondary, #f5f5f7);border:1px solid var(--color-border, #e5e5ea);border-radius:10px;color:var(--color-text-primary, #1d1d1f);font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.done-btn:hover{background:var(--color-border, #e5e5ea)}.complete-confirm-modal{text-align:center;max-width:420px}.confirm-icon{margin-bottom:12px}.complete-confirm-modal h3{font-size:20px;margin-bottom:12px;color:var(--color-text-primary, #1d1d1f)}.confirm-message{font-size:14px;color:var(--color-text-secondary, #86868b);margin:0 0 8px}.confirm-amount{font-size:28px;font-weight:700;color:var(--color-primary, #007aff);margin:0 0 20px}.confirm-recipients{background:#fff8e6;border:1px solid #ffd666;border-radius:10px;padding:16px;margin-bottom:20px;text-align:left}.recipients-title{font-size:13px;font-weight:600;color:#946200;margin:0 0 10px}.recipients-list{list-style:none;padding:0;margin:0 0 8px}.recipients-list li{font-size:14px;color:var(--color-text-primary, #1d1d1f);padding:4px 0;display:flex;align-items:center;gap:8px}.recipients-list li:before{content:"";display:inline-block;width:6px;height:6px;background:#ff9500;border-radius:50%;flex-shrink:0}.recipients-note{font-size:12px;color:var(--color-text-tertiary, #aeaeb2);font-style:italic;margin:0;padding-top:8px;border-top:1px dashed #ffd666}.manage-recipients-link{display:inline-block;margin-top:12px;font-size:13px;color:var(--color-primary, #007aff);text-decoration:none;padding-top:8px;border-top:1px dashed #ffd666}.manage-recipients-link:hover{text-decoration:underline}.confirm-complete-btn{flex:1;padding:var(--space-md) 20px;background:var(--color-accent);border:none;border-radius:var(--radius-md);color:var(--color-text-inverse);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-normal)}.confirm-complete-btn:hover{background:var(--color-accent-hover)}@media (max-width: 768px){.review-request-container{padding:16px}.header-main{flex-direction:column;align-items:flex-start}.header-meta{flex-direction:column;gap:12px}.review-stats{grid-template-columns:1fr 1fr}.item-main{flex-direction:column;align-items:flex-start}.item-amount{align-self:flex-end}.item-actions{flex-direction:column}.item-actions button{width:100%}.review-footer{flex-direction:column;align-items:stretch}.review-footer .cancel-btn,.review-footer .back-btn,.complete-btn{width:100%;text-align:center}.modal-content{padding:20px}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}:root{--color-primary: #000000;--color-accent: #DD4132;--color-accent-hover: #c23828;--color-success: #34c759;--color-success-hover: #2db34f;--color-warning: #ff9500;--color-warning-hover: #e68600;--color-error: #ff3b30;--color-error-hover: #e6352b;--color-info: #007aff;--color-info-hover: #0066d6;--color-text-primary: #1d1d1f;--color-text-secondary: #86868b;--color-text-tertiary: #aeaeb2;--color-text-inverse: #ffffff;--color-bg-primary: #F7F2E9;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f5f5f7;--color-bg-hover: #ebebed;--color-border: #e5e5ea;--color-border-light: #f0f0f0;--color-border-focus: #007aff;--color-badge-success-bg: rgba(52, 199, 89, .15);--color-badge-warning-bg: rgba(255, 149, 0, .15);--color-badge-error-bg: rgba(255, 59, 48, .15);--color-badge-info-bg: rgba(0, 122, 255, .15);--color-badge-neutral-bg: rgba(142, 142, 147, .15);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Courier New", monospace;--font-size-h1: 2rem;--font-size-h2: 1.5rem;--font-size-h3: 1.25rem;--font-size-h4: 1.125rem;--font-size-base: .9375rem;--font-size-sm: .8125rem;--font-size-xs: .75rem;--font-size-xxs: .6875rem;--font-size-h1-mobile: 1.5rem;--font-size-h2-mobile: 1.25rem;--font-size-h3-mobile: 1.125rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--space-4xl: 64px;--border-width: 1px;--border-width-thick: 1.5px;--border-width-heavy: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 32px rgba(0, 0, 0, .16);--shadow-focus: 0 0 0 3px rgba(0, 122, 255, .3);--shadow-focus-error: 0 0 0 3px rgba(255, 59, 48, .3);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-toast: 800;--container-max-width: 1200px;--sidebar-width: 260px;--header-height: 56px}.status-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;line-height:1}.status-badge--success{background:var(--color-badge-success-bg);color:var(--color-success)}.status-badge--warning{background:var(--color-badge-warning-bg);color:var(--color-warning)}.status-badge--error{background:var(--color-badge-error-bg);color:var(--color-error)}.status-badge--info{background:var(--color-badge-info-bg);color:var(--color-info)}.status-badge--neutral{background:var(--color-badge-neutral-bg);color:var(--color-text-secondary)}.status-badge--sm{padding:2px var(--space-sm);font-size:var(--font-size-xxs);border-radius:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;border-radius:var(--radius-md);font-family:var(--font-family);font-size:14px;font-weight:var(--font-weight-medium);line-height:1;cursor:pointer;transition:all var(--transition-normal);border:var(--border-width-thick) solid transparent;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-bg-hover)}.btn--success{background:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn--success:hover:not(:disabled){background:var(--color-success-hover);border-color:var(--color-success-hover)}.btn--danger{background:var(--color-bg-secondary);color:var(--color-error);border-color:var(--color-error)}.btn--danger:hover:not(:disabled){background:var(--color-badge-error-bg)}.btn--ghost{background:transparent;color:var(--color-info);border-color:transparent}.btn--ghost:hover:not(:disabled){background:var(--color-badge-info-bg)}.btn--sm{padding:6px 12px;font-size:var(--font-size-sm)}.btn--lg{padding:14px 28px;font-size:var(--font-size-base)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.segmented-control{display:inline-flex;align-items:center;background:var(--color-bg-tertiary);border-radius:10px;padding:var(--space-xs);gap:var(--space-xs)}.segment{display:inline-flex;align-items:center;gap:6px;padding:var(--space-sm) 20px;background:transparent;border:none;border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.segment:hover{color:var(--color-text-primary);background:#0000000d}.segment.active{background:var(--color-bg-secondary);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);box-shadow:0 2px 8px #00000014}.segment svg{flex-shrink:0;opacity:.6;transition:opacity var(--transition-normal)}.segment:hover svg{opacity:.8}.segment.active svg{opacity:1}.segment-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);opacity:.7;margin-left:2px}.segment.active .segment-count{opacity:1}.filter-tabs{display:flex;gap:var(--space-sm);flex-wrap:wrap}.filter-tab{padding:var(--space-sm) var(--space-lg);background:transparent;border:none;border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.filter-tab:hover{background:#0000000a}.filter-tab.active{background:var(--color-accent);color:var(--color-text-inverse)}:root{--primary: var(--color-primary);--accent: var(--color-accent);--text: var(--color-text-primary);--muted-text: var(--color-text-secondary);--white: var(--color-bg-secondary);--bg: var(--color-bg-primary);--light-gray: var(--color-bg-tertiary);--gray: var(--color-border);--border: var(--color-border);--container-width: var(--container-max-width);--border-radius: var(--radius-md);--border-radius-lg: var(--radius-lg);--shadow: var(--shadow-md);--transition: var(--transition-slow)}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:var(--line-height-normal)}code{font-family:var(--font-mono)}#root{min-height:100vh;display:flex;flex-direction:column}html{scroll-behavior:smooth}html{overflow-x:hidden}@media (max-width: 1023px){body{overflow-x:hidden;max-width:100vw}#root{overflow-x:hidden}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background-color:var(--color-accent);color:var(--color-text-inverse)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-color:var(--color-bg-secondary);padding-right:36px;cursor:pointer}a{color:var(--color-info);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-info-hover)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3)}h4{font-size:var(--font-size-h4)}@media (max-width: 767px){h1{font-size:var(--font-size-h1-mobile)}h2{font-size:var(--font-size-h2-mobile)}h3{font-size:var(--font-size-h3-mobile)}}
