.jp-root * { box-sizing: border-box; }
.jp-root { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 100%; margin: 20px 0; background: #fff; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.1); overflow: hidden; }
.jp-header { background: linear-gradient(135deg,#2c3e50 0%,#34495e 100%); color: #fff; padding: 20px; text-align: center; }
.jp-header h3 { margin: 0 0 8px 0; font-size: 1.8rem; font-weight: 300; }
.jp-header p { margin: 0; opacity: .9; font-size: .95rem; }
.jp-controls { padding: 15px; background: #f8f9fa; border-bottom: 1px solid #e9ecef; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.jp-search-box { flex: 1; min-width: 200px; }
.jp-search-box input { width: 100%; padding: 10px 12px; border: 2px solid #e9ecef; border-radius: 6px; font-size: 14px; }
.jp-search-box input:focus { outline: none; border-color: #667eea; }
.jp-filter-group { display: flex; gap: 8px; align-items: center; }
.jp-filter-select { padding: 8px 12px; border: 2px solid #e9ecef; border-radius: 6px; background: #fff; font-size: 14px; }
.jp-export-buttons { display: flex; gap: 8px; }
.jp-btn { padding: 8px 16px; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600; text-decoration: none; display: inline-block; transition: all .2s; }
.jp-btn-primary { background: #667eea; color: #fff; }
.jp-btn-primary:hover { background: #5a6fd8; color:#fff; text-decoration: none; }
.jp-btn-secondary { background:#6c757d; color:#fff; }
.jp-btn-secondary:hover { background:#5a6268; color:#fff; text-decoration: none; }
.jp-table-container { overflow-x: auto; max-height: 600px; }
.jp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.jp-table thead { background: #f8f9fa; position: sticky; top: 0; z-index: 10; }
.jp-table th, .jp-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid #e9ecef; }
.jp-table th { font-weight: 600; color: #495057; cursor: pointer; user-select: none; }
.jp-table th:hover { background: #e9ecef; }
.jp-table th.sortable::after { content: ' \21C5'; opacity: .5; }
.jp-table th.sort-asc::after { content: ' \25B2'; opacity: 1; }
.jp-table th.sort-desc::after { content: ' \25BC'; opacity: 1; }
.jp-table tbody tr:hover { background: #f8f9fa; }
.jp-category-tag { display: inline-block; padding: 3px 7px; border-radius: 10px; font-size: 11px; font-weight: 500; color: #fff; }
.jp-category-military { background: #dc3545; }
.jp-category-ski { background: #17a2b8; }
.jp-category-shopping { background: #28a745; }
.jp-category-food { background: #fd7e14; }
.jp-category-outdoor { background: #6f42c1; }
.jp-category-navigation { background: #6c757d; }
.jp-category-transport { background: #e83e8c; }
.jp-category-other { background: #20c997; }
.jp-coordinates { font-family: 'Courier New', monospace; font-size: 11px; }
.jp-stats { padding: 12px 15px; background: #f8f9fa; border-top: 1px solid #e9ecef; font-size: 13px; color: #6c757d; }
.jp-view-link { color: #667eea; text-decoration: none; font-size: 11px; }
.jp-view-link:hover { text-decoration: underline; }
@media (max-width: 768px) {
  .jp-controls { flex-direction: column; align-items: stretch; }
  .jp-search-box { min-width: auto; }
  .jp-filter-group, .jp-export-buttons { justify-content: center; }
  .jp-table th, .jp-table td { padding: 8px 6px; font-size: 12px; }
  .jp-coordinates { font-size: 10px; }
}
