*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{text-decoration:none;color:inherit}button{border:none;background:none;cursor:pointer}:root{--bg: oklch(1 0 0);--fg: oklch(.145 0 0);--card: oklch(1 0 0);--card-fg: oklch(.145 0 0);--primary: oklch(.6926 .1185 190.52);--primary-fg: oklch(.145 0 0);--secondary: oklch(.3971 .0664 225.67);--secondary-fg: oklch(.985 0 0);--hover: oklch(.97 0 0);--muted: oklch(.97 0 0);--muted-fg: oklch(.556 0 0);--destructive: oklch(.577 .245 27.325);--destructive-fg: oklch(.577 .245 27.325);--border: oklch(.829 0 0);--input: oklch(1 0 0);--ring: oklch(.708 0 0);--text: oklch(.145 0 0);--text-white: oklch(.985 0 0);--text-muted: oklch(.6 0 0);--text-hover: oklch(1 0 0);--color-success: oklch(.6 .15 145);--color-warning: oklch(.7 .15 85);--color-info: oklch(.6 .15 230);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-family-mono: "Courier New", Courier, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--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.75;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--radius: .625rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: var(--radius);--radius-xl: calc(var(--radius) + 4px);--radius-2xl: calc(var(--radius) + 8px);--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 2px 2px 0px rgba(0, 0, 0, .075);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--navbar-height: 58px;--search-section-height: 118px}.dark{--bg: oklch(.18 0 0);--fg: oklch(.95 0 0);--card: oklch(.22 0 0);--card-fg: oklch(.985 0 0);--popover: oklch(.145 0 0);--popover-fg: oklch(.985 0 0);--muted: oklch(.25 0 0);--muted-fg: oklch(.6 0 0);--destructive: oklch(.396 .141 25.723);--destructive-fg: oklch(.637 .237 25.331);--border: oklch(.35 0 0);--input: oklch(.25 0 0);--ring: oklch(.439 0 0);--text: oklch(.95 0 0);--text-white: oklch(.985 0 0);--text-muted: oklch(.6 0 0);--text-hover: oklch(.145 0 0)}body{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text);background-color:var(--bg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}*{scrollbar-width:thin;scrollbar-color:var(--primary) transparent}#app{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--spacing-sm)}a{color:var(--text);transition:color var(--transition-fast)}button{font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text);background-color:var(--bg);border:1px solid var(--border);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast);width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);cursor:pointer}button:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:scale(1.01)}button:disabled,button.button--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}button:disabled:hover,button.button--disabled:hover{border-color:var(--border);box-shadow:none;transform:none}.container{width:100%;max-width:var(--breakpoint-xl);margin:0 auto;padding:0 var(--spacing-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.app-layout{display:flex;flex-direction:column;min-height:100vh}.main-content{display:flex;flex:1}.content-area{flex:1;display:flex;flex-direction:column;overflow-y:auto}@media(max-width:768px){.main-content{flex-direction:column}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:var(--z-index-sticky);height:var(--navbar-height)}.navbar-brand{display:flex;align-items:center;gap:var(--spacing-md)}.navbar-logo{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.logo-icon{width:100%;height:100%;object-fit:contain}.navbar-title h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text);margin:0;line-height:1.2}.navbar-subtitle{font-size:var(--font-size-sm);color:var(--muted-fg);margin:0;line-height:1.2}.navbar-actions{display:flex;gap:var(--spacing-sm);align-items:center}.navbar-btn{padding:var(--spacing-xs) var(--spacing-md);background:transparent;border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--font-size-base);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-xs);min-height:35px;box-shadow:var(--shadow)}.navbar-btn:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.navbar-btn:active{transform:scale(.98)}.filter-section{display:flex;flex-direction:column;gap:var(--spacing-sm);justify-content:space-between;width:350px;background:var(--bg);border-right:1px solid var(--border);padding:var(--spacing-sm) var(--spacing-md);overflow-x:hidden;overflow-y:auto;height:calc(100vh - var(--navbar-height))}.section-divider{height:1px;background:var(--border);margin:var(--spacing-sm) calc(-1 * var(--spacing-md));box-shadow:var(--shadow)}.filter-top{display:flex;flex-direction:column;gap:var(--spacing-md)}.filter-group{display:flex;flex-direction:column;height:100%;gap:var(--spacing-xs)}.filter-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--fg);display:flex;align-items:center;gap:var(--spacing-sm)}.filter-icon{color:var(--primary)}.filter-action-btn{width:100%;padding:var(--spacing-xs) var(--spacing-sm);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);transition:background-color var(--transition-fast)}.dark .filter-action-btn{background:var(--card)}.filter-action-btn .icon{color:var(--fg)}.filter-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--fg);margin-bottom:var(--spacing-xs)}.filter-input{width:100%;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-size:var(--font-size-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow)}.dark .filter-input{background:var(--card)}.filter-input:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.filter-input:focus{outline:none;border-color:var(--primary)}.filter-input::placeholder{color:var(--muted-fg)}.filter-input::-webkit-calendar-picker-indicator{cursor:pointer}.dark .filter-input::-webkit-calendar-picker-indicator{filter:invert(1)}.drawn-bbox-display{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--muted-bg);border-radius:var(--radius);border:1px solid var(--border);font-size:var(--font-size-xs)}.bbox-coords{flex:1;display:flex;flex-direction:column;gap:2px}.bbox-coord-row{display:flex;justify-content:space-around;align-items:center;gap:var(--spacing-sm)}.bbox-coord-content{display:flex;gap:var(--spacing-xs)}.bbox-coord-label{font-weight:var(--font-weight-medium);color:var(--muted-fg);font-size:.7rem;min-width:32px}.bbox-coord-value{color:var(--fg);text-align:end;font-family:monospace;font-size:.75rem;min-width:55px}.bbox-clear{background:none;width:25px;height:35px;padding:2px;cursor:pointer;color:var(--muted-fg);border:1.5px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast),background-color var(--transition-fast)}.bbox-clear:hover{color:var(--destructive);border-color:var(--border)}.modal-close{width:24px;height:24px;border:1.5px solid var(--border);border-radius:var(--radius-sm)}.filter-bottom{display:flex;flex-direction:column;gap:var(--spacing-md);height:100%;padding-top:var(--spacing-sm)}.filter-field{display:flex;flex-direction:column;gap:var(--spacing-xs);height:100%}.filter-textarea{width:100%;height:100%;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-size:var(--font-size-sm);font-family:Fira Code,Monaco,Consolas,monospace;resize:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow)}.dark .filter-textarea{background:var(--card)}.filter-textarea:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.filter-textarea:focus{outline:none;border-color:var(--primary)}.filter-textarea::placeholder{color:var(--muted-fg);font-family:inherit}.filter-hint{font-size:var(--font-size-xs);color:var(--muted-fg);margin-top:var(--spacing-xs);line-height:1.4;transition:color var(--transition-fast)}.filter-hint.formatting{color:var(--primary);font-style:italic}.filter-actions{display:flex;gap:var(--spacing-sm);padding-top:var(--spacing-sm)}.btn-apply{height:34px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow);background:var(--primary);color:var(--text-white);border:none;width:100%}.custom-select{position:relative;width:100%}.select-trigger{width:100%;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);font-size:var(--font-size-sm);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);text-align:left;box-shadow:var(--shadow)}.dark .select-trigger{background:var(--card)}.select-trigger:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.custom-select.is-open .select-trigger{background-color:var(--primary);border-color:var(--primary)}.select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--spacing-sm)}.select-icon{flex-shrink:0;color:var(--fg);transition:transform var(--transition-fast)}.custom-select.is-open .select-icon{transform:rotate(180deg)}.select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);max-height:240px;overflow-y:auto;z-index:var(--z-index-dropdown);animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.select-option{padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;color:var(--text);font-size:var(--font-size-sm);transition:background-color var(--transition-fast)}.select-option:hover{background:var(--hover)}.select-option.is-selected{background:var(--primary);color:var(--text);font-weight:var(--font-weight-semibold)}.select-option.is-selected:hover{background:var(--primary);opacity:.9}.select-dropdown::-webkit-scrollbar{width:8px}.select-dropdown::-webkit-scrollbar-track{background:var(--bg);border-radius:var(--radius)}.select-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius)}.select-dropdown::-webkit-scrollbar-thumb:hover{background:var(--muted-fg)}.search-section{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);background:var(--bg);border-bottom:1px solid var(--border)}.search-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--fg)}.search-count{font-size:var(--font-size-xs);color:var(--muted-fg);margin:0}.search-bar{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-sm) var(--spacing-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow)}.dark .search-bar{background:var(--card)}.search-bar:hover,.search-bar:focus-within{border-color:var(--primary);box-shadow:var(--shadow-sm)}.search-icon{color:var(--muted-fg)}.search-input{flex:1;border:none;background:transparent;color:var(--fg);font-size:var(--font-size-base);padding:0}.search-input:focus{outline:none}.search-input::placeholder{color:var(--muted-fg)}.search-results{padding:var(--spacing-md);background:var(--bg);max-height:calc(100vh - var(--search-section-height) - var(--navbar-height) - 42px);height:100%;overflow-y:scroll}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--spacing-md)}@media(max-width:768px){.search-results{padding:var(--spacing-md)}.results-grid{grid-template-columns:1fr}}
