:root{--primary: #667eea;--primary-dark: #5568d3;--secondary: #764ba2;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--text: #1f2937;--text-light: #6b7280;--bg: #ffffff;--bg-secondary: #f9fafb;--border: #e5e7eb;--shadow: rgba(0, 0, 0, .1);--header-height: 60px;--panel-height: 40vh;--transition: .3s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme: dark){:root{--text: #f9fafb;--text-light: #d1d5db;--bg: #111827;--bg-secondary: #1f2937;--border: #374151;--shadow: rgba(0, 0, 0, .3)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;z-index:9999;transition:opacity var(--transition)}.loading.hidden{opacity:0;pointer-events:none}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading p{margin-top:20px;font-size:16px}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.header{height:var(--header-height);background:var(--bg);border-bottom:1px solid var(--border);box-shadow:0 2px 8px var(--shadow);z-index:100}.header-content{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 16px;max-width:1400px;margin:0 auto}.header-title{font-size:20px;font-weight:600;background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;gap:8px}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;transition:background var(--transition)}.icon-btn:hover{background:var(--bg-secondary)}.icon-btn:active{transform:scale(.95)}.map{flex:1;position:relative;background:#e5e7eb}.panel{position:fixed;bottom:0;left:0;right:0;height:var(--panel-height);background:var(--bg);border-radius:20px 20px 0 0;box-shadow:0 -4px 20px var(--shadow);transform:translateY(calc(100% - 60px));transition:transform var(--transition);z-index:90;touch-action:none}.panel.open{transform:translateY(0)}.panel.full{height:calc(100vh - var(--header-height) - 20px);height:calc(100dvh - var(--header-height) - 20px)}.panel-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:12px auto;cursor:grab}.panel-handle:active{cursor:grabbing}.panel-content{height:calc(100% - 28px);overflow-y:auto;padding:0 16px 16px}@media (min-width: 768px){.panel{left:auto;right:20px;bottom:20px;width:400px;height:calc(100vh - var(--header-height) - 40px);height:calc(100dvh - var(--header-height) - 40px);border-radius:16px;transform:translate(calc(100% + 20px))}.panel.open{transform:translate(0)}.panel-handle{display:none}}.modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity var(--transition);padding:20px}.modal.open{opacity:1;pointer-events:all}.modal-content{background:var(--bg);border-radius:16px;width:100%;max-width:500px;max-height:90vh;max-height:90dvh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;transform:scale(.9);transition:transform var(--transition)}.modal.open .modal-content{transform:scale(1)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:20px;font-weight:600}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:24px;cursor:pointer;transition:background var(--transition)}.modal-close:hover{background:var(--bg-secondary)}.modal-body{flex:1;overflow-y:auto;padding:20px}.input,.select{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:16px;transition:border-color var(--transition)}.input:focus,.select:focus{outline:none;border-color:var(--primary)}.input-group{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter-group{margin-bottom:20px}.filter-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-light)}.filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all var(--transition)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:var(--bg-secondary);color:var(--text)}.btn-secondary:hover{background:var(--border)}.menu-nav{display:flex;flex-direction:column;gap:8px}.menu-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;color:var(--text);text-decoration:none;transition:background var(--transition)}.menu-item:hover{background:var(--bg-secondary)}.toast-container{position:fixed;top:calc(var(--header-height) + 20px);right:20px;z-index:300;display:flex;flex-direction:column;gap:12px}.toast{padding:16px 20px;background:var(--bg);border-radius:8px;box-shadow:0 4px 12px var(--shadow);border-left:4px solid var(--primary);min-width:300px;animation:slideIn .3s ease}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast.success{border-left-color:var(--success)}.toast.warning{border-left-color:var(--warning)}.toast.error{border-left-color:var(--error)}@media (max-width: 767px){.header-title{font-size:18px}.icon-btn{width:36px;height:36px}}.ol-control{background:var(--bg)!important;border-radius:8px!important}.ol-control button{background:var(--bg)!important;color:var(--text)!important}.ol-zoom{top:20px!important;left:20px!important}.ol-attribution{bottom:20px!important;right:20px!important;background:#fffc!important;backdrop-filter:blur(10px)}.plot-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.plot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.plot-type{display:inline-block;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500;background:var(--primary);color:#fff}.favorite-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:var(--text-light);cursor:pointer;transition:all var(--transition)}.favorite-btn:hover{background:var(--bg-secondary)}.favorite-btn.active{color:var(--error)}.plot-title{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text)}.plot-address{font-size:14px;color:var(--text-light);margin-bottom:16px}.plot-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;padding:12px;background:var(--bg-secondary);border-radius:8px}.plot-detail{display:flex;flex-direction:column;gap:4px}.plot-detail .label{font-size:12px;color:var(--text-light)}.plot-detail .value{font-size:16px;font-weight:600;color:var(--text)}.search-results{margin-top:16px}.search-result{padding:12px;border-radius:8px;cursor:pointer;transition:background var(--transition);border-bottom:1px solid var(--border)}.search-result:hover{background:var(--bg-secondary)}.search-result-title{font-weight:500;margin-bottom:4px}.search-result-address{font-size:14px;color:var(--text-light)}.search-no-results{padding:20px;text-align:center;color:var(--text-light)}.layers-list h3{margin-bottom:16px;font-size:18px}.layer-item{padding:16px;border-radius:8px;cursor:pointer;transition:background var(--transition);border:1px solid var(--border);margin-bottom:8px}.layer-item:hover{background:var(--bg-secondary)}.info-content{padding:8px 0}.info-content h3{margin-bottom:16px;font-size:20px}.info-content p{margin-bottom:12px;line-height:1.6;color:var(--text)}.info-content strong{font-weight:600}.empty-state{padding:40px 20px;text-align:center;color:var(--text-light)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}
