.theme-toggle{background:none;border:1px solid var(--color-border);border-radius:6px;padding:var(--spacing-xs);font-size:1.25rem;cursor:pointer;color:var(--color-text);display:flex;align-items:center;justify-content:center;width:38px;height:38px;transition:background-color .2s ease,border-color .2s ease}.theme-toggle:hover{background-color:var(--color-background-alt);border-color:var(--color-primary)}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background-color:var(--color-background);border-bottom:1px solid var(--color-border);z-index:1000}.header-nav{max-width:var(--max-width);margin:0 auto;height:100%;padding:0 var(--spacing-md);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-sm)}.header-brand{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);flex-shrink:0}.header-links{display:flex;list-style:none;gap:var(--spacing-sm);justify-content:center}.header-links a{color:var(--color-text);text-decoration:none;font-size:var(--font-size-base);padding:var(--spacing-xs);border-radius:4px;transition:color .2s ease,background-color .2s ease;white-space:nowrap}.header-links a:hover,.header-links a.active{color:var(--color-primary);background-color:var(--color-background-alt)}.header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0;white-space:nowrap}.header-user{display:flex;align-items:center;gap:var(--spacing-xs)}.header-user-avatar{width:32px;height:32px;border-radius:50%}.header-user-name{font-size:var(--font-size-sm);color:var(--color-text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-login-btn{background-color:var(--color-primary);color:#fff;border:none;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);border-radius:6px;cursor:pointer;transition:background-color .2s ease;white-space:nowrap;flex-shrink:0}.header-login-btn:hover{background-color:var(--color-primary-hover)}@media(max-width:600px){.header-nav{padding:0 var(--spacing-sm)}.header-brand{font-size:var(--font-size-lg)}.header-links{gap:var(--spacing-sm)}.header-links a{font-size:var(--font-size-sm);padding:var(--spacing-xs)}.header-login-btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}}.about-section{padding:var(--spacing-xl) var(--spacing-md);background-color:var(--color-background);background-size:cover;background-position:center;background-repeat:no-repeat;position:relative}.about-section:before{content:"";position:absolute;inset:0;background-color:#00000080;z-index:1}.about-content{max-width:var(--max-width);margin:0 auto;text-align:center;position:relative;z-index:2}.about-title{font-size:var(--font-size-2xl);color:#fff;margin-bottom:var(--spacing-md);min-height:1.2em}.typing-cursor{animation:blink .7s infinite;font-weight:100}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.about-description{font-size:var(--font-size-lg);color:#ffffffe6;max-width:800px;margin:0 auto var(--spacing-lg);line-height:1.6;opacity:0;transform:translateY(-30px)}.about-description.waterfall-visible{animation:waterfall .6s ease-out forwards}@keyframes waterfall{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.about-features{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-top:var(--spacing-lg)}.about-feature{padding:var(--spacing-md);background-color:var(--color-background-alt);border-radius:8px;opacity:0;transform:translate(-30px)}.about-feature.slide-in{animation:slideInLeft .5s ease-out forwards}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.about-feature h3{font-size:var(--font-size-lg);color:var(--color-primary);margin-bottom:var(--spacing-sm)}.about-feature p{font-size:var(--font-size-base);color:var(--color-text-light);line-height:1.5}@media(max-width:900px){.about-features{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.about-section{padding:var(--spacing-lg) var(--spacing-sm)}.about-title{font-size:var(--font-size-xl)}.about-description{font-size:var(--font-size-base)}.about-features{grid-template-columns:1fr}}.sublease-grid{margin-top:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.sublease-content{max-width:1200px;margin:0 auto;text-align:center}.sublease-card{border:1px solid var(--color-border);border-radius:8px;padding:16px;background:var(--color-card-bg);box-shadow:0 2px 4px var(--color-shadow)}.sublease-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sublease-tag{background:var(--color-info-bg);color:var(--color-info);padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.sublease-price{font-size:18px;font-weight:700;color:var(--color-success)}.sublease-location{margin:8px 0;font-size:16px;color:var(--color-text);font-weight:500}.sublease-dates{font-size:14px;color:var(--color-text-light);margin-bottom:6px}.sublease-description{font-size:14px;color:var(--color-text-light);line-height:1.4;margin-bottom:12px}.sublease-form{background:var(--color-card-bg);margin:30px auto;padding:28px;border-radius:8px;max-width:600px;box-shadow:0 2px 4px var(--color-shadow);display:flex;flex-direction:column;gap:12px}.sublease-form input,.sublease-form textarea{padding:12px;border-radius:6px;border:1px solid var(--color-border);font-size:14px;background:var(--color-input-bg);color:var(--color-text)}.sublease-form input:focus,.sublease-form textarea:focus{outline:none;border-color:var(--color-primary)}.sublease-button-wrapper{display:flex;justify-content:center;margin-top:10px}.post-sublease-btn{background-color:var(--color-primary);color:#fff;border:none;padding:14px 32px;font-size:1rem;border-radius:8px;cursor:pointer;font-weight:500;box-shadow:0 2px 4px var(--color-shadow-hover);transition:background .2s ease,transform .1s ease}.post-sublease-btn:hover{background-color:var(--color-primary-hover);transform:translateY(-1px)}.sublease-placeholder{background:var(--color-card-bg);border-radius:12px;padding:60px 40px;margin-bottom:30px;box-shadow:0 2px 8px var(--color-shadow)}.sublease-placeholder p{font-size:1.2rem;color:var(--color-text-light);margin:10px 0}.comments-section{margin-top:16px;border-top:1px solid #e0e0e0;padding-top:12px}.comments-toggle-btn{width:100%;background-color:#f5f5f5;border:1px solid #e0e0e0;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;color:#333;display:flex;justify-content:space-between;align-items:center;transition:background-color .2s ease}.comments-toggle-btn:hover{background-color:#ececec}.toggle-icon{font-size:12px;margin-left:8px;color:#666}.comments-container{margin-top:12px;background-color:#fafafa;border-radius:6px;padding:12px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.comment-form{display:flex;gap:8px;margin-bottom:12px}.comment-input{flex:1;padding:10px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;background-color:#fff}.comment-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 2px #1976d21a}.comment-submit-btn{background-color:#1976d2;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.comment-submit-btn:hover{background-color:#1565c0}.comments-list{display:flex;flex-direction:column;gap:10px}.no-comments{text-align:center;color:#999;font-size:13px;padding:20px;font-style:italic}.comment{background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:12px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.comment-author{font-weight:600;font-size:13px;color:#1976d2}.comment-timestamp{font-size:11px;color:#999}.comment-text{font-size:14px;color:#333;line-height:1.4;margin-bottom:8px;word-wrap:break-word}.comment-delete-btn{background-color:transparent;border:1px solid #d32f2f;color:#d32f2f;padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease}.comment-delete-btn:hover{background-color:#d32f2f;color:#fff}.form-field{display:flex;flex-direction:column;gap:4px}.field-error{color:#d32f2f;font-size:12px;text-align:left}.sublease-form input.input-error,.sublease-form textarea.input-error{border-color:#d32f2f}.sublease-success{background-color:var(--color-success, #2e7d32);color:#fff;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;max-width:600px;margin:16px auto;animation:fadeIn .3s ease-out}.comment-input-wrapper{flex:1;display:flex;flex-direction:column;gap:4px}.comment-error{color:#d32f2f;font-size:12px;text-align:left}.comment-input.input-error{border-color:#d32f2f}.comment-success{color:var(--color-success, #2e7d32);font-size:12px;text-align:left}.delete-confirm{display:flex;align-items:center;gap:8px;font-size:13px;color:#d32f2f;font-weight:500}.delete-confirm-btn{background-color:#d32f2f;color:#fff;border:none;padding:4px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.delete-confirm-btn:hover{background-color:#b71c1c}.delete-cancel-btn{background-color:transparent;border:1px solid var(--color-border, #ccc);color:var(--color-text, #333);padding:4px 12px;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .2s ease}.delete-cancel-btn:hover{background-color:var(--color-border, #e0e0e0)}.image-upload-label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--color-text);font-weight:500}.image-upload-label input[type=file]{padding:8px;border:1px dashed var(--color-border);border-radius:6px;background:var(--color-input-bg);cursor:pointer;font-size:13px;color:var(--color-text-light)}.image-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.image-preview{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;border:1px solid var(--color-border)}.card-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;margin-bottom:12px}.card-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;border:1px solid var(--color-border)}.sublease-login-prompt{background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info);border-radius:8px;padding:14px 24px;font-size:var(--font-size-base);display:inline-block}.sublease-error{background-color:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error);border-radius:8px;padding:12px 20px;font-size:var(--font-size-sm);max-width:600px;margin:12px auto;text-align:center}.sublease-card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text);margin-bottom:4px}.sublease-author{font-size:var(--font-size-sm);color:var(--color-muted);margin-top:8px;margin-bottom:8px}.post-delete-btn{background:none;border:1px solid var(--color-error);color:var(--color-error);border-radius:6px;padding:4px 10px;font-size:var(--font-size-sm);cursor:pointer;margin-bottom:8px;transition:background .2s ease,color .2s ease}.post-delete-btn:hover{background-color:var(--color-error);color:#fff}.author-email{color:var(--color-muted);font-style:italic}.comment-author-info{display:flex;flex-direction:column;gap:1px}.comment-author-email{font-size:11px;color:#888;font-style:italic;font-weight:400}.chat-section{padding:var(--spacing-xl) var(--spacing-md);background-color:var(--color-background)}.chat-content{max-width:var(--max-width);margin:0 auto}.chat-title{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--spacing-xs);text-align:center}.chat-subtitle{font-size:var(--font-size-base);color:var(--color-text-light);margin-bottom:var(--spacing-lg);text-align:center}.chat-layout{display:flex;gap:16px;align-items:flex-start}.chat-rooms{display:flex;flex-direction:column;gap:8px;min-width:200px}.chat-room-btn{display:flex;flex-direction:column;align-items:flex-start;padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background);color:var(--color-text);cursor:pointer;text-align:left;transition:background .2s,border-color .2s}.chat-room-btn:hover{background:var(--color-surface, #f5f5f5)}.chat-room-btn.active{border-color:var(--color-primary, #4f8ef7);background:var(--color-primary-light, #eef3ff);color:var(--color-primary, #4f8ef7)}.room-label{font-weight:600;font-size:14px}.room-desc{font-size:11px;color:var(--color-text-light);margin-top:2px}.chat-room-btn.active .room-desc{color:var(--color-primary, #4f8ef7);opacity:.8}.chat-window{flex:1;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:var(--color-background);min-height:480px;max-height:560px}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-status{text-align:center;color:var(--color-text-light);font-size:14px;margin:auto}.chat-error{color:#e55}.chat-empty{opacity:.6}.chat-message{display:flex;flex-direction:column;gap:4px;max-width:80%;align-self:flex-start}.chat-message.own{align-self:flex-end}.chat-message-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chat-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover}.chat-author{font-weight:600;font-size:13px;color:var(--color-text)}.chat-author-email{font-size:11px;color:var(--color-text-light);font-style:italic}.chat-timestamp{font-size:11px;color:var(--color-text-light);margin-left:auto}.chat-message-body{background:var(--color-surface, #f0f0f0);color:var(--color-text);padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.5;word-break:break-word}.chat-message.own .chat-message-body{background:var(--color-primary, #4f8ef7);color:#fff}.chat-delete-btn{background:none;border:none;cursor:pointer;font-size:12px;opacity:.5;padding:0;align-self:flex-end}.chat-delete-btn:hover{opacity:1}.chat-delete-confirm{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-light)}.confirm-btn{background:#e55;color:#fff;border:none;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:12px}.cancel-btn{background:var(--color-border);border:none;border-radius:4px;padding:2px 8px;cursor:pointer;font-size:12px}.chat-input-form{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border);background:var(--color-background)}.chat-input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;background:var(--color-background);color:var(--color-text)}.chat-send-btn{padding:10px 20px;background:var(--color-primary, #4f8ef7);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-login-prompt{padding:14px 16px;border-top:1px solid var(--color-border);text-align:center;font-size:14px;color:var(--color-text-light)}@media(max-width:640px){.chat-layout{flex-direction:column}.chat-rooms{flex-direction:row;min-width:unset;overflow-x:auto}.chat-room-btn{min-width:140px}.room-desc{display:none}}.listing-card{border:1px solid var(--color-border);border-radius:8px;padding:16px;background:var(--color-card-bg);box-shadow:0 2px 4px var(--color-shadow)}.listing-selected{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 20%,transparent)}.listing-select-row{display:flex;justify-content:flex-end;margin-bottom:8px}.listing-select-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-light)}.listing-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.listing-category{background:var(--color-info-bg);color:var(--color-info);padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.listing-price{font-size:18px;font-weight:700;color:var(--color-success)}.listing-address{margin:8px 0;font-size:16px;color:var(--color-text)}.listing-clickable{cursor:pointer}.listing-address-link{color:var(--color-primary);text-decoration:none;transition:color .2s ease}.listing-address-link:hover{color:var(--color-info);text-decoration:underline}.listing-details{color:var(--color-text-light);font-size:14px}.listing-details .separator{margin:0 8px;color:var(--color-separator)}.listing-source{margin-top:12px;font-size:12px;color:var(--color-muted)}.listing-list{margin-top:20px}.listing-count{margin-bottom:16px;color:var(--color-text-light);font-size:14px}.listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.listing-status{text-align:center;padding:40px;color:var(--color-text-light);background:var(--color-background-alt);border-radius:8px}.listing-error{text-align:center;padding:20px;color:var(--color-error);background:var(--color-error-bg);border-radius:8px}.all-listings-section{padding:var(--spacing-xl) var(--spacing-md);background-color:var(--color-background-alt)}.all-listings-content{max-width:var(--max-width);margin:0 auto;text-align:center}.all-listings-title{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--spacing-xs)}.all-listings-subtitle{font-size:var(--font-size-base);color:var(--color-text-light);margin-bottom:var(--spacing-lg)}.all-listings-actions{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap;justify-content:center}.all-listings-share-actions{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:center}.all-listings-share-btn,.all-listings-copy-btn{border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);border-radius:6px;padding:8px 14px;font-size:14px;cursor:pointer}.all-listings-share-btn:hover:not(:disabled),.all-listings-copy-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.all-listings-copy-btn:disabled{opacity:.6;cursor:not-allowed}.all-listings-selected-count{font-size:13px;color:var(--color-text-light)}.all-listings-share-message{margin:0 auto 12px;max-width:640px;padding:10px 12px;border-radius:6px;background:var(--color-info-bg);color:var(--color-info);font-size:14px}.all-listings-load-btn{background:var(--color-primary);color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:16px;cursor:pointer;transition:background .2s}.all-listings-load-btn:hover:not(:disabled){background:var(--color-primary-hover)}.all-listings-load-btn:disabled{opacity:.6;cursor:not-allowed}.all-listings-scrape-btn{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary);padding:12px 24px;border-radius:6px;font-size:16px;cursor:pointer;transition:background .2s,color .2s}.all-listings-scrape-btn:hover:not(:disabled){background:var(--color-primary);color:#fff}.all-listings-scrape-btn:disabled{opacity:.6;cursor:not-allowed}.all-listings-meta{color:var(--color-text-light);font-size:14px}.all-listings-error{padding:16px;margin-bottom:16px;background:var(--color-error-bg);color:var(--color-error);border-radius:8px}.all-listings-filters{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:8px;padding:20px;margin-bottom:20px}.filters-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;justify-content:center}.filters-row:last-of-type{margin-bottom:0}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-label{font-size:12px;font-weight:600;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.02em}.filter-input{padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;min-width:80px;background:var(--color-input-bg);color:var(--color-text)}.filter-number{width:90px}.filter-select{cursor:pointer;background:var(--color-input-bg);color:var(--color-text);min-width:100px}.filters-sources{align-items:flex-start}.filters-sources .filter-label{flex-basis:100%}.source-chips{display:flex;flex-wrap:wrap;gap:8px}.source-chip{padding:6px 12px;border:1px solid var(--color-border);border-radius:20px;font-size:13px;background:var(--color-card-bg);color:var(--color-text);cursor:pointer;transition:background .2s,border-color .2s}.source-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.source-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.filter-hint{font-size:12px;color:var(--color-text-light);flex-basis:100%;margin-top:4px}.clear-filters-btn{margin-top:12px;padding:8px 16px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-card-bg);font-size:14px;cursor:pointer;color:var(--color-text-light)}.clear-filters-btn:hover{background:var(--color-background-alt);color:var(--color-text)}.all-listings-count-summary{margin-bottom:12px;font-size:14px;color:var(--color-text-light)}@media(max-width:600px){.all-listings-section{padding:var(--spacing-lg) var(--spacing-sm)}.all-listings-title{font-size:var(--font-size-xl)}.filters-row{gap:12px}.filter-number{width:100%;min-width:unset}.filter-select{min-width:unset;width:100%}}.footer{background-color:var(--color-text);color:var(--color-background);padding:var(--spacing-xl) var(--spacing-md) var(--spacing-md)}.footer-content{max-width:var(--max-width);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.footer-section{text-align:left}.footer-title{font-size:var(--font-size-lg);color:var(--color-background);margin-bottom:var(--spacing-sm)}.footer-text{font-size:var(--font-size-sm);color:var(--color-footer-text);line-height:1.6;margin-bottom:var(--spacing-xs)}.footer-links{list-style:none}.footer-links li{margin-bottom:var(--spacing-xs)}.footer-links a{color:var(--color-footer-text);text-decoration:none;font-size:var(--font-size-sm);transition:color .2s ease}.footer-links a:hover{color:var(--color-background)}.footer-bottom{max-width:var(--max-width);margin:var(--spacing-lg) auto 0;padding-top:var(--spacing-md);border-top:1px solid var(--color-footer-border);text-align:center}.footer-bottom p{font-size:var(--font-size-sm);color:var(--color-footer-muted)}@media(max-width:900px){.footer-content{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.footer{padding:var(--spacing-lg) var(--spacing-sm) var(--spacing-sm)}.footer-content{grid-template-columns:1fr;gap:var(--spacing-md)}.footer-section{text-align:center}}.map-view{max-width:1200px;margin:0 auto;padding:2rem 1rem}.map-title{font-size:1.8rem;font-weight:700;margin-bottom:.5rem}.map-subtitle{color:var(--text-secondary, #666);margin-bottom:1.5rem}.map-layout{display:flex;gap:1rem;height:550px;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px #0000001a}.map-sidebar{width:30%;min-width:220px;background:#fafafa;border-right:1px solid #e0e0e0;overflow-y:auto}.map-sidebar-status{padding:1.5rem 1rem;color:var(--text-secondary, #666);text-align:center;font-size:.95rem}.map-sidebar-list{list-style:none;margin:0;padding:0}.map-sidebar-item{padding:.75rem 1rem;border-bottom:1px solid #eee;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;transition:background .15s}.map-sidebar-item:hover{background:#e8f0fe}.map-sidebar-item.active{background:#d2e3fc;border-left:3px solid #2563eb}.sidebar-item-address{font-weight:600;font-size:.9rem;color:#222}.sidebar-item-price{font-weight:700;font-size:.95rem;color:#2563eb}.sidebar-item-details{font-size:.8rem;color:#555}.sidebar-item-source{font-size:.75rem;color:#999;text-transform:capitalize}.map-container{flex:1;position:relative}.map-geocoding-overlay{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;background:#000000b3;color:#fff;padding:.4rem 1rem;border-radius:20px;font-size:.85rem}.map-loading,.map-error{text-align:center;padding:2rem;font-size:1.1rem}.map-error{color:#e74c3c}.map-info-window{max-width:250px;font-family:inherit}.map-info-address{font-size:.95rem;font-weight:600;margin:0 0 .25rem;color:#333}.map-info-price{font-size:1.1rem;font-weight:700;color:#2563eb;margin:.25rem 0}.map-info-details{font-size:.85rem;color:#555;margin:.25rem 0}.map-info-source{font-size:.8rem;color:#888;margin:.25rem 0}.map-info-link{display:inline-block;margin-top:.5rem;padding:.3rem .75rem;background:#2563eb;color:#fff;border-radius:6px;text-decoration:none;font-size:.85rem;font-weight:500}.map-info-link:hover{background:#1d4ed8}@media(max-width:768px){.map-layout{flex-direction:column;height:auto}.map-sidebar{width:100%;max-height:250px;border-right:none;border-bottom:1px solid #e0e0e0}.map-container{height:400px}}.admin-page{padding-top:calc(var(--header-height) + var(--spacing-lg));padding-bottom:var(--spacing-xl);min-height:100vh;background-color:var(--color-background-alt)}.admin-container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md)}.admin-title{font-size:var(--font-size-2xl);color:var(--color-text);margin-bottom:var(--spacing-md)}.admin-empty{color:var(--color-text-light);font-size:var(--font-size-lg);text-align:center;padding:var(--spacing-xl) 0}.admin-table-wrapper{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;background-color:var(--color-background);border-radius:8px;overflow:hidden;box-shadow:0 1px 3px var(--color-shadow)}.admin-table th,.admin-table td{text-align:left;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border)}.admin-table th{background-color:var(--color-background-alt);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-light);text-transform:uppercase;letter-spacing:.05em}.admin-table tbody tr:hover{background-color:var(--color-background-alt)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-role-select{padding:4px 8px;border-radius:6px;border:1px solid var(--color-border);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;background-color:var(--color-background);color:var(--color-text)}.admin-role-select:disabled{cursor:not-allowed;opacity:.6}.admin-role-select.admin-role-admin{background-color:var(--color-role-admin-bg);color:var(--color-role-admin)}.admin-role-select.admin-role-user{background-color:var(--color-role-user-bg);color:var(--color-text-light)}.admin-save-btn{padding:4px 14px;border:none;border-radius:6px;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;background-color:var(--color-primary);color:#fff;transition:opacity .15s}.admin-save-btn:hover:not(:disabled){opacity:.85}.admin-save-btn:disabled{cursor:not-allowed;opacity:.4}.admin-feedback{padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);font-weight:500}.admin-feedback-success{background-color:#dcfce7;color:#166534}.admin-feedback-error{background-color:#fee2e2;color:#991b1b}@media(max-width:600px){.admin-page{padding-top:calc(var(--header-height) + var(--spacing-md))}.admin-container{padding:0 var(--spacing-sm)}.admin-title{font-size:var(--font-size-xl)}.admin-table th,.admin-table td{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;margin-top:var(--header-height)}.main-content section{scroll-margin-top:var(--header-height)}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-text: #333;--color-text-light: #666;--color-background: #fff;--color-background-alt: #f5f5f5;--color-border: #e0e0e0;--color-card-bg: #fff;--color-shadow: rgba(0, 0, 0, .1);--color-shadow-hover: rgba(0, 0, 0, .15);--color-success: #2e7d32;--color-error: #c62828;--color-error-bg: #ffebee;--color-info-bg: #e3f2fd;--color-info: #1565c0;--color-muted: #999;--color-separator: #ccc;--color-footer-text: #aaa;--color-footer-border: #555;--color-footer-muted: #888;--color-role-admin-bg: #dbeafe;--color-role-admin: #1e40af;--color-role-user-bg: #f3f4f6;--color-input-bg: #fff;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 3rem;--spacing-xl: 4rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--max-width: 1200px;--header-height: 70px}[data-theme=dark]{--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-text: #e4e4e7;--color-text-light: #a1a1aa;--color-background: #18181b;--color-background-alt: #27272a;--color-border: #3f3f46;--color-card-bg: #27272a;--color-shadow: rgba(0, 0, 0, .3);--color-shadow-hover: rgba(0, 0, 0, .4);--color-success: #4ade80;--color-error: #f87171;--color-error-bg: #451a1a;--color-info-bg: #1e3a5f;--color-info: #93c5fd;--color-muted: #71717a;--color-separator: #52525b;--color-footer-text: #a1a1aa;--color-footer-border: #3f3f46;--color-footer-muted: #71717a;--color-role-admin-bg: #1e3a5f;--color-role-admin: #93c5fd;--color-role-user-bg: #3f3f46;--color-input-bg: #27272a}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text);background-color:var(--color-background);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
