* { box-sizing: border-box; } body { margin: 0; background: #eef1ef; color: #202523; font: 14px system-ui, sans-serif; } header { height: 50px; display: flex; gap: 12px; align-items: center; padding: 0 16px; background: #183a32; color: #fff; } header span { color: #c9d8d2; } #dirty-state.dirty { color: #ffe08a; font-weight: 700; } button { border: 1px solid #82988f; background: #fff; color: #1d392f; padding: 7px 10px; border-radius: 3px; cursor: pointer; } button:disabled { cursor: default; opacity: 0.55; } header button:first-of-type { margin-left: auto; } main { display: grid; grid-template-columns: 260px minmax(0, 1fr) 320px; height: calc(100vh - 50px); } aside { overflow: auto; background: #fff; padding: 16px; } .issues { border-right: 1px solid #d5dfda; } .inspector { border-left: 1px solid #d5dfda; } .map { position: relative; background: #d7e2de; min-height: 400px; } canvas { width: 100%; height: 100%; display: block; } .legend { position: absolute; bottom: 12px; left: 12px; background: #fff; padding: 8px; box-shadow: 0 1px 4px #0003; } .legend i { display: inline-block; width: 18px; height: 7px; margin: 0 4px -1px 10px; } .reference { background: #a5b0b5; } .native { background: #296654; } .line { height: 3px !important; background: #263630; } .junction { width: 10px !important; height: 10px !important; background: #0e7860; border-radius: 50%; } .warning { width: 10px !important; height: 10px !important; background: #d49318; border-radius: 50%; } h1 { font-size: 16px; margin: 0 0 8px; } h2 { font-size: 14px; margin: 12px 0 8px; } .muted, output, pre { color: #52615b; } .issues ul { list-style: none; padding: 0; margin: 0; } .issues button { width: 100%; text-align: left; margin: 4px 0; background: #fff7e5; border-color: #e7c67b; color: #693c00; } .issues button.error { background: #fff0ee; border-color: #e3a49b; color: #8d261a; } .segmented { display: flex; margin: 0 0 8px; } .segmented button { flex: 1; border-radius: 0; padding: 6px 4px; font-size: 12px; } .segmented button + button { border-left: 0; } .segmented button:first-child { border-radius: 3px 0 0 3px; } .segmented button:last-child { border-radius: 0 3px 3px 0; } .segmented button.active { background: #286956; border-color: #286956; color: #fff; } label { display: block; margin: 10px 0; } input[type='number'] { display: block; width: 100%; padding: 7px; border: 1px solid #aab8b2; border-radius: 2px; } output, pre { display: block; white-space: pre-wrap; overflow-wrap: anywhere; } form button { margin-top: 8px; background: #286956; color: white; border: 0; } dl { display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; margin: 0; } dt { color: #52615b; } dd { margin: 0; font-variant-numeric: tabular-nums; } hr { border: 0; border-top: 1px solid #dde4e1; margin: 16px 0; } details { margin-top: 16px; } summary { cursor: pointer; font-weight: 600; } @media (max-width: 900px) { main { grid-template-columns: minmax(0, 1fr); } .issues { display: none; } .inspector { position: absolute; right: 0; bottom: 0; width: min(360px, 100%); max-height: 55vh; border-top: 1px solid #d5dfda; } }