:root{--primary: #0088ff;--primary-dark: #006fd6;--primary-light: #e6f3ff;--text: #2d2d30;--text-muted: #6b7280;--success: #28c76f;--success-bg: #e3f9ed;--warning: #ff9f43;--warning-bg: #fff2e3;--danger: #ea5455;--danger-bg: #fde8e8;--info: #00cfe8;--table-stripe: #fafbfc;--table-hover: #f0f6ff;--table-border: #e5e7eb;--panel-heading-bg: #f8f9fb;--surface: #ffffff;--page-bg: #f4f6f8;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 4px 16px rgba(16, 24, 40, .08);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .12)}*{box-sizing:border-box}body{font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:var(--text);margin:0;background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{display:flex;height:100vh}#list{width:440px;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--table-border);box-shadow:var(--shadow-md);z-index:1}#table-scroll{flex:1;overflow-y:auto}#map{flex:1;background:var(--page-bg)}table{width:100%;border-collapse:collapse}thead th{position:sticky;top:0;background:var(--panel-heading-bg);box-shadow:inset 0 -1px 0 var(--table-border);padding:10px 12px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}th:first-child{width:36px}td{padding:10px 12px;border-bottom:1px solid var(--table-border);text-align:left;font-size:13px;vertical-align:middle}tbody tr{transition:background .12s ease}tbody tr:nth-child(odd){background:var(--table-stripe)}tbody tr:hover{background:var(--table-hover);cursor:pointer}tbody tr.selected{background:var(--primary-light);box-shadow:inset 3px 0 0 var(--primary)}tbody tr.selected td{font-weight:600}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.badge-DEVIATION{color:var(--danger);background:var(--danger-bg)}.badge-ISSUE{color:var(--warning);background:var(--warning-bg)}.badge-READ{color:var(--success);background:var(--success-bg)}.badge-PENDING{color:var(--text-muted);background:var(--table-border)}#login{max-width:360px;margin:12vh auto;padding:40px 36px;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg)}.field-label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin:0 0 6px}#login input{display:block;width:100%;margin-bottom:18px;padding:10px 12px;font-size:14px;font-family:inherit;border:1px solid var(--table-border);border-radius:8px;background:var(--page-bg);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}#login input:focus{outline:none;border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-light)}#login button{width:100%;padding:11px;font-size:14px;font-weight:700;background:var(--primary);color:#fff;border:none;border-radius:8px;cursor:pointer;box-shadow:0 2px 8px #0088ff59;transition:background .15s ease,transform .1s ease,box-shadow .15s ease}#login button:hover{background:var(--primary-dark);box-shadow:0 4px 12px #08f6;transform:translateY(-1px)}#login button:active{transform:translateY(0)}#login-error{min-height:1.2em;margin:14px 0 0;color:var(--danger);font-size:13px;text-align:center}.brand-logo{display:block;height:40px;margin:0 auto 24px}#login h1{text-align:center;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin:0 0 28px}#brand-header{padding:18px 20px;border-bottom:1px solid var(--table-border);background:var(--surface)}#brand-header img{height:26px;display:block}#brand-subtitle{display:block;margin-top:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.maplibregl-popup-content{border-radius:10px;box-shadow:var(--shadow-lg);padding:14px 16px;font-family:inherit}.maplibregl-popup img{max-width:220px;display:block;margin-top:8px;border-radius:6px}#app-message:not([hidden]){display:flex;align-items:center;justify-content:center;height:100vh;padding:24px;max-width:420px;margin:0 auto;text-align:center;color:var(--text-muted);font-size:15px}#table-scroll::-webkit-scrollbar{width:8px}#table-scroll::-webkit-scrollbar-thumb{background:var(--table-border);border-radius:4px}#table-scroll::-webkit-scrollbar-thumb:hover{background:#cbd2d9}
