*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.esri-view *,.esri-view *:before,.esri-view *:after{box-sizing:content-box;margin:initial;padding:initial}:root{--color-bg: #f7f7f7;--color-surface: #ffffff;--color-primary: #1a4b8c;--color-primary-hover: #153d72;--color-primary-light: #e8f0fe;--color-text: #1a1a1a;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-success-bg: #f0fdf4;--color-success-border: #86efac;--color-success-text: #166534;--color-error-bg: #fef2f2;--color-error-border: #fca5a5;--color-error-text: #991b1b;--color-warning-bg: #fffbeb;--color-warning-border: #fcd34d;--color-warning-text: #92400e;--radius: 6px;--radius-lg: 10px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.5;font-size:16px}a{color:var(--color-primary)}.loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--color-text-muted)}.page-center{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:3rem 2.5rem;width:100%;max-width:400px;text-align:center}.logo{font-size:1.75rem;font-weight:700;letter-spacing:-.5px;color:var(--color-primary);margin-bottom:0}.tagline{color:var(--color-text-muted);margin-bottom:2rem;font-size:.95rem}.help-text{margin-top:1.5rem;font-size:.85rem;color:var(--color-text-muted)}.app-layout{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 2rem;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:2rem}.header .logo{font-size:1.25rem}.nav{display:flex;gap:.25rem}.nav-link{padding:.5rem .75rem;border-radius:var(--radius);text-decoration:none;font-size:.9rem;font-weight:500;color:var(--color-text-muted);transition:all .15s}.nav-link:hover{color:var(--color-text);background:var(--color-bg)}.nav-link.active{color:var(--color-primary);background:var(--color-primary-light)}.user-info{display:flex;align-items:center;gap:1rem;font-size:.9rem}.org-nr{color:var(--color-text-muted);font-size:.8rem}.main-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.page-header{margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:600}.page-header p{color:var(--color-text-muted);font-size:.95rem;margin-top:.25rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.25rem}.stat-card .stat-label{font-size:.8rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-card .stat-value{font-size:2rem;font-weight:700;color:var(--color-text);margin-top:.25rem}.stat-card .stat-detail{font-size:.85rem;color:var(--color-text-muted);margin-top:.25rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr}}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card-header h2{font-size:1.1rem;font-weight:600}.upload-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:2.5rem;width:100%;max-width:560px}.upload-card h1{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.description{color:var(--color-text-muted);margin-bottom:2rem;font-size:.95rem}.upload-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-weight:500;font-size:.9rem}.form-group select,.form-group input[type=file],.form-group input[type=text]{padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;background:var(--color-bg);width:100%}.form-group select:focus,.form-group input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.file-drop{border:2px dashed var(--color-border);border-radius:var(--radius);padding:1.25rem;text-align:center}.file-name{margin-top:.75rem;font-size:.9rem;color:var(--color-text-muted)}.btn-primary{display:inline-block;background:var(--color-primary);color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius);border:none;font-size:1rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s;text-align:center}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:inline-block;background:var(--color-surface);color:var(--color-primary);padding:.5rem 1rem;border-radius:var(--radius);border:1px solid var(--color-border);font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .15s;text-align:center}.btn-secondary:hover{background:var(--color-bg);border-color:var(--color-primary)}.btn-danger{display:inline-block;background:var(--color-error-bg);color:var(--color-error-text);padding:.4rem .75rem;border-radius:var(--radius);border:1px solid var(--color-error-border);font-size:.85rem;cursor:pointer;transition:all .15s}.btn-danger:hover{background:#fee2e2}.btn-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.alert{padding:.875rem 1rem;border-radius:var(--radius);font-size:.9rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.alert-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.alert-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text)}.alert-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text)}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th{text-align:left;padding:.75rem 1rem;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);border-bottom:2px solid var(--color-border)}.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table tr:hover td{background:var(--color-bg)}.data-table .empty-row td{text-align:center;padding:2rem;color:var(--color-text-muted)}.job-progress{margin-top:1rem}.progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.progress-percent{font-weight:600;font-size:.9rem}.progress-bar-track{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .3s ease;background:var(--color-primary)}.progress-bar-fill.status-completed{background:#22c55e}.progress-bar-fill.status-failed{background:#ef4444}.progress-bar-fill.status-running{background:var(--color-primary)}.progress-step{font-size:.85rem;color:var(--color-text-muted);margin-top:.5rem}.status-badge{display:inline-block;padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.status-badge.status-pending,.status-badge.status-queued{background:#f3f4f6;color:#6b7280}.status-badge.status-running{background:#dbeafe;color:#1d4ed8}.status-badge.status-completed{background:#dcfce7;color:#166534}.status-badge.status-failed{background:#fee2e2;color:#991b1b}.type-badge{display:inline-block;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.map-container{height:calc(100vh - 56px - 4rem);min-height:400px}.map-sidebar{position:absolute;top:10px;right:10px;z-index:1000;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1rem;max-height:calc(100% - 20px);overflow-y:auto;min-width:200px}.map-sidebar h3{font-size:.9rem;font-weight:600;margin-bottom:.75rem}.map-legend-item{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem}.map-legend-color{width:16px;height:4px;border-radius:2px;flex-shrink:0}.map-wrapper{position:relative}.quick-links{display:flex;gap:.75rem;flex-wrap:wrap}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;gap:1rem}.error-page h1{font-size:1.5rem}.error-page p{color:var(--color-text-muted)}.error-details{background:var(--color-bg);padding:1rem;border-radius:var(--radius);font-size:.85rem;max-width:500px;overflow-x:auto}.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem}.pagination button{padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;font-size:.85rem}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pagination-info{font-size:.85rem;color:var(--color-text-muted)}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.85rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.flex-between{display:flex;justify-content:space-between;align-items:center}
